Advertisement
PikalaxALT

Original

Sep 3rd, 2017
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 8.47 KB | None | 0 0
  1.  
  2.     thumb_func_start sub_8049ED4
  3. sub_8049ED4: @ 8049ED4
  4.     push {r4-r7,lr}
  5.     mov r7, r10
  6.     mov r6, r9
  7.     mov r5, r8
  8.     push {r5-r7}
  9.     sub sp, 0x74
  10.     lsls r0, 24
  11.     lsrs r0, 24
  12.     mov r10, r0
  13.     ldr r0, _08049F24 @ =gUnknown_03004824
  14.     ldr r5, [r0]
  15.     adds r0, r5, 0
  16.     adds r0, 0x82
  17.     add r0, r10
  18.     ldrb r0, [r0]
  19.     movs r1, 0x1
  20.     str r1, [sp, 0x6C]
  21.     cmp r0, 0x5
  22.     bhi _08049EFE
  23.     movs r2, 0
  24.     str r2, [sp, 0x6C]
  25. _08049EFE:
  26.     movs r1, 0x6
  27.     bl __umodsi3
  28.     lsls r0, 24
  29.     lsrs r0, 24
  30.     mov r8, r0
  31.     adds r0, r5, 0
  32.     adds r0, 0x80
  33.     mov r1, r10
  34.     adds r3, r0, r1
  35.     ldrb r0, [r3]
  36.     cmp r0, 0x2
  37.     bne _08049F1A
  38.     b _0804A0AC
  39. _08049F1A:
  40.     cmp r0, 0x2
  41.     bgt _08049F28
  42.     cmp r0, 0x1
  43.     beq _08049F36
  44.     b _0804A294
  45.     .align 2, 0
  46. _08049F24: .4byte gUnknown_03004824
  47. _08049F28:
  48.     cmp r0, 0x3
  49.     bne _08049F2E
  50.     b _0804A0E4
  51. _08049F2E:
  52.     cmp r0, 0x4
  53.     bne _08049F34
  54.     b _0804A244
  55. _08049F34:
  56.     b _0804A294
  57. _08049F36:
  58.     movs r4, 0
  59.     adds r0, r5, 0
  60.     adds r0, 0x42
  61.     add r0, r10
  62.     ldr r7, _0804A094 @ =gSprites
  63.     ldr r2, [sp, 0x6C]
  64.     lsls r2, 1
  65.     mov r9, r2
  66.     ldr r3, _0804A098 @ =gTradeMonSpriteCoords
  67.     mov r12, r3
  68.     mov r5, r10
  69.     lsls r5, 4
  70.     str r5, [sp, 0x70]
  71.     ldrb r0, [r0]
  72.     cmp r4, r0
  73.     bcs _08049F8E
  74.     adds r6, r7, 0
  75.     ldr r2, _0804A09C @ =gUnknown_03004824
  76.     ldr r0, [sp, 0x6C]
  77.     add r0, r9
  78.     lsls r3, r0, 1
  79.     movs r5, 0x4
  80. _08049F62:
  81.     ldr r0, [r2]
  82.     adds r1, r4, r3
  83.     adds r0, 0x34
  84.     adds r0, r1
  85.     ldrb r1, [r0]
  86.     lsls r0, r1, 4
  87.     adds r0, r1
  88.     lsls r0, 2
  89.     adds r0, r6
  90.     adds r0, 0x3E
  91.     ldrb r1, [r0]
  92.     orrs r1, r5
  93.     strb r1, [r0]
  94.     adds r0, r4, 0x1
  95.     lsls r0, 24
  96.     lsrs r4, r0, 24
  97.     ldr r0, [r2]
  98.     adds r0, 0x42
  99.     add r0, r10
  100.     ldrb r0, [r0]
  101.     cmp r4, r0
  102.     bcc _08049F62
  103. _08049F8E:
  104.     ldr r1, _0804A09C @ =gUnknown_03004824
  105.     ldr r0, [r1]
  106.     ldr r5, [sp, 0x6C]
  107.     add r5, r9
  108.     lsls r3, r5, 1
  109.     mov r2, r8
  110.     adds r6, r2, r3
  111.     adds r0, 0x34
  112.     adds r0, r6
  113.     ldrb r1, [r0]
  114.     lsls r0, r1, 4
  115.     adds r0, r1
  116.     lsls r0, 2
  117.     adds r0, r7
  118.     adds r0, 0x3E
  119.     ldrb r2, [r0]
  120.     movs r1, 0x5
  121.     negs r1, r1
  122.     ands r1, r2
  123.     strb r1, [r0]
  124.     ldr r0, _0804A09C @ =gUnknown_03004824
  125.     ldr r4, [r0]
  126.     adds r4, 0x34
  127.     adds r4, r6
  128.     ldrb r1, [r4]
  129.     lsls r0, r1, 4
  130.     adds r0, r1
  131.     lsls r0, 2
  132.     adds r0, r7
  133.     movs r1, 0x14
  134.     strh r1, [r0, 0x2E]
  135.     ldrb r0, [r4]
  136.     lsls r2, r0, 4
  137.     adds r2, r0
  138.     lsls r2, 2
  139.     adds r2, r7
  140.     lsls r5, 2
  141.     mov r1, r12
  142.     adds r0, r5, r1
  143.     ldrb r0, [r0]
  144.     adds r3, 0x1
  145.     lsls r3, 1
  146.     add r3, r12
  147.     ldrb r1, [r3]
  148.     adds r0, r1
  149.     asrs r0, 1
  150.     lsls r0, 3
  151.     adds r0, 0xE
  152.     strh r0, [r2, 0x32]
  153.     ldrb r0, [r4]
  154.     lsls r1, r0, 4
  155.     adds r1, r0
  156.     lsls r1, 2
  157.     adds r1, r7
  158.     mov r0, r12
  159.     adds r0, 0x1
  160.     adds r5, r0
  161.     ldrb r0, [r5]
  162.     lsls r0, 3
  163.     subs r0, 0xC
  164.     strh r0, [r1, 0x36]
  165.     ldrb r1, [r4]
  166.     lsls r0, r1, 4
  167.     adds r0, r1
  168.     lsls r0, 2
  169.     adds r0, r7
  170.     ldr r1, _0804A0A0 @ =sub_809D62C
  171.     bl oamt_set_x3A_32
  172.     ldr r2, _0804A09C @ =gUnknown_03004824
  173.     ldr r1, [r2]
  174.     adds r1, 0x80
  175.     add r1, r10
  176.     ldrb r0, [r1]
  177.     adds r0, 0x1
  178.     strb r0, [r1]
  179.     ldr r0, [r2]
  180.     adds r0, 0x34
  181.     adds r0, r6
  182.     ldrb r1, [r0]
  183.     lsls r0, r1, 4
  184.     adds r0, r1
  185.     lsls r0, 2
  186.     adds r0, r7
  187.     bl sub_8078A34
  188.     bl HandleDestroyMenuCursors
  189.     ldr r3, _0804A09C @ =gUnknown_03004824
  190.     ldr r0, [r3]
  191.     adds r0, 0x4
  192.     ldr r1, _0804A0A4 @ =gUnknown_0820C330
  193.     mov r5, r9
  194.     adds r2, r5, r1
  195.     ldrb r2, [r2]
  196.     adds r1, 0x1
  197.     add r1, r9
  198.     ldrb r1, [r1]
  199.     str r1, [sp]
  200.     movs r1, 0x13
  201.     str r1, [sp, 0x4]
  202.     movs r1, 0
  203.     movs r3, 0
  204.     bl FillWindowRect_DefaultPalette
  205.     ldr r1, _0804A09C @ =gUnknown_03004824
  206.     ldr r0, [r1]
  207.     adds r0, 0xC8
  208.     ldr r2, [sp, 0x70]
  209.     mov r3, r10
  210.     subs r1, r2, r3
  211.     lsls r1, 24
  212.     lsrs r1, 24
  213.     ldr r3, _0804A0A8 @ =gTradePartyBoxTilemap
  214.     movs r2, 0xF
  215.     str r2, [sp]
  216.     movs r2, 0x11
  217.     str r2, [sp, 0x4]
  218.     movs r5, 0
  219.     str r5, [sp, 0x8]
  220.     movs r2, 0
  221.     bl sub_804A96C_alt
  222.     ldr r0, [sp, 0x6C]
  223.     cmp r0, 0
  224.     beq _0804A08C
  225.     b _0804A294
  226. _0804A08C:
  227.     bl sub_804A80C
  228.     b _0804A294
  229.     .align 2, 0
  230. _0804A094: .4byte gSprites
  231. _0804A098: .4byte gTradeMonSpriteCoords
  232. _0804A09C: .4byte gUnknown_03004824
  233. _0804A0A0: .4byte sub_809D62C
  234. _0804A0A4: .4byte gUnknown_0820C330
  235. _0804A0A8: .4byte gTradePartyBoxTilemap
  236. _0804A0AC:
  237.     ldr r2, _0804A0DC @ =gSprites
  238.     ldr r1, [sp, 0x6C]
  239.     lsls r0, r1, 1
  240.     adds r0, r1
  241.     lsls r0, 1
  242.     add r0, r8
  243.     adds r1, r5, 0
  244.     adds r1, 0x34
  245.     adds r1, r0
  246.     ldrb r1, [r1]
  247.     lsls r0, r1, 4
  248.     adds r0, r1
  249.     lsls r0, 2
  250.     adds r2, 0x1C
  251.     adds r0, r2
  252.     ldr r1, [r0]
  253.     ldr r0, _0804A0E0 @ =sub_809D62C
  254.     cmp r1, r0
  255.     beq _0804A0D4
  256.     b _0804A294
  257. _0804A0D4:
  258.     movs r0, 0x3
  259.     strb r0, [r3]
  260.     b _0804A294
  261.     .align 2, 0
  262. _0804A0DC: .4byte gSprites
  263. _0804A0E0: .4byte sub_809D62C
  264. _0804A0E4:
  265.     adds r0, r5, 0
  266.     adds r0, 0xC8
  267.     ldr r2, [sp, 0x6C]
  268.     lsls r1, r2, 4
  269.     subs r1, r2
  270.     lsls r1, 24
  271.     lsrs r1, 24
  272.     ldr r3, _0804A228 @ =gTradeMovesBoxTilemap
  273.     movs r2, 0xF
  274.     str r2, [sp]
  275.     movs r7, 0x11
  276.     str r7, [sp, 0x4]
  277.     movs r5, 0
  278.     str r5, [sp, 0x8]
  279.     movs r2, 0
  280.     bl sub_804A96C_alt
  281.     ldr r0, _0804A22C @ =gUnknown_03004824
  282.     ldr r3, [r0]
  283.     ldr r1, [sp, 0x6C]
  284.     lsls r6, r1, 1
  285.     adds r1, r6
  286.     mov r9, r1
  287.     lsls r1, 1
  288.     mov r2, r8
  289.     adds r0, r2, r1
  290.     adds r3, 0x34
  291.     adds r3, r0
  292.     ldrb r0, [r3]
  293.     lsls r2, r0, 4
  294.     adds r2, r0
  295.     lsls r2, 2
  296.     ldr r5, _0804A230 @ =gSprites
  297.     adds r2, r5
  298.     ldr r4, _0804A234 @ =gTradeMonSpriteCoords
  299.     mov r0, r9
  300.     lsls r5, r0, 2
  301.     adds r0, r5, r4
  302.     ldrb r0, [r0]
  303.     adds r1, 0x1
  304.     lsls r1, 1
  305.     adds r1, r4
  306.     ldrb r1, [r1]
  307.     adds r0, r1
  308.     asrs r0, 1
  309.     lsls r0, 3
  310.     adds r0, 0xE
  311.     strh r0, [r2, 0x20]
  312.     ldrb r0, [r3]
  313.     lsls r1, r0, 4
  314.     adds r1, r0
  315.     lsls r1, 2
  316.     ldr r2, _0804A230 @ =gSprites
  317.     adds r1, r2
  318.     adds r4, 0x1
  319.     adds r5, r4
  320.     ldrb r0, [r5]
  321.     lsls r0, 3
  322.     subs r0, 0xC
  323.     strh r0, [r1, 0x22]
  324.     ldrb r1, [r3]
  325.     lsls r0, r1, 4
  326.     adds r0, r1
  327.     lsls r0, 2
  328.     adds r0, r2
  329.     movs r5, 0
  330.     strh r5, [r0, 0x24]
  331.     ldrb r1, [r3]
  332.     lsls r0, r1, 4
  333.     adds r0, r1
  334.     lsls r0, 2
  335.     adds r0, r2
  336.     strh r5, [r0, 0x26]
  337.     mov r0, sp
  338.     adds r0, 0x12
  339.     ldr r1, [sp, 0x6C]
  340.     mov r2, r8
  341.     bl sub_804A2B4
  342.     add r1, sp, 0xC
  343.     movs r3, 0xFC
  344.     strb r3, [r1]
  345.     adds r2, r1, 0
  346.     movs r1, 0x6
  347.     strb r1, [r2, 0x1]
  348.     movs r1, 0x4
  349.     strb r1, [r2, 0x2]
  350.     adds r1, r2, 0
  351.     strb r3, [r1, 0x3]
  352.     strb r7, [r1, 0x4]
  353.     lsls r0, 24
  354.     asrs r0, 24
  355.     movs r1, 0x40
  356.     subs r1, r0
  357.     lsrs r0, r1, 31
  358.     adds r1, r0
  359.     asrs r1, 1
  360.     strb r1, [r2, 0x5]
  361.     ldr r0, _0804A22C @ =gUnknown_03004824
  362.     ldr r1, [r0]
  363.     adds r0, r1, 0x4
  364.     adds r1, 0x7A
  365.     ldrb r2, [r1]
  366.     mov r1, r9
  367.     lsls r1, 6
  368.     mov r9, r1
  369.     add r2, r9
  370.     ldr r4, _0804A238 @ =gUnknown_0820C334
  371.     ldr r3, [sp, 0x6C]
  372.     lsls r1, r3, 2
  373.     adds r3, r1, r4
  374.     ldrb r3, [r3]
  375.     ldr r5, _0804A23C @ =gUnknown_0820C334 + 0x1
  376.     adds r1, r5
  377.     ldrb r1, [r1]
  378.     str r1, [sp]
  379.     add r1, sp, 0xC
  380.     bl sub_8003460
  381.     add r7, sp, 0x34
  382.     adds r0, r7, 0
  383.     ldr r1, [sp, 0x6C]
  384.     mov r2, r8
  385.     bl sub_804A33C
  386.     ldr r0, _0804A22C @ =gUnknown_03004824
  387.     ldr r2, [r0]
  388.     adds r0, r2, 0x4
  389.     ldr r1, _0804A240 @ =gOtherText_Terminator2
  390.     adds r2, 0x7A
  391.     ldrb r2, [r2]
  392.     add r2, r9
  393.     adds r2, 0x20
  394.     adds r6, 0x1
  395.     lsls r6, 1
  396.     adds r4, r6, r4
  397.     ldrb r5, [r4]
  398.     ldr r3, _0804A23C @ =gUnknown_0820C334 + 0x1
  399.     adds r6, r3
  400.     ldrb r4, [r6]
  401.     adds r4, 0x1
  402.     lsls r4, 24
  403.     lsrs r4, 24
  404.     str r4, [sp]
  405.     adds r3, r5, 0
  406.     bl sub_8003460
  407.     ldr r0, _0804A22C @ =gUnknown_03004824
  408.     ldr r1, [r0]
  409.     adds r0, r1, 0x4
  410.     adds r1, 0x7A
  411.     ldrb r2, [r1]
  412.     add r2, r9
  413.     adds r2, 0x26
  414.     str r4, [sp]
  415.     adds r1, r7, 0
  416.     adds r3, r5, 0
  417.     bl sub_8003460
  418.     ldr r2, _0804A22C @ =gUnknown_03004824
  419.     ldr r1, [r2]
  420.     b _0804A28A
  421.     .align 2, 0
  422. _0804A228: .4byte gTradeMovesBoxTilemap
  423. _0804A22C: .4byte gUnknown_03004824
  424. _0804A230: .4byte gSprites
  425. _0804A234: .4byte gTradeMonSpriteCoords
  426. _0804A238: .4byte gUnknown_0820C334
  427. _0804A23C: .4byte gUnknown_0820C334 + 0x1
  428. _0804A240: .4byte gOtherText_Terminator2
  429. _0804A244:
  430.     ldr r0, _0804A2A4 @ =gUnknown_0820C14C
  431.     ldr r0, [r0, 0x14]
  432.     adds r1, r5, 0
  433.     adds r1, 0x7E
  434.     ldrh r1, [r1]
  435.     lsls r1, 5
  436.     ldr r3, _0804A2A8 @ =0x06010000
  437.     adds r1, r3
  438.     movs r2, 0x14
  439.     bl sub_804ACD8
  440.     ldr r0, _0804A2AC @ =gUnknown_0820C3D1
  441.     mov r5, r10
  442.     lsls r1, r5, 1
  443.     adds r4, r1, r0
  444.     ldrb r2, [r4]
  445.     adds r2, 0x4
  446.     lsls r2, 24
  447.     lsrs r2, 24
  448.     adds r0, 0x1
  449.     adds r1, r0
  450.     ldrb r3, [r1]
  451.     adds r3, 0x1
  452.     lsls r3, 24
  453.     lsrs r3, 24
  454.     ldrb r0, [r4]
  455.     str r0, [sp]
  456.     ldrb r0, [r1]
  457.     str r0, [sp, 0x4]
  458.     mov r0, r10
  459.     mov r1, r8
  460.     bl sub_804A51C
  461.     ldr r0, _0804A2B0 @ =gUnknown_03004824
  462.     ldr r1, [r0]
  463. _0804A28A:
  464.     adds r1, 0x80
  465.     add r1, r10
  466.     ldrb r0, [r1]
  467.     adds r0, 0x1
  468.     strb r0, [r1]
  469. _0804A294:
  470.     add sp, 0x74
  471.     pop {r3-r5}
  472.     mov r8, r3
  473.     mov r9, r4
  474.     mov r10, r5
  475.     pop {r4-r7}
  476.     pop {r0}
  477.     bx r0
  478.     .align 2, 0
  479. _0804A2A4: .4byte gUnknown_0820C14C
  480. _0804A2A8: .4byte 0x06010000
  481. _0804A2AC: .4byte gUnknown_0820C3D1
  482. _0804A2B0: .4byte gUnknown_03004824
  483.     thumb_func_end sub_8049ED4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement