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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xb4
push ebx
push esi
push edi
fldz
xor ebx, ebx
mov dword [esp + 0x24], ebx
xor eax, eax
mov word [esp + 0x10], ax
fst qword [esp + 0x58]
xor ecx, ecx
mov word [esp + 0x30], cx
mov dword [esp + 0x54], ebx
xor edx, edx
mov word [esp + 0x90], dx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x14], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x34], ebx
mov word [esp + 0x38], ax
fstp qword [esp + 0x18]
fldz
mov esi, dword [ebp + 0x14]
fstp dword [esp + 0x40]
mov cx, word [0x423958]
movsx edx, cx
sub edx, 0x1c17c860
mov dword [esp + 0x3c], edx
mov eax, 1
fild dword [esp + 0x3c]
lea ecx, [esp + 0xa8]
push ecx
push esi
fmul dword [esp + 0x48]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xac]
fstp dword [esp + 0x48]
mov dword [esp + 0xac], ebx
mov dword [esp + 0xb8], eax
call fcn.004017e0
add esp, 8
test eax, eax
jne 0x404c90
lea eax, [ebx - 0xc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
lea edx, [esp + 0x98]
push edx
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x90]
push ecx
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x58]
push eax
call fcn.00402f80
mov edi, dword [ebp + 0x10]
push esi
push edi
call fcn.00401380
add esp, 0x20
test eax, eax
jge 0x404d1d
mov eax, dword [ebp + 8]
cmp eax, ebx
je 0x404ce1
push ebx
push eax
call fcn.004022c0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4055f2
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x404cfc
push edi
push eax
call fcn.00402000
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4055f2
movzx ecx, word [esp + 0x38]
movzx edx, word [esp + 0x10]
add ecx, 0x14e15976
imul ecx, edx
mov word [esp + 0x10], cx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x44]
push edi
push eax
call fcn.00402000
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4055f2
mov ecx, dword [ebp + 0x14]
push ecx
lea edx, [esp + 0x68]
push edx
call fcn.00402000
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4055f2
mov eax, 1
mov dword [esp + 0x64], eax
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x34]
add eax, 0xd4baea1
mov dword [esp + 0x3c], eax
fild dword [esp + 0x3c]
lea edx, [esp + 0x84]
fmul qword [0x4252d0]
fstp qword [0x4252d0]
mov ecx, dword [edi + 4]
add ecx, 2
push ecx
push edx
call fcn.004011c0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4055f2
dec word [0x4252e4]
mov ax, word [0x4252e4]
movzx ecx, word [esp + 0x10]
mov edx, dword [esp + 0x28]
cwde
sub ecx, eax
lea eax, [ecx + edx + 0x24d5124b]
lea ecx, [esp + 0x84]
push ebx
push ecx
mov word [esp + 0x18], ax
call fcn.004022c0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4055f2
lea edx, [esp + 0x74]
push 2
push edx
call fcn.004011c0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4055f2
lea eax, [esp + 0x94]
push 3
push eax
call fcn.004011c0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4055f2
lea ecx, [esp + 0x64]
push ecx
call fcn.00401110
add esp, 4
and eax, 0x8000001f
jns 0x404e29
dec eax
or eax, 0xffffffe0
inc eax
mov edx, dword [0x423ca8]
mov ecx, dword [esp + 0x28]
imul edx, ecx
cmp eax, 0x1f
mov dword [0x423ca8], edx
jge 0x404e92
fld qword [0x4252b0]
mov edi, 0x1f
fsub qword [0x41f6d8]
sub edi, eax
lea edx, [esp + 0x44]
push edi
fadd qword [esp + 0x5c]
push edx
mov dword [esp + 0x44], edi
fstp qword [esp + 0x60]
call fcn.00401ea0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4055f2
lea eax, [esp + 0x64]
push edi
push eax
call fcn.00401ea0
mov esi, eax
add esp, 8
cmp esi, ebx
jne 0x4055f2
jmp 0x404e96
mov dword [esp + 0x3c], ebx
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x68]
dec edi
dec eax
mov dword [esp + 0x70], edi
sub edi, eax
mov ebx, edi
shl ebx, 5
lea ecx, [esp + 0x64]
push ebx
push ecx
mov dword [esp + 0x88], eax
call fcn.00401ea0
lea edx, [esp + 0x6c]
push edx
lea eax, [esp + 0x50]
push eax
call fcn.004017e0
add esp, 0x10
test eax, eax
jl 0x404f27
mov eax, dword [esp + 0x8c]
inc dword [eax + edi*4]
mov cx, word [0x4242d4]
mov edx, dword [esp + 0x28]
movsx eax, cx
mov ecx, dword [esp + 0x24]
sub eax, edx
lea edx, [eax + ecx - 0x297b8b23]
lea eax, [esp + 0x64]
push eax
lea ecx, [esp + 0x48]
mov word [0x4242d4], dx
push ecx
mov edx, ecx
push edx
call fcn.00404b00
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0x54]
push ecx
call fcn.004017e0
add esp, 0x14
test eax, eax
jge 0x404ed3
lea edx, [esp + 0x64]
push ebx
push edx
call fcn.00401c00
mov eax, dword [esp + 0x78]
add esp, 8
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x38], eax
jle 0x40549c
add edi, edi
add edi, edi
add ebx, 0xffffffe0
mov dword [esp + 0x40], edi
mov dword [esp + 0x70], ebx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x6c]
lea ebx, [eax + ecx*4]
mov eax, dword [esp + 0x80]
lea ecx, [edx + eax*4]
mov edx, dword [ebx]
mov dword [esp + 0x50], ebx
cmp edx, dword [ecx]
jb 0x404f8f
mov eax, dword [esp + 0x8c]
or ebx, 0xffffffff
mov dword [edi + eax - 4], ebx
jmp 0x4050f4
mov edx, dword [esp + 0x14]
mov eax, 0xb4ef2833
sub eax, edx
or edx, 0xffffffff
add dword [esp + 0x14], edx
cmp eax, 0xc69d3b74
jg 0x40500a
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fsub qword [esp + 0x58]
fcomp qword [0x41f6d0]
fnstsw ax
fld qword [esp + 0x58]
fsub qword [0x41f350]
fstp qword [esp + 0x58]
test ah, 0x44
jnp 0x404ff0
mov eax, 1
add dword [esp + 0x54], eax
mov edx, dword [esp + 0x54]
mov esi, dword [esp + 0x24]
sub esi, edx
mov dword [esp + 0x54], esi
add dword [esp + 0x24], eax
jmp 0x40500a
add dword [esp + 0x14], edx
mov eax, dword [esp + 0x2c]
mov eax, dword [esp + 0x2c]
mov ax, word [0x423b44]
mov eax, dword [esp + 0x14]
add dword [esp + 0x2c], edx
mov esi, dword [ecx]
mov ecx, dword [0x424350]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fadd dword [0x425fcc]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], edx
fisub dword [esp + 0x18]
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
faddp st(1)
call fcn.0040b5b0
mov dword [esp + 0x14], eax
inc dword [esp + 0x34]
mov ecx, dword [ebx]
xor edx, edx
mov eax, ecx
mov edi, esi
shr edi, 0x10
div edi
mov ebx, eax
movzx eax, word [esp + 0x10]
mov edx, ebx
imul edx, edi
sub ecx, edx
mov edx, dword [esp + 0x50]
sub eax, 0x33c21bdf
mov word [esp + 0x10], ax
movzx eax, word [edx - 2]
add dword [esp + 0x14], 0xb1f44345
shl ecx, 0x10
or ecx, eax
movzx edx, si
mov eax, ebx
imul eax, edx
cmp ecx, eax
jae 0x40509f
add ecx, esi
dec ebx
cmp ecx, esi
jb 0x40509f
cmp ecx, eax
jae 0x40509f
add ecx, esi
dec ebx
cmp ecx, esi
jae 0x405094
sub ecx, eax
xor edx, edx
mov eax, ecx
div edi
mov edx, eax
imul edx, edi
sub ecx, edx
mov edx, dword [esp + 0x50]
movzx edx, word [edx - 4]
shl ecx, 0x10
or ecx, edx
movzx edi, si
mov edx, eax
imul edx, edi
cmp ecx, edx
jae 0x4050db
add ecx, esi
dec eax
cmp ecx, esi
jb 0x4050db
mov edi, edi
cmp ecx, edx
jae 0x4050db
add ecx, esi
dec eax
cmp ecx, esi
jae 0x4050d0
mov ecx, dword [esp + 0x40]
shl ebx, 0x10
or ebx, eax
mov eax, dword [esp + 0x8c]
mov dword [ecx + eax - 4], ebx
mov edi, ecx
or ebx, 0xffffffff
mov eax, dword [esp + 0x8c]
inc dword [edi + eax - 4]
nop
mov eax, dword [esp + 0x8c]
add dword [edi + eax - 4], ebx
lea edx, [esp + 0x74]
push 0
push edx
call fcn.004022c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4055f0
fld dword [0x4242b8]
fld1
fsub st(1), st(0)
fxch st(1)
fstp dword [0x4242b8]
mov eax, dword [0x42395c]
add eax, 0x1cf0af36
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fld dword [0x4235c8]
fsub qword [0x41f6c8]
fadd dword [0x4242b8]
fcompp
fnstsw ax
fld dword [0x4235c8]
fadd st(1)
fstp dword [0x4235c8]
test ah, 0x41
jne 0x4051a6
inc dword [esp + 0x2c]
fld qword [0x423b50]
mov ecx, dword [esp + 0x2c]
fsub qword [0x41f6c0]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
mov dword [esp + 0x18], edx
fsubp st(1)
fild dword [esp + 0x18]
faddp st(1)
call fcn.0040b5b0
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x80]
cmp esi, 1
jge 0x4051b6
xor eax, eax
jmp 0x4051be
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + esi*4 - 4]
fsubr qword [esp + 0x58]
mov ecx, dword [esp + 0x7c]
mov dword [ecx], eax
fstp qword [esp + 0x58]
fld qword [esp + 0x58]
mov edx, dword [0x425248]
fsub qword [0x41f6b8]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fmulp st(1)
call fcn.0040b5b0
mov edx, dword [esp + 0x7c]
mov dword [0x425248], eax
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + esi*4]
mov dword [edx + 4], ecx
fld qword [0x4243a0]
fsub qword [0x41f6b0]
mov eax, dword [esp + 0x8c]
lea edx, [esp + 0x74]
fstp qword [0x4243a0]
mov ecx, dword [edi + eax - 4]
push ecx
push edx
mov eax, edx
push eax
call fcn.004048e0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4055f0
push eax
lea ecx, [esp + 0x98]
push ecx
call fcn.004022c0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4055f0
mov esi, dword [esp + 0x38]
cmp esi, 2
jl 0x405262
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + esi*4 - 8]
fld qword [esp + 0x58]
mov ecx, dword [esp + 0x9c]
fsub qword [0x41f350]
mov dword [ecx], eax
fstp qword [esp + 0x58]
fld qword [esp + 0x58]
fadd qword [0x41f6a8]
call fcn.0040b5b0
cmp esi, 1
mov word [0x423a14], ax
jge 0x405297
xor eax, eax
jmp 0x40529f
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + esi*4 - 4]
mov ecx, dword [esp + 0x9c]
mov dword [ecx + 4], eax
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + esi*4]
mov ecx, dword [esp + 0x9c]
lea edx, [esp + 0x94]
mov dword [ecx + 8], eax
push edx
lea eax, [esp + 0x78]
push eax
call fcn.004017e0
add esp, 8
test eax, eax
jg 0x405100
mov ecx, dword [esp + 0x8c]
mov edx, dword [edi + ecx - 4]
push edx
lea eax, [esp + 0x68]
push eax
lea ecx, [esp + 0x7c]
push ecx
call fcn.004048e0
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4055f0
mov ebx, dword [esp + 0x70]
lea edx, [esp + 0x74]
push ebx
push edx
call fcn.00401ea0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4055f0
mov ax, word [esp + 0x90]
mov edx, dword [esp + 0x34]
movsx ecx, ax
sub ecx, 0x1aa0a6f7
add edx, 0x470254d6
cmp edx, ecx
jle 0x40534b
movzx eax, word [esp + 0x30]
movzx ecx, word [esp + 0x30]
add eax, ecx
mov word [esp + 0x30], ax
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x48]
push eax
mov ecx, eax
push ecx
call fcn.00404b00
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4055f0
fldz
lea ecx, [esp + 0xa0]
fstp qword [esp + 0x18]
fldz
fstp dword [esp + 0x50]
mov dx, word [0x423958]
movsx eax, dx
sub eax, 0x1c17c860
mov dword [esp + 0x18], eax
mov eax, 1
lea edx, [esp + 0xb4]
fild dword [esp + 0x18]
push edx
fmul dword [esp + 0x54]
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], eax
lea eax, [esp + 0x48]
push eax
fstp dword [esp + 0x58]
mov dword [esp + 0xa8], esi
mov dword [esp + 0xc4], ecx
call fcn.004017e0
add esp, 8
test eax, eax
jge 0x405478
lea ecx, [esp + 0x64]
push ecx
lea edx, [esp + 0x78]
push edx
call fcn.00402000
mov esi, eax
add esp, 8
test esi, esi
jne 0x4055f0
lea eax, [esp + 0x74]
push ebx
push eax
call fcn.00401ea0
mov esi, eax
add esp, 8
test esi, esi
jne 0x4055f0
lea ecx, [esp + 0x74]
push ecx
lea edx, [esp + 0x48]
push edx
mov eax, edx
push eax
call fcn.00404780
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x4055f0
mov eax, dword [esp + 0x8c]
or ecx, 0xffffffff
add dword [edi + eax - 4], ecx
inc dword [esp + 0x28]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
lea edx, [eax + edx - 0x414d4e17]
cmp edx, 0xb7920df5
jne 0x405478
mov ax, word [0x423940]
movzx edx, word [esp + 0x10]
cwde
sub edx, eax
add edx, 0x2606faa
mov word [str.sx__], dx
add word [0x423940], cx
mov eax, dword [esp + 0x38]
dec eax
sub ebx, 0x20
sub edi, 4
cmp eax, dword [esp + 0x80]
mov dword [esp + 0x38], eax
mov dword [esp + 0x70], ebx
mov dword [esp + 0x40], edi
jg 0x404f59
mov edi, dword [ebp + 8]
test edi, edi
je 0x4054cb
lea ecx, [esp + 0x84]
push ecx
mov eax, 0xffffa61a
push edi
mov word [esp + 0x18], ax
call fcn.00402000
mov edx, dword [ebp + 0x10]
mov eax, dword [edx]
mov ecx, dword [ebp + 0x14]
add esp, 8
imul eax, dword [ecx]
mov dword [edi], eax
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x4055db
mov dx, word [0x4252bc]
movsx eax, dx
sub dword [0x424318], eax
mov eax, dword [esp + 0x3c]
push eax
lea ecx, [esp + 0x48]
push ecx
call fcn.00401c00
lea edx, [esp + 0x4c]
push edx
push edi
call fcn.00402000
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax]
push 0
push edi
mov dword [edi], ecx
call fcn.00402240
add esp, 0x18
test eax, eax
jne 0x40551c
mov dword [edi], 1
fld qword [0x4252c0]
fsub qword [0x41f6a0]
fcomp qword [0x41f698]
fnstsw ax
fld qword [0x4252c0]
fld1
fsub st(1), st(0)
fxch st(1)
fstp qword [0x4252c0]
test ah, 0x44
jnp 0x4055bf
mov ecx, 1
add dword [esp + 0x28], ecx
mov dx, word [0x423b40]
movsx eax, dx
mov dword [esp + 0x18], eax
fild dword [esp + 0x18]
fadd qword [0x423900]
mov edx, dword [esp + 0x28]
add word [0x423b40], cx
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fucompp
fnstsw ax
test ah, 0x44
jp 0x4055d9
mov ax, word [0x423914]
movsx ecx, ax
mov dword [esp + 0x18], ecx
fild dword [esp + 0x18]
fsub dword [0x424450]
fadd qword [0x41f690]
fadd qword [0x423920]
fstp qword [0x423920]
fsubr dword [0x424450]
fstp dword [0x424450]
jmp 0x4055db
dec dword [esp + 0x14]
fstp st(0)
mov edx, dword [esp + 0x14]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
fstp qword [0x425200]
jmp 0x4055db
fstp st(0)
mov eax, dword [esp + 0x24]
mov ecx, 0xcb8e7468
sub ecx, eax
mov dword [0x425f0c], ecx
dec dword [esp + 0x24]
xor ebx, ebx
push ebx
lea edx, [esp + 0x98]
push edx
lea eax, [esp + 0x7c]
push eax
lea ecx, [esp + 0x90]
push ecx
lea edx, [esp + 0x74]
push edx
lea eax, [esp + 0x58]
push eax
call fcn.00402500
add esp, 0x18
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret