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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x5ded08
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x94
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, ecx
lea edx, [esp + 0x34]
lea ecx, [esp + 0x2c]
lea ebx, [edi + 0x2a8]
push ecx
lea eax, [edi + 0x2b8]
push edx
push ebx
push eax
mov ecx, esi
call fcn.004b7060
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004b7040
sub esp, 8
fstp qword [esp]
call fcn.005994e0
add esp, 0x20
lea eax, [esp + 0x30]
lea ecx, [esp + 0x38]
push eax
lea eax, [edi + 0x2b8]
push ecx
push eax
push ebx
mov ecx, esi
call fcn.004b7060
sub esp, 8
mov ecx, esi
fstp qword [esp]
call fcn.004b7040
sub esp, 8
fstp qword [esp]
call fcn.005994e0
mov al, byte [ebp + 8]
add esp, 0x20
test al, al
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
jne 0x59a03c
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
cmp eax, ecx
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0x40c38800
mov dword [esp + 0x18], eax
jg 0x59a04a
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x34]
cmp esi, eax
mov dword [esp + 0x14], esi
jg 0x59a022
fild dword [esp + 0x18]
fstp qword [esp + 0x4c]
fild dword [esp + 0x14]
mov ebx, dword [ebp + 0xc]
sub esp, 8
fld st(0)
fmul qword [edi + 0x2a8]
fld qword [esp + 0x54]
fmul qword [edi + 0x2b8]
faddp st(1)
fstp qword [esp + 0x24]
fld qword [esp + 0x54]
fmul qword [edi + 0x2c0]
fxch st(1)
fmul qword [edi + 0x2b0]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x24]
faddp st(1)
fst qword [esp + 0x2c]
fsub qword [ebx + 0x18]
fstp qword [esp]
push edx
push eax
call dword [sym.imp.msvcrt.dll__hypot]
fcom qword [esp + 0x64]
add esp, 0x10
fnstsw ax
test ah, 1
je 0x59a00b
fstp qword [esp + 0x54]
fld qword [esp + 0x1c]
fchs
fstp qword [esp + 0x3c]
fld qword [ebx + 0x18]
fsub qword [esp + 0x24]
fstp qword [esp + 0x44]
jmp 0x59a00d
fstp st(0)
mov eax, dword [esp + 0x2c]
inc esi
cmp esi, eax
mov dword [esp + 0x14], esi
jle 0x599f92
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x30]
inc ecx
cmp ecx, edx
mov dword [esp + 0x18], ecx
jle 0x599f7e
mov esi, dword [ebp + 0xc]
jmp 0x59a04a
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], edx
fld qword [esp + 0x3c]
fadd qword [esi]
lea ecx, [esp + 0x60]
fstp qword [esp + 0x3c]
call fcn.004b6ca0
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x30]
mov ebx, dword [ebp + 0x18]
cmp eax, ecx
mov dword [esp + 0xa8], 0
mov dword [esp + 0x18], eax
jg 0x59a295
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x2c]
cmp eax, ecx
mov dword [esp + 0x14], eax
jg 0x59a280
fild dword [esp + 0x18]
fstp qword [esp + 0x4c]
fild dword [esp + 0x14]
fld st(0)
fmul qword [edi + 0x2a8]
fld qword [esp + 0x4c]
fmul qword [edi + 0x2b8]
faddp st(1)
fadd qword [esp + 0x3c]
fstp qword [esp + 0x1c]
fld qword [esp + 0x4c]
fmul qword [edi + 0x2c0]
fxch st(1)
fmul qword [edi + 0x2b0]
faddp st(1)
fadd qword [esp + 0x44]
fstp qword [esp + 0x24]
fld qword [esp + 0x1c]
fcomp qword [esi + 0x10]
fnstsw ax
test ah, 0x41
je 0x59a26b
fld qword [esp + 0x1c]
fcomp qword [esi]
fnstsw ax
test ah, 1
jne 0x59a26b
fld qword [esp + 0x24]
fcomp qword [esi + 0x18]
fnstsw ax
test ah, 0x41
je 0x59a26b
fld qword [esp + 0x24]
fcomp qword [esi + 8]
fnstsw ax
test ah, 1
jne 0x59a26b
fld qword [esp + 0x24]
fadd qword [edi + 0x298]
sub esp, 8
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
fstp qword [esp]
fld qword [esp + 0x24]
fadd qword [edi + 0x290]
sub esp, 8
fstp qword [esp]
push eax
mov eax, dword [esp + 0x30]
push ecx
push edx
push eax
lea ecx, [esp + 0x80]
call fcn.004b6d10
mov ecx, dword [ebp + 0x10]
mov esi, dword [ecx + 8]
dec esi
js 0x59a230
mov ecx, dword [ebp + 0x10]
lea edx, [esp + 0x80]
push esi
push edx
call fcn.00593100
fld qword [esp + 0x60]
mov ecx, eax
fcomp qword [ecx]
fnstsw ax
test ah, 0x41
jne 0x59a191
fld qword [esp + 0x60]
jmp 0x59a193
fld qword [ecx]
fld qword [esp + 0x70]
fld qword [ecx + 0x10]
fcompp
fnstsw ax
test ah, 0x41
jne 0x59a1a9
fld qword [esp + 0x70]
jmp 0x59a1ac
fld qword [ecx + 0x10]
fxch st(1)
fadd qword [0x5f1208]
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
jne 0x59a1c6
mov byte [esp + 0x13], 0
jmp 0x59a215
fld qword [esp + 0x68]
fld qword [ecx + 8]
fcompp
fnstsw ax
test ah, 1
je 0x59a1dc
fld qword [esp + 0x68]
jmp 0x59a1df
fld qword [ecx + 8]
fld qword [esp + 0x78]
fld qword [ecx + 0x18]
fcompp
fnstsw ax
test ah, 0x41
jne 0x59a1f5
fld qword [esp + 0x78]
jmp 0x59a1f8
fld qword [ecx + 0x18]
fxch st(1)
fadd qword [0x5f1208]
mov byte [esp + 0x13], 0
fcomp st(1)
fnstsw ax
test ah, 0x41
fstp st(0)
je 0x59a215
mov byte [esp + 0x13], 1
lea ecx, [esp + 0x80]
call fcn.0042bd50
mov al, byte [esp + 0x13]
test al, al
jne 0x59a230
dec esi
jns 0x59a16b
cmp esi, 0xffffffff
jne 0x59a268
mov esi, dword [ebx + 8]
push 0xffffffffffffffff
mov ecx, ebx
lea eax, [esi + 1]
push eax
call fcn.0054a8d0
mov eax, dword [ebx + 4]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
shl esi, 4
add esi, eax
mov eax, dword [esp + 0x24]
mov dword [esi], ecx
mov ecx, dword [esp + 0x28]
mov dword [esi + 4], edx
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov esi, dword [ebp + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x2c]
inc eax
cmp eax, ecx
mov dword [esp + 0x14], eax
jle 0x59a09b
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x30]
inc eax
cmp eax, ecx
mov dword [esp + 0x18], eax
jle 0x59a07f
mov eax, dword [ebx + 8]
test eax, eax
jne 0x59a2c9
lea ecx, [esp + 0x60]
mov dword [esp + 0xa8], 0xffffffff
call fcn.0042bd50
xor eax, eax
mov ecx, dword [esp + 0xa0]
mov dword fs:[0], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14
mov cl, byte [ebp + 8]
test cl, cl
mov ecx, dword [ebx + 4]
je 0x59a2da
push 0x599690
jmp 0x59a2df
push 0x5996e0
push 0x10
push eax
push ecx
call dword [sym.imp.msvcrt.dll_qsort]
mov edi, dword [ebx + 8]
mov esi, dword [ebp + 0x14]
add esp, 0x10
cmp esi, edi
jge 0x59a482
mov eax, dword [ebx + 4]
mov edx, esi
shl edx, 4
add eax, edx
mov ecx, esi
mov dword [esp + 0x14], eax
mov edx, eax
jmp 0x59a312
mov eax, dword [esp + 0x14]
fld qword [edx]
fcomp qword [eax - 0x10]
fnstsw ax
test ah, 0x41
je 0x59a326
inc ecx
add edx, 0x10
cmp ecx, edi
jl 0x59a30e
cmp ecx, esi
jle 0x59a34d
mov al, byte [ebp + 8]
test al, al
je 0x59a338
push 0x599730
jmp 0x59a33d
push 0x599780
mov eax, dword [ebx + 4]
push 0x10
push ecx
push eax
call dword [sym.imp.msvcrt.dll_qsort]
add esp, 0x10
xor edi, edi
cmp esi, edi
jne 0x59a371
mov eax, dword [ebx + 4]
cmp eax, edi
je 0x59a366
push eax
call sub.mfc42u.dll_operatordelete
add esp, 4
mov dword [ebx + 4], edi
mov dword [ebx + 0xc], edi
mov dword [ebx + 8], edi
jmp 0x59a482
mov edx, dword [ebx + 4]
cmp edx, edi
jne 0x59a3aa
mov edi, esi
shl edi, 4
push edi
call sub.mfc42u.dll_operatornew
mov edx, eax
mov ecx, edi
mov dword [ebx + 4], edx
mov edi, edx
mov edx, ecx
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
add esp, 4
and ecx, 3
rep stosb byte es:[edi], al
mov dword [ebx + 0xc], esi
mov dword [ebx + 8], esi
jmp 0x59a482
mov ecx, dword [ebx + 0xc]
cmp esi, ecx
jg 0x59a3de
mov eax, dword [ebx + 8]
cmp esi, eax
jle 0x59a3d6
mov ecx, esi
sub ecx, eax
shl eax, 4
shl ecx, 4
add eax, edx
mov edx, ecx
mov edi, eax
xor eax, eax
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov dword [ebx + 8], esi
jmp 0x59a482
mov eax, dword [ebx + 0x10]
cmp eax, edi
jne 0x59a409
mov eax, dword [ebx + 8]
cdq
and edx, 7
add eax, edx
sar eax, 3
cmp eax, 4
jge 0x59a3fd
mov eax, 4
jmp 0x59a409
cmp eax, 0x400
jle 0x59a409
mov eax, 0x400
add eax, ecx
cmp esi, eax
mov dword [esp + 0x14], eax
jl 0x59a417
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x14]
shl eax, 4
push eax
call sub.mfc42u.dll_operatornew
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 4]
shl ecx, 4
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov dword [esp + 0x1c], eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp + 0x14]
mov edx, dword [ebx + 8]
mov ecx, esi
sub ecx, edx
shl edx, 4
add edx, eax
xor eax, eax
shl ecx, 4
mov edi, edx
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov eax, dword [ebx + 4]
push eax
call sub.mfc42u.dll_operatordelete
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
add esp, 8
mov dword [ebx + 4], eax
mov dword [ebx + 8], esi
mov dword [ebx + 0xc], ecx
mov ebx, dword [ebx + 8]
lea ecx, [esp + 0x60]
mov dword [esp + 0xa8], 0xffffffff
call fcn.0042bd50
mov ecx, dword [esp + 0xa0]
pop edi
mov eax, ebx
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x14