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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x74
fld qword [0x510f60]
xor eax, eax
fld1
or edx, 0xffffffff
cmp dword [ebp + 0x14], eax
push ebx
sete al
push esi
mov esi, dword [ebp + 0x10]
push edi
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], edx
mov edi, eax
mov eax, dword [esi + 0x90]
add eax, 0xffffffff
mov ecx, eax
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x14]
lea ebx, [edi + ecx*2]
lea ebx, [eax + ebx*8]
fld qword [ebx]
fabs
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x4511ff
test edx, edx
jge 0x4516c6
mov dword [esp + 0x2c], ecx
mov edx, ecx
fld qword [ebx]
fsub st(1)
fabs
fcomp st(2)
fnstsw ax
test ah, 5
jp 0x451219
cmp dword [esp + 0x24], 0
jge 0x451225
mov dword [esp + 0x24], ecx
sub ecx, 1
sub ebx, 0x10
test ecx, ecx
jl 0x45122d
jmp 0x4511e4
mov dword [esp + 0x24], 0xffffffff
test edx, edx
jl 0x4516c6
cmp dword [esp + 0x24], 0
jl 0x4516c6
lea ecx, [edx - 1]
test ecx, ecx
mov dword [esp + 0x34], ecx
jge 0x451253
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x34], ecx
mov edx, dword [esi + 0x18]
lea eax, [edi + ecx*2]
fld qword [edx + eax*8]
fabs
fcomp st(2)
fnstsw ax
test ah, 0x41
je 0x4516c6
mov ebx, dword [esp + 0x24]
add ebx, 0xffffffff
mov dword [esp + 0x30], ebx
jns 0x451282
mov eax, dword [esp + 0x28]
mov dword [esp + 0x30], eax
mov ebx, eax
lea eax, [edi + ebx*2]
fld qword [edx + eax*8]
fsub st(1)
fabs
fcomp st(2)
fnstsw ax
test ah, 0x41
je 0x4516c6
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x2c]
lea eax, [edx + eax*2]
lea edx, [edx + ecx*2]
add edx, edx
add eax, eax
add edx, edx
add edx, edx
add eax, eax
add eax, eax
mov dword [esp + 0x28], edx
mov edx, dword [esi + 0x14]
fld qword [edx + eax]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x18]
fsub qword [eax + edx]
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x24]
lea eax, [edx + eax*2]
lea edx, [edx + ebx*2]
fst qword [esp + 0x40]
add edx, edx
add eax, eax
add edx, edx
add eax, eax
add edx, edx
add eax, eax
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0x14]
fld qword [eax + edx]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esi + 0x18]
fsub qword [edx + eax]
mov eax, dword [ebp + 0x14]
fst qword [esp + 0x48]
fld st(1)
fsub qword [esi + eax*8 + 0x50]
fabs
fcomp st(4)
fnstsw ax
test ah, 0x41
jp 0x451327
mov edx, dword [esp + 0x28]
mov eax, dword [esi + 0x18]
fld qword [edx + eax]
mov edx, dword [esp + 0x38]
jmp 0x451349
mov eax, dword [ebp + 0x14]
fld st(0)
fsub qword [esi + eax*8 + 0x50]
fabs
fcomp st(4)
fnstsw ax
test ah, 0x41
jp 0x4516c2
mov eax, dword [esi + 0x18]
fld qword [edx + eax]
mov edx, dword [esp + 0x3c]
mov eax, dword [esi + 0x14]
fadd qword [edx + eax]
fld qword [0x511078]
fcomp st(3)
fnstsw ax
fstp st(2)
test ah, 5
jp 0x451370
fcomp st(3)
fnstsw ax
test ah, 5
jp 0x451372
mov eax, 1
jmp 0x451374
fstp st(0)
xor eax, eax
mov edx, dword [ebp + 8]
mov edx, dword [edx + 0x10]
mov edx, dword [edx + 0x34]
and edx, 1
mov dword [esp + 0x3c], edx
je 0x451393
xor edx, edx
test eax, eax
sete dl
mov eax, edx
mov edx, dword [esp + 0x3c]
test eax, eax
je 0x4514c7
fstp st(2)
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x451441
test edx, edx
fstp st(0)
je 0x4513c0
mov eax, dword [esp + 0x24]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x28], eax
jmp 0x4513cc
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], ecx
fld qword [0x50de40]
mov edx, dword [esp + 0x20]
mov ebx, dword [ebp + 0x14]
sub esp, 8
fstp qword [esp]
push edx
push esi
call fcn.0044c5a0
mov eax, dword [esp + 0x30]
add esp, 0x10
cmp eax, dword [esp + 0x28]
je 0x45142e
sub dword [esp + 0x20], 1
jns 0x451407
mov eax, dword [esi + 0x90]
sub eax, 1
mov dword [esp + 0x20], eax
fld qword [0x50de40]
mov ecx, dword [esp + 0x20]
mov ebx, dword [ebp + 0x14]
sub esp, 8
fstp qword [esp]
push ecx
push esi
call fcn.0044c5a0
mov edx, dword [esp + 0x38]
add esp, 0x10
cmp dword [esp + 0x20], edx
jne 0x4513f3
fld qword [0x510f60]
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
jmp 0x4514cb
test edx, edx
je 0x451453
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x28], eax
jmp 0x45145f
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x28], ecx
mov edx, dword [esp + 0x20]
mov ebx, dword [ebp + 0x14]
sub esp, 8
fstp qword [esp]
push edx
push esi
call fcn.0044c5a0
mov eax, dword [esp + 0x30]
add esp, 0x10
cmp eax, dword [esp + 0x28]
je 0x45142e
sub dword [esp + 0x20], 1
jns 0x451494
mov eax, dword [esi + 0x90]
sub eax, 1
mov dword [esp + 0x20], eax
fld1
mov ecx, dword [esp + 0x20]
mov ebx, dword [ebp + 0x14]
sub esp, 8
fstp qword [esp]
push ecx
push esi
call fcn.0044c5a0
mov edx, dword [esp + 0x38]
add esp, 0x10
cmp dword [esp + 0x20], edx
jne 0x451480
fld qword [0x510f60]
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x34]
jmp 0x4514cb
fstp st(0)
fstp st(0)
fld qword [esp + 0x40]
fabs
fcomp st(1)
fnstsw ax
fldz
test ah, 0x41
jne 0x45159c
mov eax, dword [esi + 8]
fstp st(1)
mov eax, dword [eax + ecx*4]
mov edx, dword [eax]
mov dword [esp + 0x34], eax
mov eax, dword [esi + 0x18]
shl ecx, 4
fld qword [ecx + eax]
add ecx, eax
fdiv qword [esi + 0x70]
mov eax, dword [esp + 0x2c]
shl eax, 4
mov dword [esp + 0x30], edx
lea edx, [esp + 0x50]
push edx
fadd qword [esi + 0x60]
fst qword [esp + 0x6c]
fld qword [ecx + 8]
mov ecx, dword [esi + 0x14]
fdiv qword [esi + 0x88]
add eax, ecx
fadd qword [esi + 0x78]
fst qword [esp + 0x74]
fxch st(2)
fst qword [esp + 0x7c]
fld qword [eax]
fdiv qword [esi + 0x70]
fadd qword [esi + 0x60]
fsubrp st(2)
fxch st(1)
fstp qword [esp + 0x54]
fld qword [eax + 8]
lea eax, [esp + 0x6c]
fdiv qword [esi + 0x88]
push eax
fadd qword [esi + 0x78]
fsubrp st(2)
fxch st(1)
fstp qword [esp + 0x60]
fstp qword [esp + 0x68]
call fcn.00435590
mov ecx, edi
neg ecx
sbb ecx, ecx
push eax
and ecx, 0x5a00
add ecx, 0x640
or dword [eax + 0x1c], ecx
push 0
push 0
call fcn.00451ee0
fld qword [0x510f60]
mov edx, dword [esp + 0x48]
fldz
mov ecx, dword [esp + 0x44]
mov dword [edx], eax
mov dword [eax], ecx
mov edx, dword [esi + 4]
add esp, 0x14
mov dword [eax + 4], edx
fld qword [esp + 0x48]
fabs
fcomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x451663
mov eax, dword [esi + 8]
mov eax, dword [eax + ebx*4]
mov edx, dword [esi + 0x18]
shl ebx, 4
fld qword [ebx + edx]
add ebx, edx
fdiv qword [esi + 0x70]
mov ecx, dword [eax]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x30], ecx
mov ecx, dword [esi + 0x14]
shl eax, 4
add eax, ecx
lea edx, [esp + 0x50]
push edx
fadd qword [esi + 0x60]
fst qword [esp + 0x6c]
fld qword [ebx + 8]
fdiv qword [esi + 0x88]
fadd qword [esi + 0x78]
fst qword [esp + 0x74]
fxch st(2)
fst qword [esp + 0x7c]
fld qword [eax]
fdiv qword [esi + 0x70]
fadd qword [esi + 0x60]
fsubrp st(2)
fxch st(1)
fstp qword [esp + 0x54]
fld qword [eax + 8]
lea eax, [esp + 0x6c]
fdiv qword [esi + 0x88]
push eax
fadd qword [esi + 0x78]
fsubrp st(2)
fxch st(1)
fstp qword [esp + 0x60]
fstp qword [esp + 0x68]
call fcn.00435590
neg edi
sbb edi, edi
push eax
and edi, 0x5a00
push 0
add edi, 0x640
or dword [eax + 0x1c], edi
push 0
call fcn.00451ee0
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov dword [ecx], eax
mov dword [eax], edx
mov ecx, dword [esi + 4]
add esp, 0x14
mov dword [eax + 4], ecx
jmp 0x451665
fstp st(0)
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x4516ad
mov esi, edi
mov eax, dword [esi + 8]
test eax, eax
mov edi, dword [edi]
je 0x451680
push eax
call fcn.00418550
add esp, 4
mov eax, dword [esi + 0xc]
test eax, eax
je 0x451690
push eax
call fcn.00418550
add esp, 4
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4516a0
push eax
call fcn.00418550
add esp, 4
push esi
call fcn.00418550
add esp, 4
test edi, edi
jne 0x45166c
mov edx, dword [ebp + 8]
push edx
call fcn.004516e0
add esp, 4
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fstp st(3)
fstp st(1)
pop edi
fstp st(1)
pop esi
fstp st(0)
or eax, 0xffffffff
pop ebx
mov esp, ebp
pop ebp
ret