Function Graph 0
Basic Block 0
Opcode: 55sub_8052abb:
Opcode: 55push ebp
Opcode: 89 e5mov ebp, esp
Opcode: 53push ebx
Opcode: 57push edi
Opcode: 56push esi
Opcode: 83 ec 4csub esp, 0x4c {var_5c}
Opcode: 8b 45 20mov eax, dword [ebp+0x20 {arg_1c}]
Opcode: 8b 4d 1cmov ecx, dword [ebp+0x1c {arg_18}]
Opcode: 8b 55 18mov edx, dword [ebp+0x18 {arg_14}]
Opcode: 8b 75 14mov esi, dword [ebp+0x14 {arg_10}]
Opcode: 8b 7d 10mov edi, dword [ebp+0x10 {arg_c}]
Opcode: 8b 5d 0cmov ebx, dword [ebp+0xc {arg_8}]
Opcode: 89 45 c8mov dword [ebp-0x38 {var_3c}], eax
Opcode: 8b 45 08mov eax, dword [ebp+0x8 {arg_4}]
Opcode: 89 45 ecmov dword [ebp-0x14 {var_18}], eax
Opcode: 89 5d e8mov dword [ebp-0x18 {var_1c}], ebx
Opcode: 89 7d e4mov dword [ebp-0x1c {var_20}], edi
Opcode: 89 75 e0mov dword [ebp-0x20 {var_24}], esi
Opcode: 89 55 dcmov dword [ebp-0x24 {var_28}], edx
Opcode: 89 4d d8mov dword [ebp-0x28 {var_2c}], ecx
Opcode: 8b 45 c8mov eax, dword [ebp-0x38 {var_3c}]
Opcode: 89 45 d4mov dword [ebp-0x2c {var_30}], eax
Opcode: 83 7d d8 00cmp dword [ebp-0x28 {var_2c}], 0x0
Opcode: 0f 85 c0 00 00 00jne 0x8052bbe
Basic Block 1
Opcode: 8b 45 e0mov eax, dword [ebp-0x20 {var_24}]
Opcode: 89 04 24mov dword [esp {var_5c}], eax
Opcode: e8 ee 0a 00 00call sub_80536b7
Opcode: 89 45 d0mov dword [ebp-0x30 {var_34}], eax
Opcode: c7 45 cc 00 00 00 00mov dword [ebp-0x34 {var_38}], 0x0
Opcode: 83 7d d8 00cmp dword [ebp-0x28 {var_2c}], 0x0
Opcode: 7e 10jle 0x8052be9
Basic Block 2
Opcode: 83 7d dc 00cmp dword [ebp-0x24 {var_28}], 0x0
Opcode: 0f 85 b6 00 00 00jne 0x8052bbe
Basic Block 3
Opcode: 83 7d dc 00cmp dword [ebp-0x24 {var_28}], 0x0
Opcode: 7e 13jle 0x8052c02
Basic Block 4
Opcode: 8b 45 d0mov eax, dword [ebp-0x30 {var_34}]
Opcode: 3b 45 d8cmp eax, dword [ebp-0x28 {var_2c}]
Opcode: 76 06jbe 0x8052be7
Basic Block 5
Opcode: eb 00jmp 0x8052b0a
Basic Block 6
Opcode: 8b 45 d4mov eax, dword [ebp-0x2c {var_30}]
Opcode: 83 e0 01and eax, 0x1
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 0f 85 55 01 00 00jne 0x8052d66
Basic Block 7
Opcode: 8b 45 d0mov eax, dword [ebp-0x30 {var_34}]
Opcode: 3b 45 dccmp eax, dword [ebp-0x24 {var_28}]
Opcode: 73 09jae 0x8052c00
Basic Block 8
Opcode: eb 00jmp 0x8052be9
Basic Block 9
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 89 45 d0mov dword [ebp-0x30 {var_34}], eax
Basic Block 10
Opcode: 8b 45 e0mov eax, dword [ebp-0x20 {var_24}]
Opcode: 0f be 00movsx eax, byte [eax]
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 0f 84 9a 00 00 00je 0x8052bb3
Basic Block 11
Opcode: eb 00jmp 0x8052d68
Basic Block 12
Opcode: eb 00jmp 0x8052c13
Basic Block 13
Opcode: eb 00jmp 0x8052c02
Basic Block 14
Opcode: 8b 45 dcmov eax, dword [ebp-0x24 {var_28}]
Opcode: 2b 45 d0sub eax, dword [ebp-0x30 {var_34}]
Opcode: 89 45 ccmov dword [ebp-0x34 {var_38}], eax
Basic Block 15
Opcode: 8b 45 e4mov eax, dword [ebp-0x1c {var_20}]
Opcode: 89 45 f0mov dword [ebp-0x10 {var_14}], eax
Opcode: e9 1b 03 00 00jmp 0x8052ed9
Basic Block 16
Opcode: 8b 45 e8mov eax, dword [ebp-0x18 {var_1c}]
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 e0mov edx, dword [ebp-0x20 {var_24}]
Opcode: 0f be 12movsx edx, byte [edx]
Opcode: 8b 75 e4mov esi, dword [ebp-0x1c {var_20}]
Opcode: 89 0c 24mov dword [esp {var_5c}], ecx
Opcode: 89 54 24 04mov dword [esp+0x4 {var_58}], edx
Opcode: 89 74 24 08mov dword [esp+0x8 {var_54}], esi
Opcode: a3 28 70 05 08mov dword [data_8057028], eax
Opcode: 9flahf
Opcode: 89 15 2c 70 05 08mov dword [data_805702c], edx
Opcode: 89 0d 30 70 05 08mov dword [data_8057030], ecx
Opcode: 88 25 34 70 05 08mov byte [data_8057034], ah
Opcode: a1 28 70 05 08mov eax, dword [data_8057028]
Opcode: 89 c2mov edx, eax
Opcode: f6 05 36 70 05 08 01test byte [data_8057036], 0x1
Opcode: 74 11je 0x8052b6c
Basic Block 17
Opcode: 8b 45 d0mov eax, dword [ebp-0x30 {var_34}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 ffadd ecx, 0xffffffff
Opcode: 89 4d d0mov dword [ebp-0x30 {var_34}], ecx
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 0f 86 99 00 00 00jbe 0x8052e15
Basic Block 18
Opcode: 8b 45 ccmov eax, dword [ebp-0x34 {var_38}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 ffadd ecx, 0xffffffff
Opcode: 89 4d ccmov dword [ebp-0x34 {var_38}], ecx
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 0f 86 3d 01 00 00jbe 0x8052d64
Basic Block 19
Opcode: 8b 45 f0mov eax, dword [ebp-0x10 {var_14}]
Opcode: 83 c4 4cadd esp, 0x4c {var_10}
Opcode: 5epop esi
Opcode: 5fpop edi
Opcode: 5bpop ebx
Opcode: 5dpop ebp
Opcode: e9 c4 51 ff ffjmp 0x80480ac
Basic Block 20
Opcode: 8d 0d b0 44 05 08lea ecx, [data_80544b0]
Basic Block 21
Opcode: a1 38 70 05 08mov eax, dword [data_8057038]
Opcode: 39 c2cmp edx, eax
Opcode: 77 08ja 0x8052b6c
Basic Block 22
Opcode: 8b 45 d4mov eax, dword [ebp-0x2c {var_30}]
Opcode: 83 e0 01and eax, 0x1
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 0f 84 af 00 00 00je 0x8052ed3
Basic Block 23
Opcode: 8b 45 e8mov eax, dword [ebp-0x18 {var_1c}]
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 e0mov edx, dword [ebp-0x20 {var_24}]
Opcode: 89 d6mov esi, edx
Opcode: 83 c6 01add esi, 0x1
Opcode: 89 75 e0mov dword [ebp-0x20 {var_24}], esi
Opcode: 0f be 12movsx edx, byte [edx]
Opcode: 8b 75 e4mov esi, dword [ebp-0x1c {var_20}]
Opcode: 89 0c 24mov dword [esp {var_5c}], ecx
Opcode: 89 54 24 04mov dword [esp+0x4 {var_58}], edx
Opcode: 89 74 24 08mov dword [esp+0x8 {var_54}], esi
Opcode: a3 28 70 05 08mov dword [data_8057028], eax
Opcode: 9flahf
Opcode: 89 15 2c 70 05 08mov dword [data_805702c], edx
Opcode: 89 0d 30 70 05 08mov dword [data_8057030], ecx
Opcode: 88 25 34 70 05 08mov byte [data_8057034], ah
Opcode: a1 28 70 05 08mov eax, dword [data_8057028]
Opcode: 89 c2mov edx, eax
Opcode: f6 05 36 70 05 08 01test byte [data_8057036], 0x1
Opcode: 74 11je 0x8052dd7
Basic Block 24
Opcode: eb 00jmp 0x8052d66
Basic Block 25
Opcode: 8b 45 d4mov eax, dword [ebp-0x2c {var_30}]
Opcode: 83 e0 04and eax, 0x4
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 0f 84 97 00 00 00je 0x8052ccd
Basic Block 26
Opcode: a3 28 70 05 08mov dword [data_8057028], eax
Opcode: 89 15 2c 70 05 08mov dword [data_805702c], edx
Opcode: 8b 04 24mov eax, dword [esp {__return_addr}]
Opcode: 31 d2xor edx, edx {0x0}
Opcode: 89 c1mov ecx, eax
Opcode: f7 35 c4 44 05 08div dword [data_80544c4]
Opcode: b8 c8 44 05 08mov eax, data_80544c8
Opcode: c1 e2 03shl edx, 0x3
Opcode: 8d 04 10lea eax, [eax+edx]
Basic Block 27
Opcode: b8 01 00 00 00mov eax, 0x1
Opcode: bb ad 00 00 00mov ebx, 0xad
Opcode: cd 80int 0x80
Opcode: cd 80{ Does not return }
Basic Block 28
Opcode: 39 c2cmp edx, eax
Opcode: 72 efjb 0x8052b72
Basic Block 29
Opcode: 3b 15 3c 70 05 08cmp edx, dword [data_805703c]
Opcode: 72 1cjb 0x8052b88
Basic Block 30
Opcode: 8b 45 e4mov eax, dword [ebp-0x1c {var_20}]
Opcode: 89 45 f0mov dword [ebp-0x10 {var_14}], eax
Basic Block 31
Opcode: eb 00jmp 0x8052e26
Basic Block 32
Opcode: 8d 0d b0 44 05 08lea ecx, [data_80544b0]
Basic Block 33
Opcode: a1 38 70 05 08mov eax, dword [data_8057038]
Opcode: 39 c2cmp edx, eax
Opcode: 77 08ja 0x8052dd7
Basic Block 34
Opcode: b8 20 00 00 00mov eax, 0x20
Opcode: 8b 4d e8mov ecx, dword [ebp-0x18 {var_1c}]
Opcode: 8b 55 ecmov edx, dword [ebp-0x14 {var_18}]
Opcode: 8b 75 e4mov esi, dword [ebp-0x1c {var_20}]
Opcode: 89 14 24mov dword [esp {var_5c}], edx
Opcode: c7 44 24 04 20 00 00 00mov dword [esp+0x4 {var_58}], 0x20
Opcode: 89 74 24 08mov dword [esp+0x8 {var_54}], esi
Opcode: 89 45 c0mov dword [ebp-0x40 {var_44}], eax
Opcode: a3 28 70 05 08mov dword [data_8057028], eax
Opcode: 9flahf
Opcode: 89 15 2c 70 05 08mov dword [data_805702c], edx
Opcode: 89 0d 30 70 05 08mov dword [data_8057030], ecx
Opcode: 88 25 34 70 05 08mov byte [data_8057034], ah
Opcode: a1 28 70 05 08mov eax, dword [data_8057028]
Opcode: 89 camov edx, ecx
Opcode: f6 05 36 70 05 08 01test byte [data_8057036], 0x1
Opcode: 74 11je 0x8052d26
Basic Block 35
Opcode: b8 30 00 00 00mov eax, 0x30
Opcode: 8b 4d e8mov ecx, dword [ebp-0x18 {var_1c}]
Opcode: 8b 55 ecmov edx, dword [ebp-0x14 {var_18}]
Opcode: 8b 75 e4mov esi, dword [ebp-0x1c {var_20}]
Opcode: 89 14 24mov dword [esp {var_5c}], edx
Opcode: c7 44 24 04 30 00 00 00mov dword [esp+0x4 {var_58}], 0x30
Opcode: 89 74 24 08mov dword [esp+0x8 {var_54}], esi
Opcode: 89 45 c4mov dword [ebp-0x3c {var_40}], eax
Opcode: a3 28 70 05 08mov dword [data_8057028], eax
Opcode: 9flahf
Opcode: 89 15 2c 70 05 08mov dword [data_805702c], edx
Opcode: 89 0d 30 70 05 08mov dword [data_8057030], ecx
Opcode: 88 25 34 70 05 08mov byte [data_8057034], ah
Opcode: a1 28 70 05 08mov eax, dword [data_8057028]
Opcode: 89 camov edx, ecx
Opcode: f6 05 36 70 05 08 01test byte [data_8057036], 0x1
Opcode: 74 11je 0x8052c8f
Basic Block 36
Opcode: 8b 15 2c 70 05 08mov edx, dword [data_805702c]
Opcode: a1 28 70 05 08mov eax, dword [data_8057028]
Opcode: c3retn
Basic Block 37
Opcode: 8b 00mov eax, dword [eax]
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 74 c3je 0x80480a0
Basic Block 38
Opcode: 8b 01mov eax, dword [ecx]
Opcode: 8d 49 08lea ecx, [ecx+0x8]
Opcode: 85 c0test eax, eax
Opcode: 0f 84 21 55 ff ffje 0x80480a0
Basic Block 39
Opcode: 3b 51 fccmp edx, dword [ecx-0x4]
Opcode: 73 eajae 0x8052b72
Basic Block 40
Opcode: 8a 25 34 70 05 08mov ah, byte [data_8057034]
Opcode: 8b 15 2c 70 05 08mov edx, dword [data_805702c]
Opcode: 8b 0d 30 70 05 08mov ecx, dword [data_8057030]
Opcode: 9esahf
Opcode: a1 28 70 05 08mov eax, dword [data_8057028]
Opcode: ff d0call eax
Opcode: 89 45 e4mov dword [ebp-0x1c {var_20}], eax
Opcode: 8b 45 e0mov eax, dword [ebp-0x20 {var_24}]
Opcode: 83 c0 01add eax, 0x1
Opcode: 89 45 e0mov dword [ebp-0x20 {var_24}], eax
Opcode: e9 57 ff ff ffjmp 0x8052b0a
Basic Block 41
Opcode: 8b 45 ccmov eax, dword [ebp-0x34 {var_38}]
Opcode: 89 c1mov ecx, eax
Opcode: 83 c1 ffadd ecx, 0xffffffff
Opcode: 89 4d ccmov dword [ebp-0x34 {var_38}], ecx
Opcode: 83 f8 00cmp eax, 0x0
Opcode: 0f 86 97 00 00 00jbe 0x8052ed1
Basic Block 42
Opcode: 39 c2cmp edx, eax
Opcode: 72 efjb 0x8052ddd
Basic Block 43
Opcode: 3b 15 3c 70 05 08cmp edx, dword [data_805703c]
Opcode: 72 1cjb 0x8052df3
Basic Block 44
Opcode: 8d 0d b0 44 05 08lea ecx, [data_80544b0]
Basic Block 45
Opcode: a1 38 70 05 08mov eax, dword [data_8057038]
Opcode: 39 c2cmp edx, eax
Opcode: 77 08ja 0x8052d26
Basic Block 46
Opcode: 8d 0d b0 44 05 08lea ecx, [data_80544b0]
Basic Block 47
Opcode: a1 38 70 05 08mov eax, dword [data_8057038]
Opcode: 39 c2cmp edx, eax
Opcode: 77 08ja 0x8052c8f
Basic Block 48
Opcode: eb f0jmp 0x80480cf
Basic Block 49
Opcode: eb 00jmp 0x8052ed3
Basic Block 50
Opcode: b8 20 00 00 00mov eax, 0x20
Opcode: 8b 4d e8mov ecx, dword [ebp-0x18 {var_1c}]
Opcode: 8b 55 ecmov edx, dword [ebp-0x14 {var_18}]
Opcode: 8b 75 e4mov esi, dword [ebp-0x1c {var_20}]
Opcode: 89 14 24mov dword [esp {var_5c}], edx
Opcode: c7 44 24 04 20 00 00 00mov dword [esp+0x4 {var_58}], 0x20
Opcode: 89 74 24 08mov dword [esp+0x8 {var_54}], esi
Opcode: 89 45 bcmov dword [ebp-0x44 {var_48}], eax
Opcode: a3 28 70 05 08mov dword [data_8057028], eax
Opcode: 9flahf
Opcode: 89 15 2c 70 05 08mov dword [data_805702c], edx
Opcode: 89 0d 30 70 05 08mov dword [data_8057030], ecx
Opcode: 88 25 34 70 05 08mov byte [data_8057034], ah
Opcode: a1 28 70 05 08mov eax, dword [data_8057028]
Opcode: 89 camov edx, ecx
Opcode: f6 05 36 70 05 08 01test byte [data_8057036], 0x1
Opcode: 74 11je 0x8052e93
Basic Block 51
Opcode: 8b 01mov eax, dword [ecx]
Opcode: 8d 49 08lea ecx, [ecx+0x8]
Opcode: 85 c0test eax, eax
Opcode: 0f 84 b6 52 ff ffje 0x80480a0
Basic Block 52
Opcode: 3b 51 fccmp edx, dword [ecx-0x4]
Opcode: 73 eajae 0x8052ddd
Basic Block 53
Opcode: 8a 25 34 70 05 08mov ah, byte [data_8057034]
Opcode: 8b 15 2c 70 05 08mov edx, dword [data_805702c]
Opcode: 8b 0d 30 70 05 08mov ecx, dword [data_8057030]
Opcode: 9esahf
Opcode: a1 28 70 05 08mov eax, dword [data_8057028]
Opcode: ff d0call eax
Opcode: 89 45 e4mov dword [ebp-0x1c {var_20}], eax
Opcode: e9 53 ff ff ffjmp 0x8052d68
Basic Block 54
Opcode: 39 c2cmp edx, eax
Opcode: 72 efjb 0x8052d2c
Basic Block 55
Opcode: 3b 15 3c 70 05 08cmp edx, dword [data_805703c]
Opcode: 72 1cjb 0x8052d42
Basic Block 56
Opcode: 39 c2cmp edx, eax
Opcode: 72 efjb 0x8052c95
Basic Block 57
Opcode: 3b 15 3c 70 05 08cmp edx, dword [data_805703c]
Opcode: 72 1cjb 0x8052cab
Basic Block 58
Opcode: 3b 08cmp ecx, dword [eax]
Opcode: 8d 40 04lea eax, [eax+0x4]
Opcode: 74 09je 0x80480df
Basic Block 59
Opcode: 8d 0d b0 44 05 08lea ecx, [data_80544b0]
Basic Block 60
Opcode: a1 38 70 05 08mov eax, dword [data_8057038]
Opcode: 39 c2cmp edx, eax
Opcode: 77 08ja 0x8052e93
Basic Block 61
Opcode: 8b 01mov eax, dword [ecx]
Opcode: 8d 49 08lea ecx, [ecx+0x8]
Opcode: 85 c0test eax, eax
Opcode: 0f 84 67 53 ff ffje 0x80480a0
Basic Block 62
Opcode: 3b 51 fccmp edx, dword [ecx-0x4]
Opcode: 73 eajae 0x8052d2c
Basic Block 63
Opcode: 8a 25 34 70 05 08mov ah, byte [data_8057034]
Opcode: 8b 15 2c 70 05 08mov edx, dword [data_805702c]
Opcode: 8b 0d 30 70 05 08mov ecx, dword [data_8057030]
Opcode: 9esahf
Opcode: a1 28 70 05 08mov eax, dword [data_8057028]
Opcode: ff d1call ecx
Opcode: 89 45 e4mov dword [ebp-0x1c {var_20}], eax
Basic Block 64
Opcode: 8b 01mov eax, dword [ecx]
Opcode: 8d 49 08lea ecx, [ecx+0x8]
Opcode: 85 c0test eax, eax
Opcode: 0f 84 fe 53 ff ffje 0x80480a0
Basic Block 65
Opcode: 3b 51 fccmp edx, dword [ecx-0x4]
Opcode: 73 eajae 0x8052c95
Basic Block 66
Opcode: 8a 25 34 70 05 08mov ah, byte [data_8057034]
Opcode: 8b 15 2c 70 05 08mov edx, dword [data_805702c]
Opcode: 8b 0d 30 70 05 08mov ecx, dword [data_8057030]
Opcode: 9esahf
Opcode: a1 28 70 05 08mov eax, dword [data_8057028]
Opcode: ff d1call ecx
Opcode: 89 45 e4mov dword [ebp-0x1c {var_20}], eax
Opcode: e9 92 00 00 00jmp 0x8052d5f
Basic Block 67
Opcode: 39 c2cmp edx, eax
Opcode: 72 efjb 0x8052e99
Basic Block 68
Opcode: 3b 15 3c 70 05 08cmp edx, dword [data_805703c]
Opcode: 72 1cjb 0x8052eaf
Basic Block 69
Opcode: e9 af fe ff ffjmp 0x8052c13
Basic Block 70
Opcode: 8b 01mov eax, dword [ecx]
Opcode: 8d 49 08lea ecx, [ecx+0x8]
Opcode: 85 c0test eax, eax
Opcode: 0f 84 fa 51 ff ffje 0x80480a0
Basic Block 71
Opcode: 3b 51 fccmp edx, dword [ecx-0x4]
Opcode: 73 eajae 0x8052e99
Basic Block 72
Opcode: 8a 25 34 70 05 08mov ah, byte [data_8057034]
Opcode: 8b 15 2c 70 05 08mov edx, dword [data_805702c]
Opcode: 8b 0d 30 70 05 08mov ecx, dword [data_8057030]
Opcode: 9esahf
Opcode: a1 28 70 05 08mov eax, dword [data_8057028]
Opcode: ff d1call ecx
Opcode: 89 45 e4mov dword [ebp-0x1c {var_20}], eax
Opcode: e9 55 ff ff ffjmp 0x8052e26