Function at 0x496650
Capabilities:
Enumerate pe sections

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x124
mov eax, dword [0x5c53dc]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x24]
push edi
push eax
lea ecx, [esi + 0x8c]
call fcn.004a1e60
cmp dword [esi + 0xc4], 0xffffffff
lea ecx, [esi + 0xc4]
je 0x4966d7
mov edx, dword [esi + 0xa8]
mov eax, dword [esi + 0xac]
mov dword [esi + 0xe0], edx
mov edx, dword [esi + 0xb0]
mov dword [esi + 0xe8], edx
mov edx, dword [esi + 0x90]
mov dword [esi + 0xe4], eax
mov eax, dword [esi + 0xb4]
mov dword [esi + 0xc8], edx
mov edx, dword [esi + 0x24]
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0x94]
push edx
mov dword [esi + 0xcc], eax
call fcn.004a1e60
mov eax, dword [esi + 0x94]
mov ecx, dword [esi + 0x90]
push eax
push ecx
push esi
mov ecx, 0x643ec8
call fcn.00494df0
mov edx, dword [esi + 0x24]
push edx
lea ecx, [esi + 0x54]
call fcn.004a1e60
push 0x509d
call fcn.00486120
add esp, 4
push eax
mov eax, dword [esi + 0x24]
push eax
lea ecx, [esi + 0x174]
call fcn.004a1db0
mov eax, dword [esi + 0x24]
mov ebx, dword [eax + 8]
mov edi, dword [eax + 4]
push str.ShapeMenucheckBG.SHP
add ebx, 0x17
call fcn.00586540
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx + 0xc]
push 0
push edx
push eax
lea eax, [ebx - 3]
push eax
lea ecx, [edi + 0x29]
push ecx
push 0
call fcn.00587290
fld dword [0x5c1c60]
fsub qword [0x5aaf18]
add esp, 0x1c
fadd qword [0x5aaf10]
fmul qword [0x5aaf08]
call fcn.00551fd0
mov ecx, 1
sub ecx, eax
cmp ecx, 1
jge 0x496779
mov ecx, 1
mov edx, dword [esi + 0x24]
push 1
push 0x7530
push 0x7530
push 0
push 0
add cl, 0x30
push 0
mov byte [ebp - 0x104], cl
mov byte [ebp - 0x103], 0
mov eax, dword [edx + 0xc]
push eax
lea ecx, [ebp - 0x104]
push ecx
push ebx
add edi, 0x2f
push edi
push 1
push 1
call fcn.00427340
add esp, 0x30
mov ecx, esi
call fcn.004a2460
test eax, eax
je 0x496d69
mov edx, dword [esi + 0x24]
mov ecx, dword [0x62c7c4]
sub ecx, dword [edx + 8]
mov eax, dword [0x62c7c0]
sub eax, dword [edx + 4]
sub ecx, dword [esi + 0x94]
sub eax, dword [esi + 0x90]
push ecx
push eax
mov ecx, 0x643ec8
call fcn.00495170
mov edi, eax
xor ebx, ebx
mov dword [ebp - 0x110], edi
cmp edi, ebx
jle 0x496d69
lea edx, [ebp - 0x11c]
push edx
lea eax, [ebp - 0x118]
push eax
lea edx, [ebp - 0x120]
push edx
lea eax, [ebp - 0x124]
lea ecx, [esi + 0xfc]
push eax
mov dword [ebp - 0x118], ebx
mov dword [ebp - 0x11c], ebx
call fcn.004a1ed0
push edi
mov ecx, 0x643ec8
call fcn.00494cf0
mov ecx, eax
cmp ecx, ebx
je 0x496912
mov edx, dword [ecx + 8]
mov eax, dword [ecx + 0x14]
mov edi, dword [ebp - 0x118]
mov dword [ebp - 0x10c], edx
cdq
sub eax, edx
mov ebx, eax
sar ebx, 1
add ebx, dword [ecx + 4]
mov eax, edi
cdq
sub eax, edx
sar eax, 1
sub ebx, eax
add ebx, dword [esi + 0x90]
mov dword [esi + 0x100], ebx
mov eax, dword [ecx + 0x18]
mov ebx, dword [ebp - 0x10c]
cdq
sub eax, edx
mov edx, dword [ebp - 0x11c]
sar eax, 1
sub eax, edx
add eax, dword [esi + 0x94]
cmp dword [esi + 0x100], 0
lea eax, [eax + ebx - 0xa]
mov dword [esi + 0x104], eax
jge 0x4968b9
mov dword [esi + 0x100], 0
mov ebx, dword [esi + 0x100]
mov eax, dword [0x5c18ec]
add ebx, edi
cmp ebx, eax
jle 0x4968d2
sub eax, edi
mov dword [esi + 0x100], eax
cmp dword [esi + 0x104], 0
jge 0x4968e5
mov dword [esi + 0x104], 0
mov ecx, dword [ecx + 0x20]
test ecx, ecx
je 0x496912
mov eax, dword [esi + 0x24]
push edx
mov edx, dword [eax + 8]
add edx, dword [esi + 0x104]
mov eax, dword [eax + 4]
add eax, dword [esi + 0x100]
push edi
push edx
mov edx, dword [esi + 0x28]
push eax
push edx
push ecx
call fcn.00417230
add esp, 0x18
mov eax, dword [esi + 0x24]
push eax
lea ecx, [esi + 0xfc]
mov dword [esi + 0x108], 0x20000000
mov dword [esi + 0x10c], 0xa
call fcn.004a1e60
mov eax, dword [esi + 0x100]
mov edi, dword [esi + 0x104]
mov ecx, dword [ebp - 0x118]
mov edx, dword [ebp - 0x110]
add eax, 0xb
mov dword [esi + 0x160], eax
mov dword [esi + 0x168], eax
add edi, 3
add ecx, 0xfffffff1
mov dword [esi + 0x164], edi
mov dword [esi + 0x16c], edi
push edx
mov dword [esi + 0x138], ecx
call fcn.0048ad30
add esp, 4
test eax, eax
je 0x496a3e
mov eax, dword [eax + 4]
push eax
call fcn.00486120
add esp, 4
mov dword [ebp - 0x108], eax
test eax, eax
je 0x496a3e
push eax
lea eax, [ebp - 0x104]
push 0x5a5e18
push eax
mov dword [esi + 0x148], 0x1f
mov dword [esi + 0x140], 0
mov dword [esi + 0x154], 1
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [ebp - 0x110]
push ecx
call fcn.004167c0
add esp, 0x10
mov dword [ebp - 0x10c], eax
test eax, eax
je 0x496a31
call fcn.004f9b70
mov edx, dword [ebp - 0x10c]
push eax
movzx eax, byte [edx + 4]
push eax
call fcn.00479d50
add esp, 8
cmp dword [ebp - 0x110], eax
jne 0x496a31
push 0x4f40
call fcn.00486120
mov ecx, dword [ebp - 0x108]
push eax
push ecx
lea edx, [ebp - 0x104]
push 0x5aaf00
push edx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov ecx, dword [esi + 0x24]
lea eax, [ebp - 0x104]
push eax
push ecx
jmp 0x496a50
push 0x4f4b
call fcn.00486120
mov edx, dword [esi + 0x24]
add esp, 4
push eax
push edx
lea ecx, [esi + 0x134]
call fcn.004a1db0
mov dword [esi + 0x148], 9
mov dword [esi + 0x140], 1
mov dword [esi + 0x154], 0
add edi, 0x14
push 0x5102
mov dword [esi + 0x164], edi
mov dword [esi + 0x16c], edi
call fcn.00486120
add esp, 4
mov dword [ebp - 0x108], eax
test eax, eax
je 0x496adf
mov eax, dword [ebp - 0x110]
push eax
mov dword [ebp - 0x10c], 0
call fcn.004167f0
add esp, 4
test eax, eax
je 0x496ac1
movzx eax, byte [eax]
jmp 0x496ac7
mov eax, dword [ebp - 0x10c]
mov ecx, dword [ebp - 0x108]
inc eax
push eax
push ecx
lea edx, [ebp - 0x104]
push edx
call fcn.00552e78
add esp, 0xc
mov ecx, dword [esi + 0x24]
lea eax, [ebp - 0x104]
push eax
push ecx
lea ecx, [esi + 0x134]
call fcn.004a1db0
add edi, 0x13
push 0x4f19
mov dword [esi + 0x164], edi
mov dword [esi + 0x16c], edi
call fcn.00486120
add esp, 4
mov dword [ebp - 0x108], eax
test eax, eax
je 0x496b43
mov edx, dword [ebp - 0x110]
push 0x5aa664
push edx
call fcn.00494620
push eax
mov eax, dword [ebp - 0x108]
push eax
lea ecx, [ebp - 0x104]
push ecx
call fcn.00552e78
add esp, 0x14
mov eax, dword [esi + 0x24]
lea edx, [ebp - 0x104]
push edx
push eax
lea ecx, [esi + 0x134]
call fcn.004a1db0
add edi, 0x13
push 0x5048
mov dword [esi + 0x164], edi
mov dword [esi + 0x16c], edi
call fcn.00486120
add esp, 4
mov dword [ebp - 0x108], eax
test eax, eax
je 0x496ba7
mov ecx, dword [ebp - 0x110]
push 0x5aa664
push ecx
call fcn.004965d0
mov edx, dword [ebp - 0x108]
push eax
push edx
lea eax, [ebp - 0x104]
push eax
call fcn.00552e78
add esp, 0x14
mov edx, dword [esi + 0x24]
lea ecx, [ebp - 0x104]
push ecx
push edx
lea ecx, [esi + 0x134]
call fcn.004a1db0
add edi, 0x13
push 0x5046
mov dword [esi + 0x164], edi
mov dword [esi + 0x16c], edi
call fcn.00486120
add esp, 4
mov dword [ebp - 0x108], eax
test eax, eax
je 0x496c0b
mov eax, dword [ebp - 0x110]
push 0x5aa664
push eax
call fcn.00496570
mov ecx, dword [ebp - 0x108]
push eax
push ecx
lea edx, [ebp - 0x104]
push edx
call fcn.00552e78
add esp, 0x14
mov ecx, dword [esi + 0x24]
lea eax, [ebp - 0x104]
push eax
push ecx
lea ecx, [esi + 0x134]
call fcn.004a1db0
add edi, 0x13
push 0x5080
mov dword [esi + 0x164], edi
mov dword [esi + 0x16c], edi
call fcn.00486120
add esp, 4
mov dword [ebp - 0x108], eax
test eax, eax
je 0x496c87
mov edx, dword [ebp - 0x110]
push edx
mov dword [ebp - 0x10c], 0
call fcn.004167f0
add esp, 4
test eax, eax
je 0x496c6a
movzx eax, byte [eax + 6]
jmp 0x496c70
mov eax, dword [ebp - 0x10c]
push eax
mov eax, dword [ebp - 0x108]
push eax
lea ecx, [ebp - 0x104]
push ecx
call fcn.00552e78
add esp, 0xc
mov eax, dword [esi + 0x24]
lea edx, [ebp - 0x104]
push edx
push eax
lea ecx, [esi + 0x134]
call fcn.004a1db0
add edi, 0x13
push 0x5399
mov dword [ebp - 0x10c], 0
mov dword [esi + 0x164], edi
mov dword [esi + 0x16c], edi
call fcn.00486120
add esp, 4
mov dword [ebp - 0x108], eax
test eax, eax
je 0x496d69
mov ecx, dword [ebp - 0x110]
push ecx
call fcn.004945b0
mov edi, eax
add esp, 4
test edi, edi
je 0x496d36
cmp dword [edi + 6], 0
je 0x496d36
cmp dword [edi], 0
je 0x496d36
push 0
call fcn.00552f2b
add esp, 4
sub eax, dword [edi + 6]
mov dword [ebp - 0x110], edx
mov ecx, eax
js 0x496d36
mov eax, 0xc22e4507
imul ecx
add edx, ecx
sar edx, 0x10
mov eax, edx
shr eax, 0x1f
add eax, edx
mov edx, eax
imul edx, edx, 0x15180
sub ecx, edx
je 0x496d28
inc eax
test eax, eax
jns 0x496d3c
mov dword [ebp - 0x10c], 0
mov eax, dword [ebp - 0x10c]
push eax
mov eax, dword [ebp - 0x108]
push eax
lea ecx, [ebp - 0x104]
push ecx
call fcn.00552e78
mov eax, dword [esi + 0x24]
add esp, 0xc
lea edx, [ebp - 0x104]
push edx
push eax
lea ecx, [esi + 0x134]
call fcn.004a1db0
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 1
pop ebx
call fcn.00551e40
mov esp, ebp
pop ebp
ret 4