Function Graph 0
Basic Block 0
Opcode: 55sub_804b660:
Opcode: 55push ebp
Opcode: 89 e5mov ebp, esp
Opcode: 53push ebx
Opcode: 57push edi
Opcode: 56push esi
Opcode: 83 ec 6csub esp, 0x6c {var_7c}
Opcode: 8b 45 14mov eax, dword [ebp+0x14 {arg_10}]
Opcode: 8b 4d 10mov ecx, dword [ebp+0x10 {arg_c}]
Opcode: 8b 55 0cmov edx, dword [ebp+0xc {arg_8}]
Opcode: 8b 75 08mov esi, dword [ebp+0x8 {arg_4}]
Opcode: 89 75 ecmov dword [ebp-0x14 {var_18}], esi
Opcode: 89 55 e8mov dword [ebp-0x18 {var_1c}], edx
Opcode: 89 4d e4mov dword [ebp-0x1c {var_20}], ecx
Opcode: 89 45 e0mov dword [ebp-0x20 {var_24}], eax
Opcode: 81 7d ec 00 00 00 00cmp dword [ebp-0x14 {var_18}], 0x0
Opcode: 0f 85 0c 00 00 00jne 0x804b69a
Basic Block 1
Opcode: 81 7d e8 02 00 00 00cmp dword [ebp-0x18 {var_1c}], 0x2
Opcode: 0f 83 0c 00 00 00jae 0x804b6b3
Basic Block 2
Opcode: c7 45 f0 ff ff ff ffmov dword [ebp-0x10 {var_14}], 0xffffffff
Opcode: e9 4f 03 00 00jmp 0x804b9e9
Basic Block 3
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 66 8b 08mov cx, word [eax]
Opcode: 66 89 4d demov word [ebp-0x22 {var_26}], cx
Opcode: 8b 45 e8mov eax, dword [ebp-0x18 {var_1c}]
Opcode: 83 c0 feadd eax, 0xfffffffe
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 83 c0 02add eax, 0x2
Opcode: 89 45 ecmov dword [ebp-0x14 {var_18}], eax
Opcode: 0f b7 45 demovzx eax, word [ebp-0x22 {var_26}]
Opcode: 89 c2mov edx, eax
Opcode: 81 ea a1 00 00 00sub edx, 0xa1
Opcode: 89 45 b0mov dword [ebp-0x50 {var_54}], eax
Opcode: 89 55 acmov dword [ebp-0x54 {var_58}], edx
Opcode: 0f 84 5e 01 00 00je 0x804b845
Basic Block 4
Opcode: c7 45 f0 02 00 00 00mov dword [ebp-0x10 {var_14}], 0x2
Opcode: e9 36 03 00 00jmp 0x804b9e9
Basic Block 5
Opcode: 8b 45 f0mov eax, dword [ebp-0x10 {var_14}]
Opcode: 83 c4 6cadd esp, 0x6c {var_10}
Opcode: 5epop esi
Opcode: 5fpop edi
Opcode: 5bpop ebx
Opcode: 5dpop ebp
Opcode: c3retn
Basic Block 6
Opcode: 81 7d e8 08 00 00 00cmp dword [ebp-0x18 {var_1c}], 0x8
Opcode: 0f 83 0c 00 00 00jae 0x804b85e
Basic Block 7
Opcode: e9 00 00 00 00jmp 0x804b6ec
Basic Block 8
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 8b 00mov eax, dword [eax]
Opcode: 89 45 c8mov dword [ebp-0x38 {var_3c}], eax
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 05 04 00 00 00add eax, 0x4
Opcode: 89 45 ecmov dword [ebp-0x14 {var_18}], eax
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 66 8b 08mov cx, word [eax]
Opcode: 66 89 4d c6mov word [ebp-0x3a {var_3e}], cx
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 05 02 00 00 00add eax, 0x2
Opcode: 89 45 ecmov dword [ebp-0x14 {var_18}], eax
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 66 8b 08mov cx, word [eax]
Opcode: 66 89 4d c4mov word [ebp-0x3c {var_40}], cx
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 05 02 00 00 00add eax, 0x2
Opcode: 89 45 ecmov dword [ebp-0x14 {var_18}], eax
Opcode: 0f b7 45 c4movzx eax, word [ebp-0x3c {var_40}]
Opcode: 8b 55 e8mov edx, dword [ebp-0x18 {var_1c}]
Opcode: 81 ea 08 00 00 00sub edx, 0x8
Opcode: 39 d0cmp eax, edx
Opcode: 0f 84 0c 00 00 00je 0x804b8bc
Basic Block 9
Opcode: c7 45 f0 02 00 00 00mov dword [ebp-0x10 {var_14}], 0x2
Opcode: e9 8b 01 00 00jmp 0x804b9e9
Basic Block 10
Opcode: 8b 45 b0mov eax, dword [ebp-0x50 {var_54}]
Opcode: 2d a0 00 00 00sub eax, 0xa0
Opcode: 89 45 a8mov dword [ebp-0x58 {var_5c}], eax
Opcode: 0f 85 d9 02 00 00jne 0x804b9d6
Basic Block 11
Opcode: 8b 45 c8mov eax, dword [ebp-0x38 {var_3c}]
Opcode: 89 04 24mov dword [esp {var_7c}], eax
Opcode: e8 09 fd ff ffcall sub_804b5d0
Opcode: 89 45 c0mov dword [ebp-0x40 {var_44}], eax
Opcode: 81 7d c0 00 00 00 00cmp dword [ebp-0x40 {var_44}], 0x0
Opcode: 0f 85 0c 00 00 00jne 0x804b8e3
Basic Block 12
Opcode: c7 45 f0 02 00 00 00mov dword [ebp-0x10 {var_14}], 0x2
Opcode: e9 2d 01 00 00jmp 0x804b9e9
Basic Block 13
Opcode: c7 45 f0 04 00 00 00mov dword [ebp-0x10 {var_14}], 0x4
Opcode: e9 07 00 00 00jmp 0x804b9e9
Basic Block 14
Opcode: e9 00 00 00 00jmp 0x804b702
Basic Block 15
Opcode: c7 45 bc 00 00 00 00mov dword [ebp-0x44 {var_48}], 0x0
Opcode: 0f b7 45 c4movzx eax, word [ebp-0x3c {var_40}]
Opcode: 3d 00 00 00 00cmp eax, 0x0
Opcode: 0f 85 07 00 00 00jne 0x804b900
Basic Block 16
Opcode: c7 45 f0 08 00 00 00mov dword [ebp-0x10 {var_14}], 0x8
Opcode: e9 06 01 00 00jmp 0x804b9e9
Basic Block 17
Opcode: 81 7d e8 02 00 00 00cmp dword [ebp-0x18 {var_1c}], 0x2
Opcode: 0f 83 0c 00 00 00jae 0x804b71b
Basic Block 18
Opcode: 8d 45 bclea eax, [ebp-0x44] {var_48}
Opcode: 8d 4d balea ecx, [ebp-0x46] {var_4a}
Opcode: 8b 55 c0mov edx, dword [ebp-0x40 {var_44}]
Opcode: 8b 52 44mov edx, dword [edx+0x44]
Opcode: 66 8b 75 c6mov si, word [ebp-0x3a {var_3e}]
Opcode: 8b 7d ecmov edi, dword [ebp-0x14 {var_18}]
Opcode: 0f b7 5d c4movzx ebx, word [ebp-0x3c {var_40}]
Opcode: 0f b7 f6movzx esi, si
Opcode: 89 34 24mov dword [esp {var_7c}], esi
Opcode: 89 7c 24 04mov dword [esp+0x4 {var_78}], edi
Opcode: 89 5c 24 08mov dword [esp+0x8 {var_74}], ebx
Opcode: 89 44 24 0cmov dword [esp+0xc {var_70}], eax
Opcode: 89 4c 24 10mov dword [esp+0x10 {var_6c}], ecx
Opcode: ff d2call edx
Opcode: 0f b7 45 bamovzx eax, word [ebp-0x46 {var_4a}]
Opcode: 3d 00 08 00 00cmp eax, 0x800
Opcode: 0f 8e 06 00 00 00jle 0x804b944
Basic Block 19
Opcode: c7 45 ec 00 00 00 00mov dword [ebp-0x14 {var_18}], 0x0
Basic Block 20
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 66 8b 08mov cx, word [eax]
Opcode: 66 89 4d dcmov word [ebp-0x24 {var_28}], cx
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 05 02 00 00 00add eax, 0x2
Opcode: 89 45 ecmov dword [ebp-0x14 {var_18}], eax
Opcode: 8b 45 e8mov eax, dword [ebp-0x18 {var_1c}]
Opcode: 2d 02 00 00 00sub eax, 0x2
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: 0f b7 45 dcmovzx eax, word [ebp-0x24 {var_28}]
Opcode: 8b 55 e8mov edx, dword [ebp-0x18 {var_1c}]
Opcode: 81 ea 02 00 00 00sub edx, 0x2
Opcode: 39 d0cmp eax, edx
Opcode: 0f 85 0f 00 00 00jne 0x804b75f
Basic Block 21
Opcode: c7 45 f0 02 00 00 00mov dword [ebp-0x10 {var_14}], 0x2
Opcode: e9 ce 02 00 00jmp 0x804b9e9
Basic Block 22
Opcode: 0f b7 45 bamovzx eax, word [ebp-0x46 {var_4a}]
Opcode: 05 08 00 00 00add eax, 0x8
Opcode: 89 04 24mov dword [esp {var_7c}], eax
Opcode: e8 0b 5f 00 00call sub_8051860
Opcode: 89 45 b4mov dword [ebp-0x4c {var_50}], eax
Opcode: 8b 45 b4mov eax, dword [ebp-0x4c {var_50}]
Opcode: 8b 4d e4mov ecx, dword [ebp-0x1c {var_20}]
Opcode: 89 01mov dword [ecx], eax
Opcode: 8b 45 b4mov eax, dword [ebp-0x4c {var_50}]
Opcode: 66 c7 00 1a 00mov word [eax], 0x1a
Opcode: 8b 45 b4mov eax, dword [ebp-0x4c {var_50}]
Opcode: 05 02 00 00 00add eax, 0x2
Opcode: 89 45 b4mov dword [ebp-0x4c {var_50}], eax
Opcode: 8b 45 c8mov eax, dword [ebp-0x38 {var_3c}]
Opcode: 8b 4d b4mov ecx, dword [ebp-0x4c {var_50}]
Opcode: 89 01mov dword [ecx], eax
Opcode: 8b 45 b4mov eax, dword [ebp-0x4c {var_50}]
Opcode: 05 04 00 00 00add eax, 0x4
Opcode: 89 45 b4mov dword [ebp-0x4c {var_50}], eax
Opcode: 66 8b 55 bamov dx, word [ebp-0x46 {var_4a}]
Opcode: 8b 45 b4mov eax, dword [ebp-0x4c {var_50}]
Opcode: 66 89 10mov word [eax], dx
Opcode: 8b 45 b4mov eax, dword [ebp-0x4c {var_50}]
Opcode: 05 02 00 00 00add eax, 0x2
Opcode: 89 45 b4mov dword [ebp-0x4c {var_50}], eax
Opcode: 8b 45 b4mov eax, dword [ebp-0x4c {var_50}]
Opcode: 8b 4d bcmov ecx, dword [ebp-0x44 {var_48}]
Opcode: 0f b7 75 bamovzx esi, word [ebp-0x46 {var_4a}]
Opcode: 89 04 24mov dword [esp {var_7c}], eax
Opcode: 89 4c 24 04mov dword [esp+0x4 {var_78}], ecx
Opcode: 89 74 24 08mov dword [esp+0x8 {var_74}], esi
Opcode: e8 bb 81 00 00call sub_8053b70
Opcode: 8b 4d bcmov ecx, dword [ebp-0x44 {var_48}]
Opcode: 89 0c 24mov dword [esp {var_7c}], ecx
Opcode: 89 45 9cmov dword [ebp-0x64 {var_68}], eax
Opcode: e8 fd 5b 00 00call sub_80515c0
Opcode: 0f b7 45 bamovzx eax, word [ebp-0x46 {var_4a}]
Opcode: 05 08 00 00 00add eax, 0x8
Opcode: 8b 4d e0mov ecx, dword [ebp-0x20 {var_24}]
Opcode: 89 01mov dword [ecx], eax
Opcode: e9 0c 00 00 00jmp 0x804b9e2
Basic Block 23
Opcode: 66 c7 45 ba 00 08mov word [ebp-0x46 {var_4a}], 0x800
Basic Block 24
Opcode: c7 45 f0 02 00 00 00mov dword [ebp-0x10 {var_14}], 0x2
Opcode: e9 7e 02 00 00jmp 0x804b9e9
Basic Block 25
Opcode: 0f b7 45 dcmovzx eax, word [ebp-0x24 {var_28}]
Opcode: 3d 00 00 00 00cmp eax, 0x0
Opcode: 0f 85 0c 00 00 00jne 0x804b76b
Basic Block 26
Opcode: c7 45 f0 00 00 00 00mov dword [ebp-0x10 {var_14}], 0x0
Basic Block 27
Opcode: 0f b7 45 dcmovzx eax, word [ebp-0x24 {var_28}]
Opcode: 05 01 00 00 00add eax, 0x1
Opcode: 89 04 24mov dword [esp {var_7c}], eax
Opcode: e8 e4 60 00 00call sub_8051860
Opcode: 89 45 d8mov dword [ebp-0x28 {var_2c}], eax
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 0f b7 55 dcmovzx edx, word [ebp-0x24 {var_28}]
Opcode: 89 04 24mov dword [esp {var_7c}], eax
Opcode: 89 4c 24 04mov dword [esp+0x4 {var_78}], ecx
Opcode: 89 54 24 08mov dword [esp+0x8 {var_74}], edx
Opcode: e8 d7 83 00 00call sub_8053b70
Opcode: 0f b7 4d dcmovzx ecx, word [ebp-0x24 {var_28}]
Opcode: 8b 55 ecmov edx, dword [ebp-0x14 {var_18}]
Opcode: 01 caadd edx, ecx
Opcode: 89 55 ecmov dword [ebp-0x14 {var_18}], edx
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 66 8b 31mov si, word [ecx]
Opcode: 66 89 75 d6mov word [ebp-0x2a {var_2e}], si
Opcode: 8b 4d d8mov ecx, dword [ebp-0x28 {var_2c}]
Opcode: 89 0c 24mov dword [esp {var_7c}], ecx
Opcode: 0f b7 4d d6movzx ecx, word [ebp-0x2a {var_2e}]
Opcode: 89 4c 24 04mov dword [esp+0x4 {var_78}], ecx
Opcode: 89 45 a4mov dword [ebp-0x5c {var_60}], eax
Opcode: e8 2b fd ff ffcall sub_804b4f0
Opcode: 89 45 d0mov dword [ebp-0x30 {var_34}], eax
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 04 24mov dword [esp {var_7c}], eax
Opcode: e8 ed 5d 00 00call sub_80515c0
Opcode: 81 7d d0 00 00 00 00cmp dword [ebp-0x30 {var_34}], 0x0
Opcode: 0f 85 0c 00 00 00jne 0x804b7ec
Basic Block 28
Opcode: b8 07 00 00 00mov eax, 0x7
Opcode: c7 04 24 07 00 00 00mov dword [esp {var_7c}], 0x7
Opcode: 89 45 a0mov dword [ebp-0x60 {var_64}], eax
Opcode: e8 60 60 00 00call sub_8051860
Opcode: 89 45 ccmov dword [ebp-0x34 {var_38}], eax
Opcode: 8b 45 ccmov eax, dword [ebp-0x34 {var_38}]
Opcode: 8b 4d e4mov ecx, dword [ebp-0x1c {var_20}]
Opcode: 89 01mov dword [ecx], eax
Opcode: 8b 45 ccmov eax, dword [ebp-0x34 {var_38}]
Opcode: 66 c7 00 0a 00mov word [eax], 0xa
Opcode: 8b 45 ccmov eax, dword [ebp-0x34 {var_38}]
Opcode: 05 02 00 00 00add eax, 0x2
Opcode: 89 45 ccmov dword [ebp-0x34 {var_38}], eax
Opcode: 8b 45 ccmov eax, dword [ebp-0x34 {var_38}]
Opcode: c6 00 00mov byte [eax], 0x0
Opcode: 8b 45 ccmov eax, dword [ebp-0x34 {var_38}]
Opcode: 05 01 00 00 00add eax, 0x1
Opcode: 89 45 ccmov dword [ebp-0x34 {var_38}], eax
Opcode: 8b 45 d0mov eax, dword [ebp-0x30 {var_34}]
Opcode: 8b 4d ccmov ecx, dword [ebp-0x34 {var_38}]
Opcode: 89 01mov dword [ecx], eax
Opcode: 8b 45 e0mov eax, dword [ebp-0x20 {var_24}]
Opcode: c7 00 07 00 00 00mov dword [eax], 0x7
Opcode: e9 9d 01 00 00jmp 0x804b9e2
Basic Block 29
Opcode: c7 45 f0 08 00 00 00mov dword [ebp-0x10 {var_14}], 0x8
Opcode: e9 fd 01 00 00jmp 0x804b9e9