Function at 0x472158
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00403ddc
xor eax, eax
push ebp
push 0x4726fd
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, byte [ebp + 8]
mov eax, dword [ebp - 4]
call fcn.00472e54
mov byte [ebp - 0xd], 1
mov eax, dword [ebp - 4]
cmp word [eax + 0x2a], 0
je 0x4721bd
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp + 0xc]
push eax
lea eax, [ebp - 0xd]
push eax
mov ebx, dword [ebp - 4]
mov ecx, dword [ebp - 4]
mov dl, byte [ebp + 8]
mov eax, dword [ebx + 0x2c]
call dword [ebx + 0x28]
cmp byte [ebp - 0xd], 0
jne 0x4721ec
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
cmp byte [eax + 0x47], 0
je 0x4721dc
cmp byte [ebp + 8], 2
jne 0x4721dc
xor edx, edx
call fcn.00443874
mov eax, dword [ebp - 4]
add eax, 0x44
call fcn.004039ac
jmp 0x4726df
cmp byte [ebp + 8], 2
jne 0x472201
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov dl, 3
call fcn.0044447c
jmp 0x47222d
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
xor edx, edx
call fcn.0044447c
mov eax, dword [ebp - 4]
mov dword [eax + 0x3c], 0xffffffff
mov eax, dword [ebp - 4]
mov dword [eax + 0x40], 0xffffffff
mov eax, dword [ebp - 4]
add eax, 0x44
call fcn.004039ac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov ebx, dword [eax + 0x35c]
test ebx, ebx
je 0x472277
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0x38]
mov edx, 1
mov eax, dword [ebp - 8]
call fcn.00403e2c
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x1ec]
call fcn.00418880
mov esi, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x38]
cmp eax, 1
jle 0x472279
dec eax
lea eax, [eax + eax*2]
add esi, eax
jmp 0x472279
xor esi, esi
cmp byte [ebp + 8], 0
jne 0x4722eb
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00472794
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x24]
mov edx, dword [ebp + 0xc]
mov eax, ebx
call fcn.0042c994
mov edx, dword [ebp - 0xc]
sub edx, esi
mov eax, ebx
call fcn.0042c970
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x30]
mov eax, ebx
call fcn.0042c9bc
mov edx, dword [ebx + 0x320]
mov eax, ebx
call fcn.0042d318
mov eax, ebx
call fcn.00471d88
mov eax, dword [ebx + 0x304]
mov dl, 1
call fcn.0042d0a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.004720e0
mov eax, ebx
call fcn.00446a30
jmp 0x4726df
cmp byte [ebp + 8], 2
jne 0x4724c6
mov eax, dword [ebp - 4]
call fcn.0047274c
mov edx, dword [eax]
call dword [edx + 0x14]
test eax, eax
je 0x4726df
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
xor edx, edx
call fcn.0042c9bc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
xor edx, edx
call fcn.0042c9e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00444438
mov eax, dword [eax + 0xc]
mov dl, byte [0x472710]
call fcn.004179b8
mov eax, dword [ebp - 4]
call fcn.0047274c
mov edx, dword [eax]
call dword [edx + 0x14]
mov esi, eax
dec esi
test esi, esi
jl 0x4723be
inc esi
xor ebx, ebx
mov eax, dword [ebp - 4]
call fcn.0047274c
lea ecx, [ebp - 0x14]
mov edx, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00444438
pop edx
call fcn.00418880
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x24]
cmp eax, dword [edx + 0x38]
jle 0x4723ba
mov eax, dword [ebp - 4]
call fcn.0047274c
lea ecx, [ebp - 0x14]
mov edx, ebx
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x14]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00444438
pop edx
call fcn.00418880
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0042c9bc
inc ebx
dec esi
jne 0x472354
mov eax, dword [ebp - 4]
mov ebx, dword [eax + 0x24]
mov eax, ebx
call fcn.00444438
mov edx, 0x47271c
call fcn.0041889c
mov esi, eax
add esi, 4
mov eax, dword [ebp - 4]
call fcn.0047274c
mov edx, dword [eax]
call dword [edx + 0x14]
imul esi, eax
mov edx, esi
mov eax, ebx
call fcn.0042c9e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, dword [ebp + 0xc]
call fcn.0042c994
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, dword [ebp - 0xc]
call fcn.0042c970
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, dword [eax + 0x38]
sub edx, 2
mov eax, dword [eax + 0x358]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, dword [eax + 0x3c]
sub edx, 2
mov eax, dword [eax + 0x358]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov eax, dword [ebp - 4]
call fcn.00472840
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0042d318
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 0x304]
xor edx, edx
call fcn.0042d0a4
xor eax, eax
push ebp
push 0x4724ab
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.004720e0
push 4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00432ef0
push eax
call sub.user32.dll_ShowWindow
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov dl, 1
call fcn.00443874
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4726df
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov ebx, eax
mov edx, dword [eax]
call dword [edx + 0x78]
mov eax, ebx
call fcn.00444438
mov eax, dword [eax + 0xc]
mov dl, byte [0x472710]
call fcn.004179b8
lea edx, [ebp - 0x14]
mov eax, dword [ebx + 0x2e8]
mov ecx, dword [eax]
call dword [ecx + 0x1c]
mov edx, dword [ebp - 0x14]
mov eax, ebx
call fcn.0047189c
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x44]
mov edx, dword [ebx + 0x2c4]
call fcn.00403d38
jne 0x47251c
mov eax, dword [ebp - 4]
cmp dword [eax + 0x44], 0
jne 0x47256f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
xor edx, edx
call fcn.0042c9e0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
xor edx, edx
call fcn.0042c9bc
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov edx, dword [ebp + 0xc]
call fcn.0042c994
mov edx, dword [ebp - 0xc]
sub edx, esi
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.0042c970
mov eax, dword [ebp - 4]
add eax, 0x44
mov edx, dword [ebx + 0x2c4]
call fcn.00403a00
mov eax, dword [ebp - 4]
mov dword [eax + 0x3c], 0xffffffff
mov eax, ebx
call fcn.00444438
mov edx, dword [ebx + 0x2c4]
call fcn.00418880
mov edx, eax
mov eax, ebx
call fcn.0042c9bc
mov eax, ebx
call fcn.00444438
mov eax, dword [eax + 0xc]
mov dl, byte [0x472720]
call fcn.004179b8
lea eax, [ebp - 0x14]
push eax
mov edx, dword [ebx + 0x2c4]
mov eax, 0x47272c
call fcn.00403f10
mov ecx, eax
dec ecx
mov eax, dword [ebx + 0x2c4]
mov edx, 1
call fcn.00403e2c
mov eax, dword [ebp - 0x14]
push eax
mov eax, ebx
call fcn.00444438
pop edx
call fcn.00418880
mov esi, eax
mov eax, dword [ebx + 0x34]
cmp eax, dword [ebp + 0xc]
je 0x4725eb
mov edx, dword [ebp + 0xc]
mov eax, ebx
call fcn.0042c994
mov eax, dword [ebp - 4]
cmp esi, dword [eax + 0x3c]
je 0x472610
mov edx, dword [ebx + 0x30]
sub edx, esi
mov eax, ebx
call fcn.0042c970
mov eax, dword [ebp - 4]
mov dword [eax + 0x3c], esi
mov eax, dword [ebx + 0x30]
mov edx, dword [ebp - 4]
mov dword [edx + 0x40], eax
jmp 0x47261d
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x40]
mov eax, ebx
call fcn.0042c970
mov edx, dword [ebx + 0x300]
add edx, 4
mov eax, ebx
call fcn.0042c9e0
mov eax, dword [ebx + 0x38]
sub eax, 2
cmp eax, 1
jl 0x4726df
mov edx, dword [ebx + 0x3c]
sub edx, 2
dec edx
jl 0x4726df
mov edx, eax
mov eax, dword [ebx + 0x358]
mov ecx, dword [eax]
call dword [ecx + 0x40]
mov edx, dword [ebx + 0x3c]
sub edx, 2
mov eax, dword [ebx + 0x358]
mov ecx, dword [eax]
call dword [ecx + 0x34]
mov edx, dword [ebx + 0x320]
mov eax, ebx
call fcn.0042d318
mov eax, dword [ebx + 0x304]
xor edx, edx
call fcn.0042d0a4
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.004720e0
xor eax, eax
push ebp
push 0x4726af
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
call fcn.00446a30
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4726c5
cmp byte [ebp + 8], 2
jne 0x4726df
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 0x35c]
mov edx, dword [eax]
call dword [edx + 0xb4]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x472704
lea eax, [ebp - 0x14]
call fcn.004039ac
lea eax, [ebp - 8]
call fcn.004039ac
ret