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

Disassembly:
sub esp, 0xc4
mov al, byte [0x81a22c]
push esi
push edi
mov edi, ecx
test al, 1
mov dword [esp + 0x44], edi
jne 0x5a762f
mov dl, al
push fcn.004465e0
or dl, 1
mov byte [0x81a22c], dl
call fcn.00673ac4
add esp, 4
mov eax, dword [esp + 0xd4]
fld dword [esp + 0xd8]
fmul dword [eax]
fstp dword [0x81a230]
fld dword [esp + 0xd8]
fmul dword [eax + 4]
fstp dword [0x81a234]
fld dword [esp + 0xd8]
fmul dword [eax + 8]
mov eax, dword [0x81a230]
mov ecx, dword [0x81a234]
mov dword [esp + 0xc], eax
mov al, byte [0x81a204]
test al, 1
fstp dword [0x81a238]
mov edx, dword [0x81a238]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
jne 0x5a76a3
mov dl, al
push fcn.004465e0
or dl, 1
mov byte [0x81a204], dl
call fcn.00673ac4
add esp, 4
mov esi, dword [esp + 0xd0]
fld dword [esp + 0xc]
fadd dword [esi]
fstp dword [0x81a210]
fld dword [esp + 0x10]
fadd dword [esi + 4]
mov eax, dword [0x81a210]
mov dword [esp + 0xc], eax
mov al, byte [0x81a26c]
test al, 1
fstp dword [0x81a214]
fld dword [esp + 0x14]
fadd dword [esi + 8]
mov ecx, dword [0x81a214]
mov dword [esp + 0x10], ecx
fstp dword [0x81a218]
mov edx, dword [0x81a218]
mov dword [esp + 0x14], edx
jne 0x5a770e
mov dl, al
push fcn.004465e0
or dl, 1
mov byte [0x81a26c], dl
call fcn.00673ac4
add esp, 4
fld dword [esp + 0xc]
fsub dword [esi]
fstp dword [0x81a270]
fld dword [esp + 0x10]
fsub dword [esi + 4]
mov eax, dword [0x81a270]
mov dword [esp + 0xc], eax
fstp dword [0x81a274]
fld dword [esp + 0x14]
fsub dword [esi + 8]
mov ecx, dword [0x81a274]
mov dword [esp + 0x10], ecx
fstp dword [0x81a278]
mov edx, dword [0x81a278]
mov eax, dword [edi + 0x16c]
mov dword [esp + 0x14], edx
xor dl, dl
fld dword [esp + 0x14]
fmul dword [esp + 0x14]
fld dword [esp + 0x10]
fmul dword [esp + 0x10]
mov ecx, dword [eax]
mov byte [esp + 0xb], dl
cmp ecx, eax
faddp st(1)
fld dword [esp + 0xc]
fmul dword [esp + 0xc]
faddp st(1)
fsqrt
fstp dword [esp + 0x48]
je 0x5a7d48
push ebx
push ebp
jmp 0x5a7791
mov ecx, dword [esp + 0x44]
mov eax, ecx
mov ecx, dword [ecx]
mov dword [esp + 0x44], ecx
mov ecx, dword [eax + 0xc]
mov ebp, dword [eax + 8]
cmp ecx, 1
mov dword [esp + 0x84], ebp
jg 0x5a7d27
mov eax, dword [ebp + 0x13c]
mov ebx, dword [eax]
cmp ebx, eax
je 0x5a7d27
mov eax, ebx
mov ebx, dword [ebx]
mov edi, dword [eax + 8]
mov esi, dword [edi + 4]
mov ecx, esi
call fcn.00446170
mov ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
test edx, edx
jle 0x5a7d13
mov ebp, 2
mov dword [esp + 0x48], edx
lea ecx, [ebp - 2]
push ecx
mov ecx, dword [edi + 4]
call fcn.00446190
lea edx, [esp + 0x8c]
push eax
push edx
mov ecx, esi
call fcn.004461b0
mov ecx, dword [eax]
mov dword [esp + 0x20], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x24], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x28], eax
mov al, byte [0x81a23c]
test al, 1
jne 0x5a7842
mov dl, al
push fcn.004465e0
or dl, 1
mov byte [0x81a23c], dl
call fcn.00673ac4
add esp, 4
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
mov ecx, 0x81a240
call fcn.0041d0b0
fld dword [0x81a248]
fmul dword [esi + 0x74]
fld dword [0x81a244]
fmul dword [esi + 0x64]
lea ecx, [ebp - 1]
push ecx
faddp st(1)
fld dword [0x81a240]
fmul dword [esi + 0x54]
faddp st(1)
fadd dword [esi + 0x84]
fstp dword [esp + 0x24]
fld dword [0x81a248]
fmul dword [esi + 0x78]
fld dword [0x81a244]
fmul dword [esi + 0x68]
faddp st(1)
fld dword [0x81a240]
fmul dword [esi + 0x58]
faddp st(1)
fadd dword [esi + 0x88]
fstp dword [esp + 0x28]
fld dword [0x81a248]
fmul dword [esi + 0x7c]
fld dword [0x81a244]
fmul dword [esi + 0x6c]
faddp st(1)
fld dword [0x81a240]
fmul dword [esi + 0x5c]
faddp st(1)
fadd dword [esi + 0x8c]
fstp dword [esp + 0x2c]
mov ecx, dword [edi + 4]
call fcn.00446190
lea edx, [esp + 0xa4]
push eax
push edx
mov ecx, esi
call fcn.004461b0
mov ecx, dword [eax]
mov dword [esp + 0x2c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x30], edx
mov eax, dword [eax + 8]
mov dword [esp + 0x34], eax
mov al, byte [0x81a23c]
test al, 1
jne 0x5a7927
mov dl, al
push fcn.004465e0
or dl, 1
mov byte [0x81a23c], dl
call fcn.00673ac4
add esp, 4
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x2c]
push ecx
push edx
push eax
mov ecx, 0x81a240
call fcn.0041d0b0
fld dword [0x81a248]
fmul dword [esi + 0x74]
fld dword [0x81a244]
fmul dword [esi + 0x64]
push ebp
faddp st(1)
fld dword [0x81a240]
fmul dword [esi + 0x54]
faddp st(1)
fadd dword [esi + 0x84]
fstp dword [esp + 0x30]
fld dword [0x81a248]
fmul dword [esi + 0x78]
fld dword [0x81a244]
fmul dword [esi + 0x68]
faddp st(1)
fld dword [0x81a240]
fmul dword [esi + 0x58]
faddp st(1)
fadd dword [esi + 0x88]
fstp dword [esp + 0x34]
fld dword [0x81a248]
fmul dword [esi + 0x7c]
fld dword [0x81a244]
fmul dword [esi + 0x6c]
faddp st(1)
fld dword [0x81a240]
fmul dword [esi + 0x5c]
faddp st(1)
fadd dword [esi + 0x8c]
fstp dword [esp + 0x38]
mov ecx, dword [edi + 4]
call fcn.00446190
lea ecx, [esp + 0xbc]
push eax
push ecx
mov ecx, esi
call fcn.004461b0
mov edx, dword [eax]
mov dword [esp + 0x38], edx
mov ecx, dword [eax + 4]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 8]
mov al, byte [0x81a23c]
mov dword [esp + 0x40], edx
test al, 1
jne 0x5a7a09
mov dl, al
push fcn.004465e0
or dl, 1
mov byte [0x81a23c], dl
call fcn.00673ac4
add esp, 4
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x38]
push eax
push ecx
push edx
mov ecx, 0x81a240
call fcn.0041d0b0
fld dword [0x81a248]
fmul dword [esi + 0x74]
fld dword [0x81a244]
fmul dword [esi + 0x64]
mov al, byte [0x81a26c]
test al, 1
faddp st(1)
fld dword [0x81a240]
fmul dword [esi + 0x54]
faddp st(1)
fadd dword [esi + 0x84]
fstp dword [esp + 0x38]
fld dword [0x81a248]
fmul dword [esi + 0x78]
fld dword [0x81a244]
fmul dword [esi + 0x68]
faddp st(1)
fld dword [0x81a240]
fmul dword [esi + 0x58]
faddp st(1)
fadd dword [esi + 0x88]
fstp dword [esp + 0x3c]
fld dword [0x81a248]
fmul dword [esi + 0x7c]
fld dword [0x81a244]
fmul dword [esi + 0x6c]
faddp st(1)
fld dword [0x81a240]
fmul dword [esi + 0x5c]
faddp st(1)
fadd dword [esi + 0x8c]
fstp dword [esp + 0x40]
jne 0x5a7abe
mov dl, al
push fcn.004465e0
or dl, 1
mov byte [0x81a26c], dl
call fcn.00673ac4
add esp, 4
fld dword [esp + 0x2c]
fsub dword [esp + 0x20]
fstp dword [0x81a270]
fld dword [esp + 0x30]
fsub dword [esp + 0x24]
mov eax, dword [0x81a270]
mov dword [esp + 0x60], eax
mov al, byte [0x81a26c]
test al, 1
fstp dword [0x81a274]
fld dword [esp + 0x34]
fsub dword [esp + 0x28]
mov ecx, dword [0x81a274]
mov dword [esp + 0x64], ecx
fstp dword [0x81a278]
mov edx, dword [0x81a278]
mov dword [esp + 0x68], edx
jne 0x5a7b26
mov dl, al
push fcn.004465e0
or dl, 1
mov byte [0x81a26c], dl
call fcn.00673ac4
add esp, 4
fld dword [esp + 0x38]
fsub dword [esp + 0x20]
fstp dword [0x81a270]
fld dword [esp + 0x3c]
fsub dword [esp + 0x24]
mov eax, dword [0x81a270]
mov dword [esp + 0x54], eax
lea eax, [esp + 0x54]
push eax
fstp dword [0x81a274]
fld dword [esp + 0x44]
fsub dword [esp + 0x2c]
mov ecx, dword [0x81a274]
mov dword [esp + 0x5c], ecx
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x1c]
fstp dword [0x81a278]
mov edx, dword [0x81a278]
mov dword [esp + 0x64], edx
call fcn.00428d60
lea ecx, [esp + 0x14]
call fcn.00446420
mov edx, dword [esp + 0x4c]
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
fld dword [edx + 0x124]
fld dword [esp + 0x18]
fmul st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fmul st(1)
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fmul st(1)
fstp dword [esp + 0x20]
fstp st(0)
call fcn.00479880
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x30]
call fcn.00479880
lea edx, [esp + 0x14]
lea ecx, [esp + 0x38]
push edx
call fcn.00479880
lea eax, [esp + 0x6c]
lea ecx, [esp + 0x7c]
push eax
lea edx, [esp + 0x7c]
push ecx
lea eax, [esp + 0x88]
push edx
lea ecx, [esp + 0x44]
push eax
lea edx, [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0xf0]
lea eax, [esp + 0x34]
push edx
mov edx, dword [esp + 0xf0]
push eax
push ecx
push edx
call fcn.00428da0
add esp, 0x24
test al, al
je 0x5a7cfa
mov eax, dword [esp + 0xd8]
lea ecx, [esp + 0x98]
push eax
push ecx
lea ecx, [esp + 0x74]
call fcn.0041d180
mov ecx, eax
call fcn.0041d080
fcomp dword [esp + 0x50]
fnstsw ax
test ah, 1
je 0x5a7cfa
mov ecx, dword [esp + 0xe4]
test ecx, ecx
je 0x5a7c67
lea edx, [esp + 0x6c]
push edx
call fcn.0041ea40
mov eax, dword [esp + 0xe8]
test eax, eax
je 0x5a7cb8
lea eax, [esp + 0x20]
lea ecx, [esp + 0xb0]
push eax
push ecx
lea ecx, [esp + 0x40]
call fcn.0041d180
push eax
lea edx, [esp + 0x24]
lea eax, [esp + 0xcc]
push edx
push eax
lea ecx, [esp + 0x38]
call fcn.0041d180
mov ecx, dword [esp + 0xec]
push eax
call fcn.00428d60
mov ecx, dword [esp + 0xe8]
call fcn.00446420
mov ecx, dword [esp + 0xec]
test ecx, ecx
je 0x5a7cf5
lea edx, [esp + 0x20]
push edx
call fcn.0041ea40
mov ecx, dword [esp + 0xec]
lea eax, [esp + 0x2c]
push eax
add ecx, 0xc
call fcn.0041ea40
mov eax, dword [esp + 0xec]
lea edx, [esp + 0x38]
push edx
lea ecx, [eax + 0x18]
call fcn.0041ea40
mov byte [esp + 0x13], 1
mov eax, dword [esp + 0x48]
add ebp, 3
dec eax
mov dword [esp + 0x48], eax
jne 0x5a77f1
mov ebp, dword [esp + 0x84]
cmp ebx, dword [ebp + 0x13c]
jne 0x5a77bf
mov dl, byte [esp + 0x13]
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x44]
mov eax, dword [edi + 0x16c]
cmp ecx, eax
jne 0x5a778d
pop ebp
pop ebx
pop edi
mov al, dl
pop esi
add esp, 0xc4
ret 0x18
pop edi
mov al, dl
pop esi
add esp, 0xc4
ret 0x18