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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
fldz
push ebx
push esi
xor esi, esi
mov dword [esp + 0x2c], esi
xor eax, eax
mov word [esp + 0x18], ax
fst qword [esp + 0x4c]
fldz
mov dword [esp + 0x7c], esi
xor ecx, ecx
mov word [esp + 0xc], cx
fst dword [esp + 0x80]
fxch st(1)
xor edx, edx
fst qword [esp + 0x24]
mov word [esp + 0xc], dx
fxch st(1)
mov ebx, dword [ebp + 0x14]
fst dword [esp + 0x30]
mov eax, 1
fxch st(1)
push edi
fst qword [esp + 0x78]
lea ecx, [esp + 0x9c]
fstp qword [esp + 0x78]
push ecx
push ebx
fst dword [esp + 0x1c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x1c]
fld dword [esp + 0x1c]
fsub dword [0x42567c]
fsub qword [0x41f4f8]
fsubp st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fsub dword [esp + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
mov dword [esp + 0xa4], eax
fld1
mov dword [esp + 0xa8], eax
fsub st(1), st(0)
lea eax, [esp + 0xa0]
fxch st(1)
mov dword [esp + 0xa0], esi
mov dword [esp + 0xac], eax
fstp dword [esp + 0x1c]
fsubr dword [esp + 0x2c]
fstp dword [esp + 0x2c]
fld dword [esp + 0x2c]
fsub qword [0x41f4f0]
fsub qword [0x41f4e8]
fstp dword [esp + 0x2c]
call fcn.00401fa0
add esp, 8
test eax, eax
jne 0x405325
lea eax, [esi - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
lea edx, [esp + 0x90]
push edx
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x54]
push edx
lea eax, [esp + 0x4c]
push eax
call fcn.00401360
mov edi, dword [ebp + 0x10]
push ebx
push edi
call fcn.004018d0
add esp, 0x20
test eax, eax
jge 0x405427
mov eax, dword [ebp + 8]
cmp eax, esi
je 0x405377
push esi
push eax
call fcn.00402cc0
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
mov eax, dword [ebp + 0xc]
cmp eax, esi
je 0x405392
push edi
push eax
call fcn.004021f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
fld dword [0x425638]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x425638]
fld dword [0x423ff8]
fadd qword [0x4240e8]
fadd qword [0x41f718]
fld dword [0x425638]
fsub dword [0x423120]
fcompp
fnstsw ax
test ah, 5
jp 0x405408
fld qword [esp + 0x50]
xor eax, eax
fadd st(1)
fstp qword [esp + 0x50]
fadd dword [0x424060]
fstp dword [0x424060]
fld dword [0x423cdc]
fld qword [esp + 0x50]
fsub qword [0x41f710]
fsub dword [0x424060]
fsubp st(1)
fstp dword [0x423cdc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx ecx, word [0x423f98]
fstp st(0)
sub ecx, 0xf899422
mov word [0x423f98], cx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea edx, [esp + 0x38]
push edi
push edx
call fcn.004021f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
lea eax, [esp + 0x44]
push ebx
push eax
call fcn.004021f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
mov ecx, dword [edi + 4]
add ecx, 2
mov eax, 1
push ecx
lea edx, [esp + 0x6c]
push edx
mov dword [esp + 0x4c], eax
mov dword [esp + 0x40], eax
call fcn.00401280
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
push eax
lea eax, [esp + 0x6c]
push eax
call fcn.00402cc0
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
lea ecx, [esp + 0x5c]
push 2
push ecx
call fcn.00401280
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
fld qword [esp + 0x78]
lea edx, [esp + 0x8c]
fadd qword [0x41f708]
push 3
push edx
fstp qword [esp + 0x80]
call fcn.00401280
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
lea eax, [esp + 0x44]
push eax
call fcn.004013f0
add esp, 4
and eax, 0x8000001f
jns 0x4054f9
dec eax
or eax, 0xffffffe0
inc eax
cmp eax, 0x1f
jge 0x40553e
mov edi, 0x1f
sub edi, eax
lea ecx, [esp + 0x38]
push edi
push ecx
mov dword [esp + 0x90], edi
call fcn.00401a70
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
lea edx, [esp + 0x44]
push edi
push edx
call fcn.00401a70
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
jmp 0x405549
mov dword [esp + 0x88], 0
mov edi, dword [esp + 0x3c]
mov eax, dword [esp + 0x48]
dec eax
dec edi
mov dword [esp + 0x18], edi
sub edi, eax
mov ebx, edi
mov dword [esp + 0x14], eax
shl ebx, 5
lea eax, [esp + 0x44]
push ebx
push eax
call fcn.00401a70
mov ecx, dword [esp + 0x38]
mov edx, dword [0x424940]
mov eax, 0xae778ea5
sub eax, ecx
mov cx, word [esp + 0x24]
inc dword [esp + 0x24]
sub eax, edx
movsx edx, cx
mov ecx, 0x7293d522
sub ecx, edx
add esp, 8
cmp ecx, eax
jle 0x4055bb
fld qword [esp + 0x28]
mov dx, word [0x425640]
movsx eax, dx
add eax, 0x21609222
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fsubp st(1)
fstp qword [esp + 0x28]
lea ecx, [esp + 0x44]
push ecx
lea edx, [esp + 0x3c]
push edx
call fcn.00401fa0
add esp, 8
test eax, eax
jl 0x405600
mov eax, dword [esp + 0x70]
inc dword [eax + edi*4]
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov edx, ecx
push edx
call fcn.00404760
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.00401fa0
add esp, 0x14
test eax, eax
jge 0x4055d1
fld qword [0x423fa0]
fsub qword [0x41f700]
fcomp qword [0x41f6f8]
fnstsw ax
fld dword [esp + 0x34]
test ah, 0x44
jp 0x405631
fsub qword [0x41f6f0]
call fcn.0040b030
mov dword [esp + 0x80], eax
jmp 0x40568c
fsub qword [0x41f6e8]
fcomp qword [0x41f6e0]
fnstsw ax
test ah, 0x41
jp 0x405652
fld dword [esp + 0x34]
fsub dword [esp + 0x34]
fstp dword [esp + 0x34]
jmp 0x40568c
fld qword [esp + 0x28]
fld1
fadd st(1), st(0)
fxch st(1)
fstp qword [esp + 0x28]
fld qword [esp + 0x50]
fsub qword [esp + 0x28]
mov dx, word [esp + 0x1c]
movsx eax, dx
mov dword [esp + 0x20], eax
fild dword [esp + 0x20]
fmulp st(1)
call fcn.0040b030
mov word [esp + 0x1c], ax
fadd qword [esp + 0x50]
fstp qword [esp + 0x50]
lea ecx, [esp + 0x44]
push ebx
push ecx
call fcn.00402090
mov eax, dword [esp + 0x20]
add esp, 8
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
jle 0x405b75
add edi, edi
add edi, edi
add ebx, 0xffffffe0
mov dword [esp + 0x74], edi
mov dword [esp + 0x20], ebx
mov dx, word [0x4257cc]
movsx eax, dx
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fadd qword [esp + 0x28]
call fcn.0040b030
mov edx, dword [esp + 0x24]
mov word [0x4257cc], ax
fld qword [esp + 0x28]
mov ecx, dword [esp + 0x40]
fsub qword [0x41f348]
mov eax, dword [esp + 0x4c]
lea ebx, [ecx + edx*4]
mov ecx, dword [esp + 0x14]
fstp qword [esp + 0x28]
mov edx, dword [ebx]
lea ecx, [eax + ecx*4]
mov dword [esp + 0x18], ebx
cmp edx, dword [ecx]
jb 0x40571a
mov eax, dword [esp + 0x70]
or ebx, 0xffffffff
mov dword [edi + eax - 4], ebx
jmp 0x405896
dec word [0x425a6c]
movzx edx, word [0x425a6c]
movsx eax, dx
movzx edx, word [esp + 0x10]
sub edx, eax
mov eax, dword [esp + 0x30]
sub edx, eax
sub edx, 0x4ec80413
mov word [esp + 0x10], dx
inc dword [esp + 0x30]
mov esi, dword [ecx]
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x1c], ecx
mov edi, esi
shr edi, 0x10
fild dword [esp + 0x1c]
fmul qword [0x425750]
call fcn.0040b030
mov ecx, dword [ebx]
mov dword [esp + 0x30], eax
fld qword [esp + 0x50]
xor edx, edx
fsub qword [0x41f6d8]
mov eax, ecx
div edi
fcomp qword [0x41f6d0]
mov ebx, eax
mov eax, dword [esp + 0x18]
mov edx, ebx
imul edx, edi
sub ecx, edx
movzx edx, word [eax - 2]
fnstsw ax
shl ecx, 0x10
or ecx, edx
test ah, 5
jp 0x4057ac
fld qword [esp + 0x28]
fmul qword [0x41f6c8]
fstp qword [esp + 0x28]
movzx edx, si
mov eax, ebx
imul eax, edx
mov dword [esp + 0x1c], eax
cmp ecx, eax
jae 0x4057ce
add ecx, esi
dec ebx
cmp ecx, esi
jb 0x4057ce
cmp ecx, eax
jae 0x4057ce
add ecx, esi
dec ebx
cmp ecx, esi
jae 0x4057c3
dec dword [esp + 0x10]
movzx eax, word [esp + 0x10]
movsx edx, ax
movzx eax, word [esp + 0x10]
dec dword [esp + 0x10]
cwde
sub edx, eax
cmp edx, 0xcc99f74f
jg 0x405800
fld qword [str.__e5]
fmul qword [0x41f6c0]
fstp qword [str.__e5]
sub ecx, dword [esp + 0x1c]
xor edx, edx
mov eax, ecx
div edi
mov edx, eax
imul edx, edi
sub ecx, edx
mov edx, dword [esp + 0x18]
movzx edx, word [edx - 4]
shl ecx, 0x10
or ecx, edx
movzx edi, si
mov edx, eax
imul edx, edi
mov dword [esp + 0x1c], edx
cmp ecx, edx
jae 0x40585e
mov edx, dword [esp + 0x80]
mov edi, 0x5a8324bb
sub edi, edx
add edi, dword [0x425678]
add ecx, esi
dec eax
mov dword [0x425678], edi
cmp ecx, esi
jb 0x40585e
mov edx, dword [esp + 0x1c]
cmp ecx, edx
jae 0x40585e
add ecx, esi
dec eax
cmp ecx, esi
jae 0x405853
dec dword [0x424950]
mov ecx, dword [0x424950]
add ecx, 0x1e97a94
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
shl ebx, 0x10
or ebx, eax
mov eax, dword [esp + 0x74]
fadd qword [esp + 0x50]
mov edx, dword [esp + 0x70]
mov dword [eax + edx - 4], ebx
mov edi, eax
fstp qword [esp + 0x50]
or ebx, 0xffffffff
mov eax, dword [esp + 0x70]
inc dword [edi + eax - 4]
mov edi, edi
mov eax, dword [esp + 0x70]
add dword [edi + eax - 4], ebx
lea ecx, [esp + 0x5c]
push 0
push ecx
call fcn.00402cc0
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
mov ecx, dword [esp + 0x14]
cmp ecx, 1
jl 0x4058d2
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + ecx*4 - 4]
mov edx, dword [esp + 0x64]
mov dword [edx], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + ecx*4]
mov edx, dword [esp + 0x64]
mov dword [edx + 4], ecx
mov eax, dword [esp + 0x70]
mov ecx, dword [edi + eax - 4]
push ecx
lea edx, [esp + 0x60]
push edx
mov eax, edx
push eax
call fcn.00404bc0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x405be7
push eax
lea ecx, [esp + 0x90]
push ecx
mov dword [0x4257b4], 0xc85d2cc7
call fcn.00402cc0
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
mov dx, word [0x425a6c]
movsx eax, dx
add eax, 0x2abf6cb2
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x24]
fild dword [esp + 0x18]
fld qword [0x423f38]
fld qword [esp + 0x28]
fsubp st(2)
fsubrp st(1)
fstp qword [0x423f38]
fld qword [esp + 0x28]
fadd qword [0x41f348]
fstp qword [esp + 0x28]
add word [0x425a6c], bx
cmp eax, 2
jge 0x40597b
xor ecx, ecx
jmp 0x405983
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx + eax*4 - 8]
cmp eax, 1
mov edx, dword [esp + 0x94]
mov dword [edx], ecx
jge 0x405995
xor ecx, ecx
jmp 0x40599d
mov ecx, dword [esp + 0x40]
mov ecx, dword [ecx + eax*4 - 4]
mov edx, dword [esp + 0x94]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx + eax*4]
mov eax, dword [esp + 0x94]
lea ecx, [esp + 0x8c]
mov dword [eax + 8], edx
push ecx
lea edx, [esp + 0x60]
push edx
call fcn.00401fa0
add esp, 8
test eax, eax
jg 0x4058a0
mov eax, dword [0x423c80]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
lea eax, [esp + 0x44]
fadd qword [esp + 0x78]
fadd qword [esp + 0x28]
fmul dword [esp + 0x84]
fstp dword [esp + 0x84]
add dword [0x423c80], ebx
fld qword [esp + 0x78]
mov ecx, dword [esp + 0x70]
mov edx, dword [edi + ecx - 4]
fsub qword [0x41f348]
push edx
push eax
lea ecx, [esp + 0x64]
fstp qword [esp + 0x80]
push ecx
call fcn.00404bc0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x405be7
add word [0x423ea8], bx
mov dx, word [0x423ea8]
movzx ecx, word [esp + 0x10]
mov ebx, dword [esp + 0x20]
movsx eax, dx
lea edx, [esp + 0x5c]
sub ecx, eax
push ebx
push edx
mov word [esp + 0x18], cx
call fcn.00401a70
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov edx, ecx
push edx
call fcn.00404760
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x405be7
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.00402e70
add esp, 8
test eax, eax
jge 0x405b54
mov cx, word [0x423ef8]
mov edx, dword [0x423e80]
movsx eax, cx
sub eax, edx
sub eax, 0x7db7b78a
mov word [0x423ef8], ax
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x60]
push ecx
call fcn.004021f0
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
lea edx, [esp + 0x5c]
push ebx
push edx
call fcn.00401a70
mov esi, eax
add esp, 8
test esi, esi
jne 0x405be7
lea eax, [esp + 0x5c]
push eax
lea ecx, [esp + 0x3c]
push ecx
mov edx, ecx
push edx
call fcn.00404000
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x405be7
mov eax, dword [esp + 0x70]
fld dword [esp + 0x34]
dec dword [edi + eax - 4]
fsub qword [0x41f6b8]
mov ax, word [esp + 0x10]
mov edx, dword [0x425fa0]
movsx ecx, ax
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
mov dword [esp + 0x20], edx
faddp st(1)
fild dword [esp + 0x20]
fmulp st(1)
call fcn.0040b030
mov dword [0x425fa0], eax
dec dword [esp + 0x10]
mov eax, dword [esp + 0x24]
dec eax
sub ebx, 0x20
sub edi, 4
cmp eax, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebx
mov dword [esp + 0x74], edi
jg 0x4056bb
mov edi, dword [ebp + 8]
test edi, edi
je 0x405ba7
lea eax, [esp + 0x68]
push eax
push edi
call fcn.004021f0
mov ecx, dword [ebp + 0x10]
mov edx, dword [ecx]
movzx ecx, word [esp + 0x18]
mov eax, dword [ebp + 0x14]
imul edx, dword [eax]
add esp, 8
imul ecx, ecx, 0x3641bfb3
mov dword [edi], edx
mov word [esp + 0x10], cx
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x405be7
mov edx, dword [esp + 0x88]
push edx
lea eax, [esp + 0x3c]
push eax
call fcn.00402090
lea ecx, [esp + 0x40]
push ecx
push edi
call fcn.004021f0
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
push 0
push edi
mov dword [edi], eax
call fcn.00402e70
add esp, 0x18
test eax, eax
jne 0x405be7
mov dword [edi], 1
push 0
lea ecx, [esp + 0x90]
push ecx
lea edx, [esp + 0x64]
push edx
lea eax, [esp + 0x74]
push eax
lea ecx, [esp + 0x54]
push ecx
lea edx, [esp + 0x4c]
push edx
call fcn.004024b0
add esp, 0x18
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret