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

Disassembly:
sub esp, 0x138
mov eax, dword [0x6b8f0c]
xor eax, esp
mov dword [esp + 0x134], eax
push esi
mov esi, dword [esp + 0x140]
test esi, esi
je 0x45cd40
push ebx
push ebp
push edi
push 0xff
lea eax, [esp + 0x49]
push 0
push eax
mov byte [esp + 0x50], 0
call fcn.0057df40
add esp, 0xc
lea ecx, [esp + 0x24]
call fcn.00423980
push 0
lea ecx, [esp + 0x28]
push ecx
push 0x3f
mov ecx, 0x6c8ea0
call fcn.004286d0
push 0x1e1e1e
lea edx, [esp + 0x28]
push edx
push 0xffffff
push 0x59bb8c
mov ecx, esi
call fcn.00434c20
mov ecx, dword [esi + 0x2e8]
mov eax, dword [ecx]
mov edx, dword [eax + 0x78]
call edx
movzx eax, ax
push eax
mov ecx, 0x6ca518
call fcn.0049b720
mov ebx, eax
test ebx, ebx
je 0x45c874
mov edi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebx + 2]
push eax
lea ecx, [esp + 0x48]
push 0x59de58
push ecx
call edi
add esp, 0xc
push 0
push 0
push 0xffffff
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.00434bc0
movzx eax, word [ebx + 0x28]
mov ecx, 0x200
cmp ax, cx
jne 0x45c842
movzx eax, word [ebx + 0x3a]
test ax, ax
je 0x45c28a
push eax
push 0x105
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea eax, [esp + 0x4c]
push 0x5a2484
push eax
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00434bc0
movzx eax, word [ebx + 0x3c]
test ax, ax
je 0x45c2c8
push eax
push 0x106
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea eax, [esp + 0x4c]
push 0x5a2484
push eax
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00434bc0
movzx eax, word [ebx + 0x3e]
test ax, ax
je 0x45c306
push eax
push 0x107
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea eax, [esp + 0x4c]
push 0x5a2484
push eax
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00434bc0
movzx eax, word [ebx + 0x40]
test ax, ax
je 0x45c344
push eax
push 0x108
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea eax, [esp + 0x4c]
push 0x5a2484
push eax
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00434bc0
fld dword [ebx + 0x50]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0057e670
test eax, eax
je 0x45c39d
fld dword [ebx + 0x50]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0057e670
push eax
push 0x109
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea edx, [esp + 0x4c]
push str._s__d__
push edx
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea eax, [esp + 0x50]
push eax
mov ecx, esi
call fcn.00434bc0
fld dword [ebx + 0x54]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0057e670
test eax, eax
je 0x45c3f6
fld dword [ebx + 0x54]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0057e670
push eax
push 0x10a
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea ecx, [esp + 0x4c]
push str._s__d__
push ecx
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.00434bc0
fld dword [ebx + 0x58]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0057e670
test eax, eax
je 0x45c44f
fld dword [ebx + 0x58]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0057e670
push eax
push 0x10b
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea eax, [esp + 0x4c]
push str._s__d__
push eax
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00434bc0
fld dword [ebx + 0x5c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0057e670
test eax, eax
je 0x45c4a8
fld dword [ebx + 0x5c]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0057e670
push eax
push 0x10c
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea edx, [esp + 0x4c]
push str._s__d__
push edx
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea eax, [esp + 0x50]
push eax
mov ecx, esi
call fcn.00434bc0
fld dword [ebx + 0x60]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0057e670
test eax, eax
je 0x45c501
fld dword [ebx + 0x60]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0057e670
push eax
push 0x10d
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea ecx, [esp + 0x4c]
push str._s__d__
push ecx
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.00434bc0
movzx eax, word [ebx + 0xb2]
test ax, ax
je 0x45c542
push eax
push 0x10e
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea ecx, [esp + 0x4c]
push 0x5a2470
push ecx
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.00434bc0
fld dword [ebx + 0xb4]
fmul qword [0x59d158]
call fcn.0057e670
test eax, eax
je 0x45c58c
push eax
push 0x10e
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea eax, [esp + 0x4c]
push 0x5a2468
push eax
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00434bc0
movzx eax, word [ebx + 0xb8]
test ax, ax
je 0x45c5cd
push eax
push 0x10f
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea eax, [esp + 0x4c]
push 0x5a2470
push eax
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00434bc0
fld dword [ebx + 0xbc]
fmul qword [0x59d158]
call fcn.0057e670
test eax, eax
je 0x45c617
push eax
push 0x10f
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea edx, [esp + 0x4c]
push 0x5a2468
push edx
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea eax, [esp + 0x50]
push eax
mov ecx, esi
call fcn.00434bc0
movzx eax, word [ebx]
mov ecx, 0xcf6e
cmp ax, cx
je 0x45c73e
mov edx, 0xcff0
cmp ax, dx
je 0x45c73e
mov ecx, 0xcff2
cmp ax, cx
je 0x45c73e
mov edx, 0xcf27
cmp ax, dx
je 0x45c70a
mov ecx, 0xcf66
cmp ax, cx
je 0x45c70a
mov edx, 0xcf28
cmp ax, dx
je 0x45c682
mov ecx, 0xcf67
cmp ax, cx
je 0x45c682
mov edx, 0xcf6f
cmp ax, dx
jne 0x45c805
push 0x64
push 0x10e
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea eax, [esp + 0x4c]
push 0x5a2468
push eax
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00434bc0
push 0x64
push 0x10f
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea edx, [esp + 0x4c]
push 0x5a2468
push edx
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea eax, [esp + 0x50]
push eax
mov ecx, esi
call fcn.00434bc0
push 0x64
push 0xb5
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
push 0x5a2468
jmp 0x45c7e6
push 0x64
push 0xb5
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea eax, [esp + 0x4c]
push 0x5a2468
push eax
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea ecx, [esp + 0x50]
push ecx
jmp 0x45c7fe
mov edx, 0xcff0
mov ecx, 0x3e8
cmp ax, dx
jne 0x45c754
mov ecx, 0x7d0
jmp 0x45c763
mov edx, 0xcff2
cmp ax, dx
jne 0x45c763
mov ecx, 0x190
movzx ebp, cx
push ebp
push 0x10e
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea eax, [esp + 0x4c]
push 0x5a2470
push eax
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00434bc0
push ebp
push 0x10f
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea edx, [esp + 0x4c]
push 0x5a2470
push edx
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea eax, [esp + 0x50]
push eax
mov ecx, esi
call fcn.00434bc0
push ebp
push 0xb5
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
push 0x5a2470
lea ecx, [esp + 0x50]
push ecx
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.00434bc0
mov eax, 0xcfac
cmp word [ebx], ax
jne 0x45cd34
push 0x46
push 0x10e
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea ecx, [esp + 0x4c]
push 0x5a2468
push ecx
call edi
add esp, 0x10
push 0
push 0
push 0x548fdf
jmp 0x45cd28
test eax, 0x800
je 0x45cd34
movzx eax, word [ebx]
push eax
mov ecx, 0x6ca518
call fcn.004a0f00
neg eax
sbb eax, eax
and eax, 0x9b9b
add eax, 0xff6464
mov dword [esi + 0x1b8], eax
jmp 0x45cd34
mov ecx, dword [esi + 0x2e8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
test byte [0x6bb808], 1
movzx edi, ax
jne 0x45c8ab
or dword [0x6bb808], 1
mov ecx, 0x6bb698
call fcn.0053cb80
push 0x599fe0
call fcn.0057e4c4
add esp, 4
push edi
mov ecx, 0x6bb698
call fcn.0053ba20
mov ebp, eax
mov dword [esp + 0x18], ebp
test ebp, ebp
je 0x45ccd7
movzx ecx, word [ebp + 0x3d]
movzx edx, word [ebp + 0x3b]
lea eax, [ebp + 0x1e]
push eax
mov dword [esp + 0x20], ecx
lea ecx, [esp + 0x48]
push 0x59de58
push ecx
mov dword [esp + 0x1c], edx
call dword [sym.imp.USER32.dll_wsprintfA]
mov ecx, dword [esi + 0x2e8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x7c]
add esp, 0xc
call eax
mov ecx, dword [0x6bba48]
movzx eax, ax
push eax
call fcn.00450d20
mov edi, eax
test edi, edi
je 0x45ca63
mov edx, dword [edi]
mov eax, dword [edx + 0xbc]
mov ecx, edi
call eax
push 0
push 0
test ax, ax
jne 0x45c932
push 0xffffff
lea ecx, [esp + 0x50]
push ecx
jmp 0x45c93c
push 0xcc92f8
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.00434bc0
mov eax, dword [edi]
mov edx, dword [eax + 0xa8]
mov ecx, edi
call edx
movzx ebx, al
cmp ebx, 0xc
jge 0x45ca08
mov eax, dword [esp + 0x18]
mov ebp, dword [eax + ebx*4 + 0x7f]
mov dword [esp + 0x14], ebp
test ebp, ebp
jle 0x45ca04
mov edx, dword [edi]
mov eax, dword [edx + 0xa0]
mov ecx, edi
call eax
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
test eax, eax
jns 0x45c98d
fadd dword [0x59bd60]
fmul qword [0x59d158]
fidiv dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fcomp qword [0x5a1948]
fnstsw ax
test ah, 0x41
jne 0x45c9c7
mov edx, dword [edi]
mov eax, dword [edx + 0xa0]
mov ecx, edi
call eax
dec ebp
cmp eax, ebp
je 0x45c9c7
fld dword [0x5a1944]
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
sub esp, 8
fstp qword [esp]
push ebx
push 0x1d7
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.0057dcef
add esp, 0x14
push 0
push 0
push 0xe6e826
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.00434bc0
mov ebp, dword [esp + 0x18]
mov eax, dword [edi]
mov edx, dword [eax + 0xa8]
mov ecx, edi
call edx
test al, al
je 0x45ca63
mov eax, dword [edi]
mov edx, dword [eax + 0xa8]
mov ecx, edi
call edx
movzx eax, al
movzx eax, word [ebp + eax*2 + 0xad]
push eax
push 0x1d8
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea ecx, [esp + 0x4c]
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0
push 0
push 0xe6e826
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.00434bc0
mov ebx, dword [esp + 0x10]
mov edi, 1
mov eax, 0xff6464
cmp bx, 8
jne 0x45ca96
mov ecx, dword [0x6c9914]
cmp dword [ecx + 0x404], 0
jne 0x45cacc
push 0
push 0
push 0xe61414
push 0x677
jmp 0x45cab2
mov edx, dword [0x6c9914]
cmp dword [edx + 0x404], edi
jne 0x45cacc
push 0
push 0
push 0xe61414
push 0x678
mov ecx, 0x6cb8c8
xor edi, edi
mov dword [esi + 0x1b8], eax
call fcn.004c2360
push eax
mov ecx, esi
call fcn.00434bc0
mov ecx, dword [0x6c9914]
call fcn.00496180
mov ecx, dword [0x6c9914]
movzx eax, ax
mov dword [esp + 0x14], eax
call fcn.004961d0
mov edx, dword [0x6c9914]
cmp dword [edx + 0x404], 1
movzx ecx, ax
mov dword [esp + 0x18], ecx
jne 0x45cb21
cmp bx, 8
jne 0x45cbeb
mov ebx, dword [esp + 0x1c]
test bx, bx
je 0x45cbeb
cmp bx, cx
je 0x45cbce
jmp 0x45cb3a
cmp bx, 1
mov ebx, dword [esp + 0x1c]
jne case.default.0x45cb4f
cmp bx, word [esp + 0x14]
je 0x45cbeb
movzx eax, bx
dec eax
xor edi, edi
mov dword [esi + 0x1b8], 0xff6464
cmp eax, 5
ja case.default.0x45cb4f
jmp dword [eax*4 + 0x45cd58]
push 0
push 0
push 0xe61414
push 0x1d1
jmp 0x45cbb4
push 0
push 0
push 0xe61414
push 0x1d2
jmp 0x45cbb4
push 0
push 0
push 0xe61414
push 0x1d3
jmp 0x45cbb4
push 0
push 0
push 0xe61414
push 0x1d4
jmp 0x45cbb4
push 0
push 0
push 0xe61414
push 0x1d5
jmp 0x45cbb4
push 0
push 0
push 0xe61414
push 0x1d6
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
mov ecx, esi
call fcn.00434bc0
cmp word [esp + 0x10], 8
jne 0x45cbeb
test bx, bx
je 0x45cbeb
mov ax, word [esp + 0x18]
cmp word [esp + 0x14], ax
je 0x45cbeb
mov dword [esi + 0x1b8], 0xff6464
xor edi, edi
movzx eax, word [ebp + 0x31]
mov ecx, dword [0x6c9914]
cmp ax, word [ecx + 0x43c]
jbe 0x45cc3e
push eax
push 0x1cc
mov ecx, 0x6cb8c8
call fcn.004c2360
push eax
lea eax, [esp + 0x4c]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0
push 0
push 0xe61414
lea ecx, [esp + 0x50]
push ecx
mov ecx, esi
call fcn.00434bc0
mov dword [esi + 0x1b8], 0xff6464
xor edi, edi
mov edx, dword [0x6c9914]
mov al, byte [edx + 0x43b]
cmp al, 0x40
jne 0x45cc8a
movzx eax, word [ebp + 0x1c]
push eax
call fcn.00405c80
mov ecx, eax
call fcn.0045d1f0
test eax, eax
je 0x45ccc7
mov edx, dword [esi]
mov eax, dword [edx + 0x34]
push 0xe0
mov ecx, esi
mov dword [esi + 0x1b8], 0xff6464
call eax
mov dword [esi + 0x88], 0x1e1e1e
jmp 0x45cd34
cmp al, 0x80
jne 0x45ccc7
movzx ecx, word [ebp + 0x1c]
push ecx
call fcn.00405c80
mov ecx, eax
call fcn.0045d1b0
test eax, eax
je 0x45ccc7
mov edx, dword [esi]
mov eax, dword [edx + 0x34]
push 0xe0
mov ecx, esi
mov dword [esi + 0x1b8], 0xff6464
call eax
mov dword [esi + 0x88], 0x1e1e1e
jmp 0x45cd34
test edi, edi
je 0x45cd34
mov dword [esi + 0x1b8], 0xffffffff
jmp 0x45cd34
mov ecx, dword [esi + 0x2e8]
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
call eax
mov ecx, dword [0x6c9914]
movzx eax, ax
add eax, 0x15a0
push eax
add ecx, 0x9b0
call fcn.0054c280
test eax, eax
je 0x45cd34
mov eax, dword [eax]
test eax, eax
je 0x45cd34
add eax, 2
push eax
lea ecx, [esp + 0x48]
push 0x59de58
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
push 0
push 0
push 0xffffff
lea edx, [esp + 0x50]
push edx
mov ecx, esi
call fcn.00434bc0
lea ecx, [esp + 0x24]
call fcn.00423990
pop edi
pop ebp
pop ebx
mov ecx, dword [esp + 0x138]
pop esi
xor ecx, esp
call fcn.0057d76e
add esp, 0x138
ret 4