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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4a2060
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xf4
push ebx
mov ebx, ecx
push esi
push edi
mov eax, dword [ebx + 0x1c]
mov dword [esp + 0x8c], ebx
push eax
call dword [0x4a9738]
push eax
call fcn.0048a350
mov esi, eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [ebx + 0x64]
lea edi, [eax*8]
sub edi, eax
shl edi, 2
lea eax, [edi + ecx]
mov ecx, dword [edi + ecx]
test ecx, ecx
je 0x402775
mov edx, dword [eax + 4]
mov eax, dword [edx - 8]
test eax, eax
je 0x402dc1
lea ecx, [esp + 0xa4]
call fcn.004451e0
mov eax, dword [ebx + 0x64]
lea ecx, [esp + 0xa4]
mov dword [esp + 0x108], 0
mov eax, dword [edi + eax + 4]
push eax
call fcn.00445ab0
test eax, eax
jne 0x40250b
push 0x4c40f4
lea ecx, [esp + 0x14]
call fcn.0048707f
mov eax, dword [esp + 0x10]
mov edx, dword [esi]
lea edi, [ebp + 8]
push 5
mov ecx, dword [eax - 8]
push edi
push ecx
push eax
mov ecx, esi
mov byte [esp + 0x118], 1
call dword [edx + 0x68]
lea ecx, [esp + 0x10]
mov byte [esp + 0x108], 0
call fcn.00487011
jmp 0x40255f
mov eax, dword [ebx + 0x64]
lea ecx, [esp + 0xa4]
fild dword [edi + eax + 8]
fmul dword [0x4aa718]
fstp dword [esp + 0x3c]
mov eax, dword [esp + 0x3c]
push eax
push eax
call fcn.0044b9c0
test eax, eax
je 0x40254f
mov ecx, dword [ebx + 0x64]
push 1
push ecx
fild dword [edi + ecx + 0x14]
lea ecx, [esp + 0xac]
fstp dword [esp]
call fcn.0044a120
test eax, eax
jne 0x40258d
push 0
push 0
push 0x4c40d4
mov ecx, ebx
call fcn.00484da0
lea ecx, [esp + 0xa4]
mov dword [esp + 0x108], 0xffffffff
call fcn.004453d0
mov ecx, dword [esp + 0x100]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
mov edi, dword [esp + 0xac]
mov ebx, dword [esp + 0xb0]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x48], ecx
push 0xffffff
lea ecx, [esp + 0x30]
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], edx
call fcn.0048af64
mov edx, dword [esi]
push 8
mov ecx, esi
mov byte [esp + 0x10c], 2
call dword [edx + 0x24]
mov dword [esp + 0x3c], eax
lea eax, [esp + 0x2c]
push eax
mov ecx, esi
call fcn.0048a4f9
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x74], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x78], edx
mov dword [esp + 0x7c], eax
lea edx, [esp + 0x94]
mov dword [esp + 0x80], ecx
mov eax, 1
push edx
lea ecx, [esp + 0x78]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa0], eax
mov dword [esp + 0xa4], eax
call fcn.004951b3
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x78]
push eax
mov eax, dword [esp + 0x78]
push ecx
mov ecx, dword [esi + 4]
push edx
push eax
push ecx
call dword [0x4a912c]
mov edx, dword [esp + 0x3c]
mov ecx, esi
push edx
call fcn.0048a4f9
mov eax, dword [esp + 0x18]
mov ecx, esi
push eax
call fcn.0048a4f9
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], vtable.CRgn.0
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
push ecx
mov ecx, dword [esp + 0x48]
push edx
push eax
push ecx
mov byte [esp + 0x118], 3
call dword [0x4a906c]
push eax
lea ecx, [esp + 0x60]
call fcn.0048aea7
lea edx, [esp + 0x5c]
mov ecx, esi
push edx
call fcn.0048a8bf
mov eax, dword [ebp + 0x10]
mov ecx, dword [ebp + 8]
sub eax, ecx
push 0
sub eax, edi
push 0
cdq
sub eax, edx
mov ecx, eax
mov eax, dword [esp + 0x4c]
sar ecx, 1
add eax, ecx
lea ecx, [esp + 0xac]
mov dword [esp + 0x4c], eax
add eax, edi
mov edi, dword [ebp + 0xc]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 0x14]
sub eax, edi
sub eax, ebx
cdq
sub eax, edx
mov edx, eax
mov eax, dword [esp + 0x50]
sar edx, 1
add eax, edx
mov dword [esp + 0x50], eax
add eax, ebx
mov dword [esp + 0x58], eax
lea eax, [esp + 0x4c]
push eax
push esi
call fcn.00445bd0
push 0
mov ecx, esi
call fcn.0048a8bf
lea ecx, [esp + 0x5c]
call fcn.0048aefe
mov edi, vtable.CGdiObject.0
mov dword [esp + 0x5c], edi
lea ecx, [esp + 0x5c]
mov byte [esp + 0x108], 4
call fcn.0048aefe
mov dword [esp + 0x2c], edi
lea ecx, [esp + 0x2c]
mov byte [esp + 0x108], 5
call fcn.0048aefe
lea ecx, [esp + 0xa4]
mov dword [esp + 0x108], 0xffffffff
call fcn.004453d0
jmp 0x402dac
mov edx, dword [esi]
push 7
mov ecx, esi
call dword [edx + 0x24]
mov dword [esp + 0x88], eax
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 0x24]
push 0xd
mov ecx, esi
mov dword [esp + 0x94], eax
call fcn.0048a5ca
mov ecx, dword [ebx + 0x64]
mov ebx, dword [ebp + 0x14]
add edi, ecx
mov dword [esp + 0x5c], eax
mov ecx, ebx
mov edx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov edi, dword [ebp + 8]
sub ecx, dword [ebp + 0xc]
mov dword [esp + 0x3c], edx
mov edx, dword [ebp + 0x10]
mov dword [esp + 0x10], eax
mov eax, edx
sub eax, edi
cmp eax, ecx
mov dword [esp + 0x1c], eax
jl 0x4027d3
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x1c]
lea eax, [ecx - 4]
mov ecx, dword [esp + 0x3c]
cmp ecx, eax
mov dword [esp + 0x14], eax
jg 0x4027ea
mov dword [esp + 0x14], ecx
mov eax, dword [esi + 4]
push ebx
push edx
mov edx, dword [ebp + 0xc]
push edx
push edi
push eax
call dword [0x4a912c]
mov ecx, dword [ebp + 0x10]
mov edx, dword [ebp + 8]
add edx, ecx
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fld st(0)
fmul qword [0x4aa708]
fst qword [esp + 0x2c]
fcomp qword [0x4aa6f8]
fnstsw ax
test ah, 1
jne 0x402832
fadd qword [0x4aa6f0]
fmul qword [0x4aa708]
jmp 0x40283e
fstp st(0)
fld qword [esp + 0x2c]
fsub qword [0x4aa708]
call fcn.00470a50
mov ecx, dword [ebp + 0xc]
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x14]
add ecx, eax
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fld st(0)
fmul qword [0x4aa708]
fst qword [esp + 0x2c]
fcomp qword [0x4aa6f8]
fnstsw ax
test ah, 1
jne 0x40287e
fadd qword [0x4aa6f0]
fmul qword [0x4aa708]
jmp 0x40288a
fstp st(0)
fld qword [esp + 0x2c]
fsub qword [0x4aa708]
call fcn.00470a50
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
cmp eax, 0x64
jne 0x4029b0
fild dword [esp + 0x14]
fst qword [esp + 0x54]
fmul qword [0x4aa708]
fcom qword [0x4aa6f8]
fnstsw ax
test ah, 1
jne 0x4028cd
fld qword [esp + 0x54]
fadd qword [0x4aa6f0]
fmul qword [0x4aa708]
jmp 0x4028d5
fld st(0)
fsub qword [0x4aa708]
call fcn.00470a50
mov edi, dword [esp + 0x28]
fcom qword [0x4aa6f8]
mov ecx, edi
sub ecx, eax
mov dword [esp + 0x44], ecx
fnstsw ax
test ah, 1
jne 0x402905
fld qword [esp + 0x54]
fadd qword [0x4aa6f0]
fmul qword [0x4aa708]
jmp 0x40290d
fld st(0)
fsub qword [0x4aa708]
call fcn.00470a50
fcom qword [0x4aa6f8]
add eax, edi
mov dword [esp + 0x4c], eax
fnstsw ax
test ah, 1
jne 0x402937
fld qword [esp + 0x54]
fadd qword [0x4aa6f0]
fmul qword [0x4aa708]
jmp 0x40293f
fld st(0)
fsub qword [0x4aa708]
call fcn.00470a50
mov edi, dword [esp + 0x20]
fcom qword [0x4aa6f8]
mov ecx, edi
sub ecx, eax
mov dword [esp + 0x48], ecx
fnstsw ax
test ah, 1
jne 0x402971
fstp st(0)
fld qword [esp + 0x54]
fadd qword [0x4aa6f0]
fmul qword [0x4aa708]
jmp 0x402977
fsub qword [0x4aa708]
call fcn.00470a50
mov edx, dword [esi]
push 4
mov ecx, esi
add edi, eax
call dword [edx + 0x24]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov ebx, eax
mov eax, dword [esp + 0x4c]
push edi
push eax
mov eax, dword [esi + 4]
push ecx
push edx
push eax
call dword [0x4a9060]
push ebx
mov ecx, esi
call fcn.0048a4f9
jmp 0x402cf0
push 0
call dword [0x4a973c]
fild dword [esp + 0x14]
mov ecx, eax
and ecx, 0xff
fst qword [esp + 0x54]
fld st(0)
fmul qword [0x4aa708]
mov dword [esp + 0x70], ecx
xor ecx, ecx
mov cl, ah
and ecx, 0xff
fstp qword [esp + 0x64]
mov dword [esp + 0x6c], ecx
fimul dword [esp + 0x10]
shr eax, 0x10
and eax, 0xff
mov dword [esp + 0x18], eax
fmul qword [0x4aa710]
fld qword [esp + 0x64]
fsub st(1)
fild dword [esp + 0x70]
fdiv st(1)
fstp qword [esp + 0x94]
fild dword [esp + 0x6c]
fdiv st(1)
fstp qword [esp + 0x74]
fild dword [esp + 0x18]
fdiv st(1)
fstp qword [esp + 0x44]
fstp st(0)
fld qword [esp + 0x64]
fcomp qword [0x4aa6f8]
fnstsw ax
test ah, 1
jne 0x402a48
fld qword [esp + 0x54]
fadd qword [0x4aa6f0]
fmul qword [0x4aa708]
jmp 0x402a52
fld qword [esp + 0x64]
fsub qword [0x4aa708]
call fcn.00470a50
fcom qword [0x4aa6f8]
mov dword [esp + 0x10], eax
fnstsw ax
test ah, 1
jne 0x402a70
fadd qword [0x4aa708]
jmp 0x402a76
fsub qword [0x4aa708]
call fcn.00470a50
mov dword [esp + 0x64], eax
mov dword [esp + 0x30], 0
mov dword [esp + 0x2c], vtable.CRgn.0
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x108], 6
lea edx, [edi + eax]
sub eax, edi
push edx
lea edx, [edi + ecx]
push edx
sub ecx, edi
push eax
push ecx
call dword [0x4a91dc]
push eax
lea ecx, [esp + 0x30]
call fcn.0048aea7
test edi, edi
mov dword [esp + 0x24], edi
jl 0x402cc0
mov ebx, dword [0x4a90fc]
jmp 0x402adc
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
add ecx, eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x40], ecx
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
sub eax, edi
mov dword [esp + 0x14], eax
push eax
mov eax, dword [esp + 0x34]
push edx
push eax
call dword [0x4a91d8]
test eax, eax
je 0x402ca2
mov eax, dword [esp + 0x24]
mov ecx, edi
mov edx, eax
imul ecx, edi
imul edx, eax
add ecx, edx
mov dword [esp + 0xc], ecx
fild dword [esp + 0xc]
fsqrt
fisub dword [esp + 0x64]
fld qword [esp + 0x94]
fmul st(1)
fcom qword [0x4aa6f8]
fnstsw ax
test ah, 1
jne 0x402b4d
fadd qword [0x4aa708]
jmp 0x402b53
fsub qword [0x4aa708]
call fcn.00470a50
fld qword [esp + 0x74]
fmul st(1)
mov edi, eax
fcom qword [0x4aa6f8]
fnstsw ax
test ah, 1
jne 0x402b75
fadd qword [0x4aa708]
jmp 0x402b7b
fsub qword [0x4aa708]
call fcn.00470a50
fmul qword [esp + 0x44]
mov dword [esp + 0xc], eax
fcom qword [0x4aa6f8]
fnstsw ax
test ah, 1
jne 0x402b9d
fadd qword [0x4aa708]
jmp 0x402ba3
fsub qword [0x4aa708]
call fcn.00470a50
mov ecx, dword [esp + 0x70]
cmp edi, ecx
jle 0x402bb2
mov edi, ecx
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0xc]
cmp edx, ecx
jle 0x402bc2
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
cmp eax, ecx
jle 0x402bcc
mov eax, ecx
test edi, edi
jge 0x402bd2
xor edi, edi
mov ecx, dword [esp + 0xc]
test ecx, ecx
jge 0x402be2
mov dword [esp + 0xc], 0
test eax, eax
jge 0x402be8
xor eax, eax
xor ecx, ecx
and edi, 0xff
mov ch, al
mov eax, dword [esp + 0x24]
mov cl, byte [esp + 0xc]
shl ecx, 8
or edi, ecx
test eax, eax
mov eax, dword [esp + 0x38]
jne 0x402c32
mov edx, dword [esp + 0x14]
mov ecx, dword [esi + 4]
test eax, eax
mov eax, dword [esp + 0x40]
push edi
push edx
push eax
push ecx
je 0x402ca0
call ebx
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
add edx, eax
push edi
push edx
jmp 0x402c9b
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + 4]
test eax, eax
mov eax, dword [esp + 0x14]
push edi
push eax
push ecx
push edx
jne 0x402c59
call ebx
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x28]
push edi
mov edi, dword [esp + 0x28]
push eax
sub ecx, edi
jmp 0x402c9b
call ebx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x40]
add eax, ecx
push edi
mov dword [esp + 0x10], eax
push eax
mov eax, dword [esi + 4]
push edx
push eax
call ebx
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
sub eax, edx
mov edx, dword [esi + 4]
push edi
push ecx
push eax
push edx
mov dword [esp + 0x64], eax
call ebx
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x54]
push edi
push eax
mov edx, dword [esi + 4]
push ecx
push edx
call ebx
mov edi, dword [esp + 0x38]
dec edi
mov dword [esp + 0x38], edi
jns 0x402aee
mov eax, dword [esp + 0x24]
dec eax
mov dword [esp + 0x24], eax
jns 0x402ad8
lea ecx, [esp + 0x2c]
call fcn.0048aefe
mov dword [esp + 0x2c], vtable.CGdiObject.0
lea ecx, [esp + 0x2c]
mov dword [esp + 0x108], 7
call fcn.0048aefe
mov dword [esp + 0x108], 0xffffffff
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x1c]
cmp eax, ecx
jl 0x402d82
mov ecx, dword [0x4c5774]
mov dword [esp + 0x1c], ecx
push eax
lea edx, [esp + 0x20]
push 0x4c40d0
push edx
mov dword [esp + 0x114], 8
call fcn.00480030
add esp, 0xc
mov ecx, esi
push 1
call fcn.0048a56e
mov edi, eax
mov eax, dword [esi]
push 0xff
mov ecx, esi
call dword [eax + 0x30]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x14]
lea ebx, [ebp + 8]
push 9
lea eax, [ecx + edx]
push ebx
cdq
sub eax, edx
sar eax, 1
mov dword [ebp + 0xc], eax
mov eax, dword [esp + 0x24]
mov edx, dword [esi]
mov ecx, dword [eax - 8]
push ecx
push eax
mov ecx, esi
call dword [edx + 0x68]
push edi
mov ecx, esi
call fcn.0048a56e
lea ecx, [esp + 0x1c]
mov dword [esp + 0x108], 0xffffffff
call fcn.00487011
mov eax, dword [esp + 0x88]
mov ecx, esi
push eax
call fcn.0048a4f9
mov ecx, dword [esp + 0x90]
push ecx
mov ecx, esi
call fcn.0048a4f9
mov edx, dword [esp + 0x5c]
mov ecx, esi
push edx
call fcn.0048a5ca
mov ecx, dword [esp + 0x8c]
mov eax, dword [esi + 4]
push eax
mov edx, dword [ecx + 0x1c]
push edx
call dword [0x4a9740]
mov ecx, dword [esp + 0x100]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x14