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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x452f1c
mov eax, dword fs:[0]
push eax
sub esp, 0x1a8
mov eax, dword [0x477084]
xor eax, esp
mov dword [esp + 0x1a0], eax
push ebx
push esi
push edi
mov eax, dword [0x477084]
xor eax, esp
push eax
lea eax, [esp + 0x1b8]
mov dword fs:[0], eax
mov eax, dword [ebp + 8]
mov ebx, ecx
mov edi, edx
lea esi, [ebx + 0x30]
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x38], eax
cmp dword [esi], edi
je 0x4315a1
call fcn.0040406c
mov edi, dword [esp + 0x38]
lea esi, [ebx + 0x34]
cmp dword [esi], edi
je 0x4315b1
call fcn.0040406c
fld qword [0x4719f8]
push 0x4577dc
fstp qword [esp + 0x60]
mov esi, edi
fld qword [0x4719f0]
lea ebx, [esp + 0xa8]
fstp qword [esp + 0x40]
fld qword [0x4719e8]
fstp qword [esp + 0x68]
fld qword [0x4719e0]
fstp qword [esp + 0x48]
fld qword [0x4719d8]
fstp qword [esp + 0x50]
fld qword [0x4719d0]
fstp qword [esp + 0x20]
fld qword [0x4719c8]
fstp qword [esp + 0x18]
fld qword [0x4719c0]
fstp qword [esp + 0x28]
fld qword [0x4719b8]
fstp qword [esp + 0x70]
fld qword [esp + 0x60]
fsub qword [esp + 0x68]
fadd qword [esp + 0x70]
fadd qword [esp + 0x28]
fsub qword [esp + 0x48]
fld qword [esp + 0x70]
fmul qword [0x4719b0]
fmul qword [esp + 0x50]
faddp st(1)
fsub qword [0x4719a8]
fsub qword [esp + 0x18]
fadd qword [0x4719a0]
fadd qword [esp + 0x28]
fstp qword [esp + 0x18]
fld qword [esp + 0x20]
fadd qword [esp + 0x50]
fstp qword [esp + 0x28]
fld qword [esp + 0x40]
fsub qword [esp + 0x50]
fstp qword [esp + 0x28]
fld qword [esp + 0x50]
fld qword [esp + 0x48]
fmul qword [0x471998]
fsubp st(1)
fsub qword [esp + 0x28]
fadd qword [0x471990]
fsub qword [esp + 0x20]
fsub qword [esp + 0x60]
push dword [0x47887c]
fstp qword [esp + 0x54]
call fcn.0044868e
xor ebx, ebx
push SysReAllocString
mov dword [esp + 0x1cc], ebx
push dword [0x47896c]
push dword [esp + 0x48]
call fcn.004484ea
add esp, 0x14
push 0x80088
push dword [0x478970]
mov dword [esp + 0x54], eax
push dword [esp + 0x40]
call fcn.004484ea
fld qword [0x471918]
fstp qword [esp + 0x60]
add esp, 0xc
fld qword [0x471910]
mov dword [esp + 0x6c], eax
fstp qword [esp + 0x24]
fld qword [esp + 0x24]
fsub qword [esp + 0x24]
cmp dword [esp + 0xb8], 8
mov eax, dword [esp + 0xa4]
fstp qword [esp + 0x24]
jae 0x431715
lea eax, [esp + 0xa4]
cmp eax, ebx
je 0x431735
cmp dword [esp + 0xb8], 8
jb 0x43172c
mov eax, dword [esp + 0xa4]
jmp 0x43173a
lea eax, [esp + 0xa4]
jmp 0x43173a
mov eax, dword [0x4788c8]
push eax
lea eax, [esp + 0xd4]
call fcn.0040523b
lea eax, [esp + 0xd0]
push eax
mov ecx, 0xfde9
lea edx, [esp + 0x144]
mov byte [esp + 0x1c4], 1
call fcn.004489ca
pop ecx
mov byte [esp + 0x1c0], 2
cmp dword [eax + 0x14], 0x10
jb 0x431779
mov eax, dword [eax]
push eax
push dword [0x47863c]
push dword [0x478638]
push ebx
call fcn.0043c172
add esp, 0x10
push 1
xor edi, edi
lea esi, [esp + 0x144]
call fcn.00404dd0
push 1
lea esi, [esp + 0xd4]
mov byte [esp + 0x1c4], 0
call fcn.00405114
cmp dword [esp + 0xb4], ebx
jne 0x4317c5
push 1
jmp 0x432057
fld qword [0x471938]
fstp qword [esp + 0x14]
fld qword [esp + 0x14]
fadd qword [0x471978]
fadd qword [esp + 0x14]
fsub qword [0x4719b0]
fstp qword [esp + 0x14]
fld qword [esp + 0x14]
fsub qword [esp + 0x14]
fstp qword [esp + 0x14]
fld qword [esp + 0x14]
fadd qword [esp + 0x14]
fstp qword [esp + 0x14]
fld qword [esp + 0x14]
fsub qword [0x471930]
fadd qword [esp + 0x14]
fld qword [esp + 0x14]
fmul qword [0x471928]
fsubp st(1)
fsub qword [esp + 0x14]
fsub qword [esp + 0x14]
fld qword [esp + 0x14]
fmul qword [0x4719d8]
faddp st(1)
fstp qword [esp + 0x14]
fld qword [esp + 0x14]
fadd qword [esp + 0x14]
fld qword [esp + 0x14]
fmul qword [0x471990]
fsubp st(1)
fadd qword [0x4719c8]
fsub qword [esp + 0x14]
cmp dword [esp + 0xb8], 8
mov eax, dword [esp + 0xa4]
fadd qword [0x471920]
fstp qword [esp + 0x14]
jae 0x431871
lea eax, [esp + 0xa4]
push 0x2010
push ebx
push ebx
push ebx
push eax
push ebx
call dword [sym.imp.USER32.dll_LoadImageW]
mov ebx, dword [esp + 0x2c]
mov edi, eax
mov eax, dword [ebx + 0x38]
xor esi, esi
cmp eax, esi
je 0x43189b
cmp eax, edi
je 0x43189b
push eax
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, edi
mov dword [ebx + 0x38], edi
cmp ecx, esi
jne 0x43195a
cmp dword [esp + 0xb8], 8
mov eax, dword [esp + 0xa4]
jae 0x4318c0
lea eax, [esp + 0xa4]
cmp eax, esi
je 0x4318e0
cmp dword [esp + 0xb8], 8
jb 0x4318d7
mov eax, dword [esp + 0xa4]
jmp 0x4318e5
lea eax, [esp + 0xa4]
jmp 0x4318e5
mov eax, dword [0x4788c8]
push eax
lea eax, [esp + 0x10c]
call fcn.0040523b
lea eax, [esp + 0x108]
push eax
mov ecx, 0xfde9
lea edx, [esp + 0x17c]
mov byte [esp + 0x1c4], 3
call fcn.004489ca
pop ecx
mov byte [esp + 0x1c0], 4
cmp dword [eax + 0x14], 0x10
jb 0x431924
mov eax, dword [eax]
push eax
push ecx
call fcn.0043dd49
pop ecx
push eax
push dword [0x478640]
xor ebx, ebx
inc ebx
push ebx
call fcn.0043c172
add esp, 0x10
push ebx
xor edi, edi
lea esi, [esp + 0x17c]
call fcn.00404dd0
lea esi, [esp + 0x108]
jmp 0x43204e
xor eax, eax
mov dword [esp + 0x8c], esi
lea edi, [esp + 0x90]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
lea eax, [esp + 0x8c]
push eax
push 0x18
push ecx
call dword [sym.imp.GDI32.dll_GetObjectW]
test eax, eax
je 0x431f9b
mov eax, dword [esp + 0x90]
mov dword [ebx + 0x44], eax
mov eax, dword [esp + 0x94]
mov dword [ebx + 0x48], eax
cmp dword [ebx + 0x44], esi
je 0x431f9b
cmp eax, esi
je 0x431f9b
push esi
push dword [0x478964]
push dword [esp + 0x40]
call fcn.004485bc
add esp, 0xc
cmp eax, esi
jg 0x4319c7
mov eax, dword [ebx + 0x48]
mov ecx, dword [ebx + 0x44]
cmp eax, ecx
jle 0x4319d0
mov eax, ecx
mov ecx, dword [ebx + 0x48]
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0x40], ecx
mov dword [ebx + 0x4c], esi
push 0x24
pop esi
mov dword [esp + 0x1c], esi
push 0x1c
pop edi
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x1c]
imul eax, eax, 0x43
sub eax, ecx
mov ecx, dword [esp + 0x1c]
sub eax, ecx
mov ecx, dword [esp + 0x2c]
sub eax, ecx
mov ecx, dword [esp + 0x2c]
sub eax, ecx
mov ecx, dword [esp + 0x1c]
lea eax, [eax + ecx + 0x96]
mov dword [esp + 0x2c], eax
add dword [esp + 0x1c], 0xffffffad
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1c]
imul eax, ecx
mov ecx, dword [esp + 0x1c]
imul eax, eax, 0x28
mov edx, dword [esp + 0x1c]
imul ecx, edx
push 0
push dword [0x478974]
lea eax, [eax + ecx - 0x31]
push dword [esp + 0x40]
mov dword [esp + 0x28], eax
call fcn.004484ea
mov ecx, eax
add esp, 0xc
test ecx, ecx
jne 0x431a5b
push 2
pop ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], edi
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x1c]
imul eax, eax, 0x43
sub eax, edx
mov edx, dword [esp + 0x1c]
sub eax, edx
mov edx, dword [esp + 0x2c]
sub eax, edx
mov edx, dword [esp + 0x2c]
sub eax, edx
mov edx, dword [esp + 0x1c]
lea eax, [eax + edx + 0x96]
mov dword [esp + 0x2c], eax
add dword [esp + 0x1c], 0xffffffad
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
imul eax, edx
mov edx, dword [esp + 0x1c]
imul eax, eax, 0x28
mov esi, dword [esp + 0x1c]
imul edx, esi
lea eax, [eax + edx - 0x31]
mov dword [esp + 0x1c], eax
xor edx, edx
mov eax, 0x3e8
div ecx
push 0x18
push 0
mov dword [ebx + 0x50], eax
lea eax, [esp + 0x7c]
push eax
call fcn.00412c30
fld qword [0x471918]
fstp qword [esp + 0x60]
add esp, 0xc
fld qword [0x471910]
lea eax, [esp + 0x74]
fstp qword [esp + 0x24]
push eax
fld qword [esp + 0x28]
push 0x18
fsub qword [esp + 0x2c]
push dword [ebx + 0x38]
fstp qword [esp + 0x30]
call dword [sym.imp.GDI32.dll_GetObjectW]
fld qword [0x4719f8]
fstp qword [esp + 0x64]
fld qword [0x4719f0]
fstp qword [esp + 0x54]
fld qword [0x4719e8]
fstp qword [esp + 0x3c]
fld qword [0x4719e0]
fstp qword [esp + 0x2c]
fld qword [0x4719d8]
fst qword [esp + 0x14]
fld qword [0x4719d0]
fstp qword [esp + 0x1c]
fld qword [0x4719c8]
fst qword [esp + 0x44]
fld qword [0x4719c0]
fstp qword [esp + 0x24]
fld qword [0x4719b8]
fstp qword [esp + 0x5c]
fld qword [esp + 0x64]
fsub qword [esp + 0x3c]
fadd qword [esp + 0x5c]
fadd qword [esp + 0x24]
fsub qword [esp + 0x2c]
fld qword [esp + 0x5c]
fld qword [0x4719b0]
fmul st(1), st(0)
fld qword [esp + 0x14]
fmulp st(2)
fxch st(2)
faddp st(1)
fsub qword [0x4719a8]
fsub qword [esp + 0x44]
fadd qword [0x4719a0]
fadd qword [esp + 0x24]
fstp qword [esp + 0x44]
fld qword [esp + 0x1c]
fadd qword [esp + 0x14]
fstp qword [esp + 0x24]
fld qword [esp + 0x54]
fsub qword [esp + 0x14]
fstp qword [esp + 0x24]
fld qword [esp + 0x14]
fld qword [esp + 0x2c]
fmul qword [0x471998]
fsubp st(1)
fsub qword [esp + 0x24]
fld qword [0x471990]
fadd st(1), st(0)
fld qword [esp + 0x1c]
fsubp st(2)
fld qword [esp + 0x64]
cmp word [esp + 0x84], 1
fsubp st(2)
fxch st(1)
fstp qword [esp + 0x14]
jne 0x431ed1
push 0x20
pop eax
cmp word [esp + 0x86], ax
jne 0x431ed1
mov esi, dword [esp + 0x88]
push 0x28
pop edi
mov dword [esp + 0x1c], edi
mov dword [esp + 0x2c], 0x17
mov dword [esp + 0x14], 0x5f
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x2c]
push 0xfffffffffffffff5
pop ecx
sub ecx, eax
add ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x1c]
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x7c]
sub eax, edi
mov dword [esp + 0x2c], eax
dec ecx
xor eax, eax
mov dword [esp + 0x28], ecx
cmp ecx, eax
jl 0x431da5
fld qword [0x471a78]
mov dword [esp + 0x24], eax
cmp dword [esp + 0x78], eax
jle 0x431d99
mov dword [esp + 0x14], edi
mov dword [esp + 0x2c], 0x17
mov dword [esp + 0x1c], 0x5f
mov dword [esp + 0x44], 0x20
mov eax, dword [esp + 0x2c]
push 0xfffffffffffffff5
pop ecx
sub ecx, eax
add ecx, dword [esp + 0x2c]
add ecx, dword [esp + 0x14]
mov dword [esp + 0x44], ecx
mov eax, dword [esp + 0x1c]
movzx ecx, byte [esi + 3]
sub eax, edi
mov dword [esp + 0x2c], eax
movzx eax, byte [esi + 2]
imul eax, ecx
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fdiv st(1)
call fcn.0044d876
fld qword [0x471938]
mov byte [esi + 2], al
fstp qword [esp + 0x14]
fld qword [esp + 0x14]
fadd qword [0x471978]
fadd qword [esp + 0x14]
fsub st(3)
fstp qword [esp + 0x14]
fld qword [esp + 0x14]
fsub qword [esp + 0x14]
fstp qword [esp + 0x14]
fld qword [esp + 0x14]
fadd qword [esp + 0x14]
fstp qword [esp + 0x14]
fld qword [esp + 0x14]
fsub qword [0x471930]
fadd qword [esp + 0x14]
fld qword [esp + 0x14]
fmul qword [0x471928]
fsubp st(1)
fsub qword [esp + 0x14]
fsub qword [esp + 0x14]
fld qword [esp + 0x14]
fmul st(6)
faddp st(1)
fstp qword [esp + 0x14]
fld qword [esp + 0x14]
fadd qword [esp + 0x14]
fld qword [esp + 0x14]
fmul st(3)
fsubp st(1)
fadd st(4)
fsub qword [esp + 0x14]
movzx eax, byte [esi + 3]
movzx ecx, byte [esi + 1]
fadd qword [0x471920]
imul ecx, eax
fstp qword [esp + 0x14]
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fdiv st(1)
call fcn.0044d876
movzx ecx, byte [esi]
mov byte [esi + 1], al
movzx eax, byte [esi + 3]
imul ecx, eax
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
fdiv st(1)
call fcn.0044d876
inc dword [esp + 0x24]
mov byte [esi], al
mov eax, dword [esp + 0x24]
add esi, 4
cmp eax, dword [esp + 0x78]
jl 0x431c6e
xor eax, eax
dec dword [esp + 0x28]
jns 0x431c60
fstp st(0)
push eax
fstp st(3)
push dword [0x47895c]
fstp st(1)
fstp st(0)
mov dword [esp + 0xc8], eax
push dword [esp + 0x40]
fstp st(0)
mov dword [esp + 0xd0], eax
mov dword [esp + 0xd4], eax
mov dword [esp + 0xd8], eax
call fcn.004485bc
add esp, 0xc
push 0
push dword [0x478960]
mov dword [esp + 0xc8], eax
push dword [esp + 0x40]
call fcn.004485bc
fld qword [0x471988]
mov dword [esp + 0xd0], eax
mov eax, dword [ebx + 0x3c]
add eax, dword [esp + 0xcc]
add esp, 8
mov dword [esp + 0xcc], eax
fst qword [esp + 0x58]
fld qword [0x471970]
mov dword [esp + 0x18], esp
fstp qword [esp + 0x58]
fld qword [0x471968]
fstp qword [esp + 0x58]
fstp qword [esp + 0x40]
fld qword [0x471980]
fst qword [esp + 0x40]
fld qword [0x471960]
fstp qword [esp + 0x40]
fld qword [0x471958]
fstp qword [esp + 0x40]
fld qword [0x471950]
fstp qword [esp + 0x40]
fld qword [0x471948]
fstp qword [esp + 0x40]
fld qword [0x471940]
fstp qword [esp + 0x40]
fstp qword [esp + 0x40]
fld qword [esp + 0x58]
mov eax, dword [ebx + 0x40]
add eax, dword [esp + 0xc8]
fadd qword [0x471978]
mov dword [esp + 0xd0], eax
mov eax, esp
fstp qword [esp + 0x40]
push dword [esp + 0x70]
and dword [eax], 0
push dword [esp + 0x54]
push ecx
mov eax, esp
lea ecx, [esp + 0xd0]
mov dword [eax], ecx
mov eax, ebx
mov dword [esp + 0x5c], esp
call fcn.0040a6fa
push 1
xor edi, edi
lea esi, [esp + 0xa8]
mov ebx, eax
call fcn.00405114
mov eax, ebx
jmp 0x432067
cmp dword [esp + 0xb8], 8
fstp st(3)
mov eax, dword [esp + 0xa4]
fstp st(1)
fstp st(0)
fstp st(0)
jae 0x431ef1
lea eax, [esp + 0xa4]
test eax, eax
je 0x431f11
cmp dword [esp + 0xb8], 8
jb 0x431f08
mov eax, dword [esp + 0xa4]
jmp 0x431f16
lea eax, [esp + 0xa4]
jmp 0x431f16
mov eax, dword [0x4788c8]
push eax
lea eax, [esp + 0xf0]
call fcn.0040523b
lea eax, [esp + 0xec]
push eax
mov ecx, 0xfde9
lea edx, [esp + 0x160]
mov byte [esp + 0x1c4], 7
call fcn.004489ca
pop ecx
mov byte [esp + 0x1c0], 8
cmp dword [eax + 0x14], 0x10
jb 0x431f55
mov eax, dword [eax]
push eax
movzx eax, word [esp + 0x8a]
push eax
movzx eax, word [esp + 0x8c]
push eax
push dword [0x478648]
push 1
call fcn.0043c172
add esp, 0x14
push 1
xor edi, edi
lea esi, [esp + 0x160]
call fcn.00404dd0
push 1
lea esi, [esp + 0xf0]
call fcn.00405114
jmp 0x4317be
cmp dword [esp + 0xb8], 8
mov eax, dword [esp + 0xa4]
jae 0x431fb3
lea eax, [esp + 0xa4]
cmp eax, esi
je 0x431fd3
cmp dword [esp + 0xb8], 8
jb 0x431fca
mov eax, dword [esp + 0xa4]
jmp 0x431fd8
lea eax, [esp + 0xa4]
jmp 0x431fd8
mov eax, dword [0x4788c8]
push eax
lea eax, [esp + 0x128]
call fcn.0040523b
lea eax, [esp + 0x124]
push eax
mov ecx, 0xfde9
lea edx, [esp + 0x198]
mov byte [esp + 0x1c4], 5
call fcn.004489ca
pop ecx
mov byte [esp + 0x1c0], 6
cmp dword [eax + 0x14], 0x10
jb 0x432017
mov eax, dword [eax]
push eax
push ecx
call fcn.0043dd49
pop ecx
push eax
push dword [ebx + 0x48]
push dword [ebx + 0x44]
xor ebx, ebx
push dword [0x478644]
inc ebx
push ebx
call fcn.0043c172
add esp, 0x18
push ebx
xor edi, edi
lea esi, [esp + 0x198]
call fcn.00404dd0
lea esi, [esp + 0x124]
push ebx
xor edi, edi
call fcn.00405114
push ebx
xor edi, edi
lea esi, [esp + 0xa8]
call fcn.00405114
xor eax, eax
mov ecx, dword [esp + 0x1b8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1a0]
xor ecx, esp
call fcn.00410b60
mov esp, ebp
pop ebp
ret 4