Function Graph 0
Basic Block 0
Opcode: 55sub_804ae6e:
Opcode: 55push ebp
Opcode: 89 e5mov ebp, esp
Opcode: 53push ebx
Opcode: 57push edi
Opcode: 56push esi
Opcode: 81 ec 8c 00 00 00sub esp, data_8c {var_9c}
Opcode: 8b 45 24mov eax, dword [ebp+data_24 {arg_20}]
Opcode: 8b 4d 20mov ecx, dword [ebp+data_20 {arg_1c}]
Opcode: 8b 55 1cmov edx, dword [ebp+data_1c {arg_18}]
Opcode: 8b 75 18mov esi, dword [ebp+0x18 {arg_14}]
Opcode: 8b 7d 14mov edi, dword [ebp+data_14 {arg_10}]
Opcode: 8b 5d 10mov ebx, dword [ebp+data_10 {arg_c}]
Opcode: 89 45 9cmov dword [ebp-0x64 {var_68}], eax
Opcode: 8b 45 0cmov eax, dword [ebp+data_c {arg_8}]
Opcode: 89 45 98mov dword [ebp-0x68 {var_6c}], eax
Opcode: 8b 45 08mov eax, dword [ebp+data_8 {arg_4}]
Opcode: 89 45 f0mov dword [ebp-0x10 {var_14}], eax
Opcode: 8b 45 98mov eax, dword [ebp-0x68 {var_6c}]
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 4d 9cmov ecx, dword [ebp-0x64 {var_68}]
Opcode: 89 4d d4mov dword [ebp-0x2c {var_30}], ecx
Opcode: c7 45 d0 00 00 00 00mov dword [ebp-0x30 {var_34}], data_0
Opcode: c7 45 cc 00 00 00 00mov dword [ebp-0x34 {var_38}], data_0
Opcode: c6 45 cb 00mov byte [ebp-0x35 {var_39}], 0x0
Opcode: c7 45 c4 00 00 00 00mov dword [ebp-0x3c {var_40}], data_0
Opcode: 81 7d e0 0a 00 00 00cmp dword [ebp-0x20 {var_24}], data_a
Opcode: 0f 85 37 ff ff ffjne 0x804ae13
Basic Block 1
Opcode: 8d 45 a4lea eax, [ebp-0x5c] {var_60}
Opcode: 8b 4d e4mov ecx, dword [ebp-0x1c {var_20}]
Opcode: 8b 55 e0mov edx, dword [ebp-0x20 {var_24}]
Opcode: 8b 75 d4mov esi, dword [ebp-0x2c {var_30}]
Opcode: 89 0c 24mov dword [esp {var_9c}], ecx
Opcode: 89 54 24 04mov dword [esp+data_4 {var_98}], edx
Opcode: 89 44 24 08mov dword [esp+data_8 {var_94}], eax
Opcode: 89 74 24 0cmov dword [esp+data_c {var_90}], esi
Opcode: e8 48 fd ff ffcall sub_804ab7b
Opcode: 90nop
Opcode: 89 45 c4mov dword [ebp-0x3c {var_40}], eax
Opcode: 8b 4d d0mov ecx, dword [ebp-0x30 {var_34}]
Opcode: 01 c1add ecx, eax
Opcode: 89 4d d0mov dword [ebp-0x30 {var_34}], ecx
Opcode: 81 7d dc 00 00 00 00cmp dword [ebp-0x24 {var_28}], data_0
Opcode: 0f 8e b5 00 00 00jle 0x804af01
Basic Block 2
Opcode: 81 7d e4 00 00 00 00cmp dword [ebp-0x1c {var_20}], data_0
Opcode: 0f 8d 2a ff ff ffjge 0x804ae13
Basic Block 3
Opcode: 81 7d d8 00 00 00 00cmp dword [ebp-0x28 {var_2c}], data_0
Opcode: 7e 17jle 0x804af21
Basic Block 4
Opcode: 8b 45 d0mov eax, dword [ebp-0x30 {var_34}]
Opcode: 3b 45 dccmp eax, dword [ebp-0x24 {var_28}]
Opcode: 73 15jae 0x804ae69
Basic Block 5
Opcode: b8 00 00 00 00mov eax, data_0
Opcode: c6 45 cb 01mov byte [ebp-0x35 {var_39}], 0x1
Opcode: 2b 45 e4sub eax, dword [ebp-0x1c {var_20}]
Opcode: 89 45 e4mov dword [ebp-0x1c {var_20}], eax
Opcode: 83 45 d0 01add dword [ebp-0x30 {var_34}], data_1
Opcode: e9 12 ff ff ffjmp 0x804ae13
Basic Block 6
Opcode: 8b 45 d4mov eax, dword [ebp-0x2c {var_30}]
Opcode: 25 01 00 00 00and eax, data_1
Opcode: 85 c0test eax, eax
Opcode: 0f 85 a3 00 00 00jne 0x804afd4
Basic Block 7
Opcode: 83 4d d4 04or dword [ebp-0x2c {var_30}], data_4
Opcode: 8b 45 c4mov eax, dword [ebp-0x3c {var_40}]
Opcode: 3b 45 d8cmp eax, dword [ebp-0x28 {var_2c}]
Opcode: 73 09jae 0x804af1f
Basic Block 8
Opcode: e9 93 00 00 00jmp 0x804af01
Basic Block 9
Opcode: 8b 45 dcmov eax, dword [ebp-0x24 {var_28}]
Opcode: eb 0ajmp 0x804ae63
Basic Block 10
Opcode: 80 7d cb 00cmp byte [ebp-0x35 {var_39}], 0x0
Opcode: 74 2dje 0x804b007
Basic Block 11
Opcode: 0f be 45 cbmovsx eax, byte [ebp-0x35 {var_39}]
Opcode: 85 c0test eax, eax
Opcode: 74 42je 0x804af7b
Basic Block 12
Opcode: eb 00jmp 0x804af21
Basic Block 13
Opcode: 8b 45 d8mov eax, dword [ebp-0x28 {var_2c}]
Opcode: 2b 45 c4sub eax, dword [ebp-0x3c {var_40}]
Opcode: 89 45 ccmov dword [ebp-0x34 {var_38}], eax
Basic Block 14
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 c4mov eax, dword [ebp-0x3c {var_40}]
Opcode: 89 45 a0mov dword [ebp-0x60 {var_64}], eax
Basic Block 16
Opcode: b8 2d 00 00 00mov eax, data_2d
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 f0mov edx, dword [ebp-0x10 {var_14}]
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 14 24mov dword [esp {var_9c}], edx
Opcode: c7 44 24 04 2d 00 00 00mov dword [esp+data_4 {var_98}], data_2d
Opcode: 89 74 24 08mov dword [esp+data_8 {var_94}], esi
Opcode: 89 45 88mov dword [ebp-0x78 {var_7c}], eax
Opcode: e8 4c 00 00 00call sub_804b04b
Opcode: 90nop
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: c6 45 cb 00mov byte [ebp-0x35 {var_39}], 0x0
Basic Block 17
Opcode: eb 00jmp 0x804af7d
Basic Block 18
Opcode: 81 7d cc 00 00 00 00cmp dword [ebp-0x34 {var_38}], data_0
Opcode: 76 39jbe 0x804af7b
Basic Block 19
Opcode: 8b 45 d4mov eax, dword [ebp-0x2c {var_30}]
Opcode: 25 01 00 00 00and eax, data_1
Opcode: 85 c0test eax, eax
Opcode: 74 baje 0x8049518
Basic Block 20
Opcode: 8b 45 ecmov eax, dword [ebp-0x14 {var_18}]
Opcode: 8b 4d f0mov ecx, dword [ebp-0x10 {var_14}]
Opcode: 8b 55 a0mov edx, dword [ebp-0x60 {var_64}]
Opcode: 81 ea 01 00 00 00sub edx, data_1
Opcode: 0f be 54 15 a4movsx edx, byte [ebp+edx-0x5c] {var_4}
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 0c 24mov dword [esp {var_9c}], ecx
Opcode: 89 54 24 04mov dword [esp+data_4 {var_98}], edx
Opcode: 89 74 24 08mov dword [esp+data_8 {var_94}], esi
Opcode: e8 47 4d 00 00call sub_804fd88
Opcode: 90nop
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: 83 45 a0 ffadd dword [ebp-0x60 {var_64}], 0xffffffff
Opcode: eb c2jmp 0x804b00d
Basic Block 21
Opcode: 8b 45 ccmov eax, dword [ebp-0x34 {var_38}]
Opcode: 89 c1mov ecx, eax
Opcode: 81 c1 ff ff ff ffadd ecx, 0xffffffff
Opcode: 89 4d ccmov dword [ebp-0x34 {var_38}], ecx
Opcode: 3d 00 00 00 00cmp eax, data_0
Opcode: 0f 86 ab 4f 00 00jbe 0x804ff41
Basic Block 22
Opcode: 8b 45 d4mov eax, dword [ebp-0x2c {var_30}]
Opcode: 25 04 00 00 00and eax, data_4
Opcode: 85 c0test eax, eax
Opcode: 74 2dje 0x804af7b
Basic Block 23
Opcode: 8b 45 e8mov eax, dword [ebp-0x18 {var_1c}]
Opcode: 81 c4 8c 00 00 00add esp, data_8c {var_10}
Opcode: 5epop esi
Opcode: 5fpop edi
Opcode: 5bpop ebx
Opcode: 5dpop ebp
Opcode: e9 56 ff ff ffjmp 0x8049480
Basic Block 24
Opcode: eb 00jmp 0x8049560
Basic Block 25
Opcode: 81 7d a0 00 00 00 00cmp dword [ebp-0x60 {var_64}], data_0
Opcode: 0f 86 38 e5 ff ffjbe 0x8049552
Basic Block 26
Opcode: e9 8e b0 ff ffjmp 0x804afd4
Basic Block 27
Opcode: 8b 45 d4mov eax, dword [ebp-0x2c {var_30}]
Opcode: 25 04 00 00 00and eax, data_4
Opcode: 85 c0test eax, eax
Opcode: 0f 84 63 4d 00 00je 0x804fd09
Basic Block 28
Opcode: b8 2d 00 00 00mov eax, data_2d
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 f0mov edx, dword [ebp-0x10 {var_14}]
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 14 24mov dword [esp {var_9c}], edx
Opcode: c7 44 24 04 2d 00 00 00mov dword [esp+data_4 {var_98}], data_2d
Opcode: 89 74 24 08mov dword [esp+data_8 {var_94}], esi
Opcode: 89 45 94mov dword [ebp-0x6c {var_70}], eax
Opcode: e8 df 00 00 00call sub_804b052
Opcode: 90nop
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: c6 45 cb 00mov byte [ebp-0x35 {var_39}], 0x0
Basic Block 29
Opcode: 81 24 24 ff ff ff 7fand dword [esp], 0x7fffffff
Opcode: 8b 0c 24mov ecx, dword [esp]
Opcode: 80 39 90cmp byte [ecx], 0x90
Opcode: 0f 85 43 1e 00 00jne 0x804b2d6
Basic Block 30
Opcode: 8b 45 ccmov eax, dword [ebp-0x34 {var_38}]
Opcode: 89 c1mov ecx, eax
Opcode: 81 c1 ff ff ff ffadd ecx, 0xffffffff
Opcode: eb 0ajmp 0x8049577
Basic Block 31
Opcode: b8 20 00 00 00mov eax, data_20
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 f0mov edx, dword [ebp-0x10 {var_14}]
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 14 24mov dword [esp {var_9c}], edx
Opcode: c7 44 24 04 20 00 00 00mov dword [esp+data_4 {var_98}], data_20
Opcode: 89 74 24 08mov dword [esp+data_8 {var_94}], esi
Opcode: 89 45 8cmov dword [ebp-0x74 {var_78}], eax
Opcode: e8 b9 fd ff ffcall sub_804fae7
Opcode: 90nop
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: e9 13 f2 ff ffjmp 0x804ef4a
Basic Block 32
Opcode: b8 30 00 00 00mov eax, data_30
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 f0mov edx, dword [ebp-0x10 {var_14}]
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 14 24mov dword [esp {var_9c}], edx
Opcode: c7 44 24 04 30 00 00 00mov dword [esp+data_4 {var_98}], data_30
Opcode: 89 74 24 08mov dword [esp+data_8 {var_94}], esi
Opcode: 89 45 90mov dword [ebp-0x70 {var_74}], eax
Opcode: e8 a5 47 00 00call sub_804f770
Opcode: 90nop
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: e9 76 3f 00 00jmp 0x804ef4a
Basic Block 33
Opcode: 59pop ecx
Opcode: 80 79 ff f4cmp byte [ecx-0x1], 0xf4
Opcode: 75 08jne 0x804b2e5
Basic Block 34
Opcode: c3retn
Basic Block 35
Opcode: 89 4d ccmov dword [ebp-0x34 {var_38}], ecx
Opcode: 3d 00 00 00 00cmp eax, data_0
Opcode: 0f 86 c6 69 00 00jbe 0x804ff4b
Basic Block 36
Opcode: e9 2e c0 ff ffjmp 0x804af7d
Basic Block 37
Opcode: 81 f9 b8 4e 05 08cmp ecx, 0x8054eb8
Opcode: 74 47je 0x804b334
Basic Block 38
Opcode: 81 e1 ff ff ff 7fand ecx, 0x7fffffff
Opcode: ff e1jmp ecx
Basic Block 39
Opcode: e9 c8 95 ff ffjmp 0x8049518
Basic Block 40
Opcode: b8 20 00 00 00mov eax, data_20
Opcode: 8b 4d ecmov ecx, dword [ebp-0x14 {var_18}]
Opcode: 8b 55 f0mov edx, dword [ebp-0x10 {var_14}]
Opcode: 8b 75 e8mov esi, dword [ebp-0x18 {var_1c}]
Opcode: 89 14 24mov dword [esp {var_9c}], edx
Opcode: c7 44 24 04 20 00 00 00mov dword [esp+data_4 {var_98}], data_20
Opcode: 89 74 24 08mov dword [esp+data_8 {var_94}], esi
Opcode: 89 45 84mov dword [ebp-0x7c {var_80}], eax
Opcode: e8 94 67 00 00call sub_804fd3e
Opcode: 90nop
Opcode: 89 45 e8mov dword [ebp-0x18 {var_1c}], eax
Opcode: eb b0jmp 0x8049560
Basic Block 41
Opcode: db 6c 24 04fld tword [esp+data_4]
Opcode: e9 ca 0d 00 00jmp 0x804c107
Basic Block 42
Opcode: 81 f9 db 98 04 08cmp ecx, sub_804e14e-0x4873
Opcode: 74 48je 0x804b33d
Basic Block 43
Opcode: d9 eafldl2e
Opcode: de c9fmulp st1, st0
Opcode: e9 a5 f2 ff ffjmp 0x804b3b5
Basic Block 44
Opcode: c7 45 fc ff ff ff ffmov dword [ebp-0x4], 0xffffffff
Opcode: e9 3d e9 ff ffjmp 0x8049c86
Basic Block 45
Opcode: 81 f9 d6 98 04 08cmp ecx, sub_804e14e-0x4878
Opcode: 74 4cje 0x804b349
Basic Block 46
Opcode: d9 c0fld st0
Opcode: d9 fcfrndint
Opcode: dc e9fsub st1, st0
Opcode: d9 c9fxch st0, st1
Opcode: d9 f0f2xm1
Opcode: d9 e8fld1
Opcode: de c1faddp st1, st0
Opcode: d9 fdfscale
Opcode: dd d9fstp st1
Opcode: e9 b4 e0 ff ffjmp 0x8049480
Basic Block 47
Opcode: 8b 45 fcmov eax, dword [ebp-0x4]
Opcode: 81 c4 18 01 00 00add esp, 0x118
Opcode: 5dpop ebp
Opcode: e9 eb f7 ff ffjmp 0x8049480
Basic Block 48
Opcode: e9 31 e9 ff ffjmp 0x8049c7f
Basic Block 49
Opcode: 81 f9 fa 85 04 08cmp ecx, sub_8049761-0x1167
Opcode: 74 49je 0x804b34e
Basic Block 50
Opcode: c7 45 fc 00 00 00 00mov dword [ebp-0x4], data_0
Basic Block 51
Opcode: b8 ff ff ff ffmov eax, 0xffffffff
Opcode: 89 04 24mov dword [esp], eax
Opcode: 89 45 d4mov dword [ebp-0x2c], eax
Opcode: e8 88 0d 00 00call sub_804c0e6
Opcode: e8 88 0d 00 00{ Does not return }
Basic Block 52
Opcode: 81 f9 f5 85 04 08cmp ecx, sub_8049761-0x116c
Opcode: 74 66je 0x804b373
Basic Block 53
Opcode: eb eajmp 0x804b35f
Basic Block 54
Opcode: 81 f9 f0 85 04 08cmp ecx, sub_8049761-0x1171
Opcode: 74 60je 0x804b375
Basic Block 55
Opcode: 8b 45 f8mov eax, dword [ebp-0x8]
Opcode: 8b 40 0cmov eax, dword [eax+data_c]
Opcode: 89 04 24mov dword [esp], eax
Opcode: e8 d1 db ff ffcall sub_8048f3e
Opcode: 90nop
Opcode: e9 d7 e0 ff ffjmp 0x804944a
Basic Block 56
Opcode: eb e8jmp 0x804b35f
Basic Block 57
Opcode: 81 f9 c2 85 04 08cmp ecx, sub_8049761-0x119f
Opcode: 74 5aje 0x804b377
Basic Block 58
Opcode: 8b 45 f8mov eax, dword [ebp-0x8]
Opcode: 81 78 08 00 00 00 00cmp dword [eax+data_8], data_0
Opcode: 0f 84 d3 fb ff ffje 0x804902d
Basic Block 59
Opcode: 8b 45 f8mov eax, dword [ebp-0x8]
Opcode: 8b 40 0cmov eax, dword [eax+data_c]
Opcode: 89 45 e4mov dword [ebp-0x1c], eax
Opcode: 85 c0test eax, eax
Opcode: 74 0fje 0x804b393
Basic Block 60
Opcode: 81 f9 bd 85 04 08cmp ecx, sub_8049761-0x11a4
Opcode: 74 70je 0x804b395
Basic Block 61
Opcode: eb 09jmp 0x8049038
Basic Block 62
Opcode: 8b 45 f8mov eax, dword [ebp-0x8]
Opcode: 8b 40 08mov eax, dword [eax+data_8]
Opcode: 8b 40 04mov eax, dword [eax+data_4]
Opcode: 89 04 24mov dword [esp], eax
Opcode: e8 d3 fa ff ffcall sub_8048f3e
Opcode: 90nop
Opcode: 8b 45 f8mov eax, dword [ebp-0x8]
Opcode: 8b 40 08mov eax, dword [eax+data_8]
Opcode: 89 04 24mov dword [esp], eax
Opcode: e8 c4 fa ff ffcall sub_8048f3e
Opcode: 90nop
Opcode: e9 ad fb ff ffjmp 0x804902d
Basic Block 63
Opcode: eb cajmp 0x804b35f
Basic Block 64
Opcode: 8b 45 e4mov eax, dword [ebp-0x1c]
Opcode: 8b 40 18mov eax, dword [eax+0x18]
Opcode: 89 04 24mov dword [esp], eax
Opcode: e8 ac db ff ffcall sub_8048f3e
Opcode: 90nop
Basic Block 65
Opcode: eb c8jmp 0x804b35f
Basic Block 66
Opcode: 81 f9 8f 85 04 08cmp ecx, sub_8049761-0x11d2
Opcode: 74 6aje 0x804b397
Basic Block 67
Opcode: 8b 45 f8mov eax, dword [ebp-0x8]
Opcode: 81 78 04 00 00 00 00cmp dword [eax+data_4], data_0
Opcode: 74 bdje 0x8049001
Basic Block 68
Opcode: 8b 45 f8mov eax, dword [ebp-0x8]
Opcode: 8b 40 0cmov eax, dword [eax+data_c]
Opcode: 89 45 e8mov dword [ebp-0x18], eax
Opcode: 85 c0test eax, eax
Opcode: 74 0fje 0x804b3b3
Basic Block 69
Opcode: b8 01 00 00 00mov eax, data_1
Opcode: cd 80int 0x80
Opcode: cd 80{ Does not return }
Basic Block 70
Opcode: 8b 45 f8mov eax, dword [ebp-0x8]
Opcode: 8b 00mov eax, dword [eax]
Opcode: 89 04 24mov dword [esp], eax
Opcode: e8 30 ff ff ffcall sub_8048f3e
Opcode: 90nop
Opcode: 8b 45 f8mov eax, dword [ebp-0x8]
Opcode: 89 04 24mov dword [esp], eax
Opcode: e8 24 ff ff ffcall sub_8048f3e
Opcode: 90nop
Opcode: 8b 45 fcmov eax, dword [ebp-0x4]
Opcode: c7 00 00 00 00 00mov dword [eax], data_0
Opcode: 83 c4 38add esp, 0x38
Opcode: 5dpop ebp
Opcode: e9 53 04 00 00jmp 0x8049480
Basic Block 71
Opcode: 8b 45 f8mov eax, dword [ebp-0x8]
Opcode: 8b 40 04mov eax, dword [eax+data_4]
Opcode: 8b 40 04mov eax, dword [eax+data_4]
Opcode: 89 04 24mov dword [esp], eax
Opcode: e8 e9 fe ff ffcall sub_8048f3e
Opcode: 90nop
Opcode: 8b 45 f8mov eax, dword [ebp-0x8]
Opcode: 8b 40 04mov eax, dword [eax+data_4]
Opcode: 89 04 24mov dword [esp], eax
Opcode: e8 da fe ff ffcall sub_8048f3e
Opcode: 90nop
Opcode: eb 9ajmp 0x8049001
Basic Block 72
Opcode: eb aajmp 0x804b35f
Basic Block 73
Opcode: 8b 45 e8mov eax, dword [ebp-0x18]
Opcode: 8b 40 10mov eax, dword [eax+data_10]
Opcode: 89 04 24mov dword [esp], eax
Opcode: e8 8c db ff ffcall sub_8048f3e
Opcode: 90nop