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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x219c
call fcn.0058fc10
mov eax, dword [0x69cffc]
xor eax, esp
mov dword [esp + 0x2198], eax
mov eax, dword [ebp + 0x1c]
mov edx, 1
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x68], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], eax
mov eax, dword [ebp + 0x20]
shl edx, cl
mov dword [esp + 0xc], eax
mov eax, dword [ebp + 0x24]
push ebx
mov dword [esp + 0x70], eax
push esi
mov esi, dword [ebp + 0x14]
mov eax, esi
shl eax, cl
mov dword [esp + 0x34], eax
mov eax, dword [ebp + 0xc]
sub eax, dword [esp + 0x34]
push edi
mov edi, dword [ebp + 0x10]
mov ebx, edi
shl ebx, cl
cmp edx, eax
mov ecx, edx
mov dword [esp + 0x1c], ebx
cmovg ecx, eax
mov eax, dword [esp + 0x14]
sub eax, ebx
mov dword [esp + 0x8c], ecx
cmp edx, eax
mov ebx, edx
cmovg ebx, eax
xor ecx, ecx
cmp dword [esp + 0x1c], ecx
mov dword [esp + 0x20], ebx
setg cl
mov dword [esp + 0x28], ecx
mov ecx, dword [esp + 0x1c]
sub ecx, dword [esp + 0x28]
mov dword [esp + 0x2c], ecx
xor ecx, ecx
cmp ebx, eax
mov eax, dword [esp + 0x14]
setl cl
dec eax
add ecx, dword [esp + 0x28]
add edx, eax
add ecx, ebx
mov dword [esp + 0x90], ecx
mov ecx, dword [ebp + 0x18]
shr edx, cl
mov ecx, dword [ebp + 0x34]
test edi, edi
jle 0x5da875
mov eax, esi
imul eax, edx
add eax, edi
movzx eax, byte [ecx + eax*4 - 3]
mov dword [esp + 0x64], eax
jmp 0x5da87d
mov dword [esp + 0x64], 0xff
test esi, esi
jle 0x5da894
lea eax, [esi - 1]
imul eax, edx
add eax, edi
movzx edx, byte [ecx + eax*4 + 1]
mov dword [esp + 0x68], edx
jmp 0x5da89c
mov dword [esp + 0x68], 0xff
mov esi, dword [esp + 0x14]
lea ebx, [esp + 0x1a0]
mov eax, dword [esp + 0x18]
movss xmm1, dword [0x661860]
add eax, 4
movss dword [esp + 0x6c], xmm1
lea ecx, [esi*4]
mov dword [esp + 0x4c], 0
add eax, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x3c], eax
add eax, 4
add eax, ecx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x11a0]
mov dword [esp + 0x70], eax
mov dword [esp + 0x24], 0
push 0x1000
push 0
push ebx
movss dword [esp + 0xa0], xmm1
movss dword [esp + 0xa8], xmm1
movss dword [esp + 0xa4], xmm1
call fcn.005e8c40
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov edi, dword [esp + 0x20]
test ecx, ecx
jle 0x5da962
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x78]
add eax, edi
lea eax, [eax*4 + 4]
push eax
lea eax, [ecx - 1]
mov ecx, dword [esp + 0x30]
imul eax, esi
add eax, ecx
lea eax, [edx + eax*4]
push eax
mov eax, dword [esp + 0x44]
lea eax, [eax + ecx*4]
push eax
call fcn.005e86c0
mov ecx, dword [esp + 0x44]
add esp, 0xc
mov edx, dword [esp + 0x8c]
test edx, edx
jle 0x5dacbb
mov eax, dword [esp + 0x1c]
mov esi, ecx
add eax, edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
imul eax, ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x60], edx
add eax, dword [esp + 0x2c]
lea ecx, [ecx + eax*4]
mov dword [esp + 0x44], ecx
nop dword [eax + eax]
mov edi, dword [esp + 0x18]
lea edx, [esi + 1]
mov eax, dword [esp + 0x3c]
mov esi, dword [esp + 0x20]
mov dword [esp + 0x18], eax
mov dword [esp + 0x80], eax
xor eax, eax
cmp edx, dword [ebp + 0xc]
mov dword [esp + 0x40], edi
setl al
mov dword [esp + 0x3c], edi
add eax, dword [esp + 0x28]
add eax, esi
mov dword [esp + 0x58], edx
shl eax, 2
push eax
mov eax, dword [esp + 0x30]
push ecx
lea eax, [edi + eax*4]
push eax
call fcn.005e86c0
mov ecx, dword [esp + 0x1c]
add esp, 0xc
cmp dword [ebp + 0x28], 1
jle 0x5daa2b
cmp ecx, 1
jl 0x5daa2b
mov eax, dword [ebp + 0xc]
cmp dword [esp + 0x58], eax
jge 0x5daa2b
push dword [ebp + 0x30]
mov eax, dword [esp + 0x80]
add eax, dword [esp + 0x30]
push eax
push dword [esp + 0x4c]
push dword [esp + 0x20]
push dword [esp + 0xa0]
call fcn.005db470
mov ecx, dword [esp + 0x24]
add esp, 0x14
cmp dword [ebp + 0x2c], 0
je 0x5daab5
mov edx, esi
lea ecx, [esp + 0xa0]
mov esi, dword [esp + 0x1c]
mov eax, esi
test esi, esi
mov esi, dword [esp + 0x10]
jne 0x5daa7e
mov eax, ecx
push eax
push 1
test esi, esi
jne 0x5daa5f
push esi
push edi
call dword [0x6ad060]
jmp 0x5daa6a
push dword [esp + 0x20]
push edi
call dword [0x6ad068]
mov edx, dword [esp + 0x30]
lea ecx, [esp + 0xb4]
add esp, 0x10
mov eax, 1
dec edx
lea edi, [edi + eax*4]
push ecx
push edx
test esi, esi
jne 0x5daa97
push esi
push edi
call dword [0x6ad064]
add esp, 0x10
jmp 0x5dac4c
mov ecx, dword [esp + 0x20]
lea eax, [ecx + eax*4]
push eax
mov eax, dword [esp + 0x30]
push edi
mov eax, dword [eax*4 + 0x6ad060]
call eax
add esp, 0x10
jmp 0x5dac4c
mov eax, dword [esp + 0x24]
mov edx, dword [eax*4 + 0x6ad2c0]
mov eax, dword [esp + 0x1c]
mov esi, eax
mov dword [esp + 0x50], edx
cmp eax, dword [esp + 0x54]
jge 0x5dac4c
test ecx, ecx
jne 0x5daae9
test esi, esi
jne 0x5daae3
mov ebx, 0xff000000
jmp 0x5dab0e
mov ebx, dword [edi + esi*4 - 4]
jmp 0x5dab0e
mov eax, dword [esp + 0x80]
lea eax, [eax + esi*4]
test esi, esi
jne 0x5daafb
mov ebx, dword [eax]
jmp 0x5dab0e
push eax
lea eax, [esi - 1]
lea eax, [edi + eax*4]
push eax
call edx
mov ecx, dword [esp + 0x18]
add esp, 8
mov ebx, eax
mov edx, dword [ebp + 0x28]
cmp edx, 1
je 0x5daba2
cmp dword [esp + 0x24], 0
je 0x5daba2
test ecx, ecx
je 0x5daba2
mov eax, dword [ebp + 0xc]
dec eax
cmp ecx, eax
je 0x5daba2
test esi, esi
je 0x5daba2
mov eax, dword [esp + 0x14]
dec eax
cmp esi, eax
je 0x5daba2
mov eax, dword [esp + 0x7c]
push dword [ebp + 0x30]
movzx eax, byte [esi + eax]
push eax
push edx
push ebx
push dword [edi + esi*4]
call fcn.005db5e0
mov edi, eax
add esp, 0x14
mov ecx, edi
movzx eax, bx
and ecx, 0xff00
mov edx, edi
add eax, ecx
and edx, 0xffff00ff
mov ecx, ebx
and ecx, 0xffff00ff
add edx, ecx
mov ecx, ebx
xor eax, edx
and ecx, 0xff00ffff
mov edx, eax
mov dword [esp + 0x30], eax
mov eax, edi
and edx, 0xff00ff
and eax, 0xff00ff00
add ecx, eax
mov eax, dword [esp + 0x40]
xor edx, ecx
mov dword [eax + esi*4], edx
jmp 0x5dabf8
mov edx, dword [edi + esi*4]
mov eax, ebx
and eax, 0xff00ff00
mov edi, edx
and edi, 0xff00
mov ecx, edx
sub edi, eax
and ecx, 0xffff00ff
mov eax, ebx
sub edi, 0xff01
and eax, 0xff00ff
sub ecx, eax
mov eax, ebx
add ecx, 0xff00
and eax, 0xff00ff00
xor edi, ecx
mov ecx, edx
and ecx, 0xff00ff00
and edi, 0xff00ff
sub ecx, eax
mov eax, dword [esp + 0x40]
add ecx, 0xff00ff
xor edi, ecx
mov ecx, dword [esp + 0x10]
test edx, 0xff000000
jne 0x5dac28
and ebx, 0xffffff
and edi, 0xff000000
mov dword [eax + esi*4], ebx
test esi, esi
jne 0x5dac28
test ecx, ecx
je 0x5dac28
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x5c]
mov eax, dword [eax]
mov dword [ebx + edx], eax
mov edx, dword [esp + 0x50]
mov eax, esi
sub eax, dword [esp + 0x1c]
inc esi
mov dword [esp + eax*4 + 0xa0], edi
mov edi, dword [esp + 0x40]
cmp esi, dword [esp + 0x54]
jl 0x5daad4
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x20]
xor edx, edx
test edi, edi
jle 0x5dac9c
nop word [eax + eax]
mov ecx, dword [esp + edx*4 + 0xa0]
mov eax, ecx
shr eax, 0x18
inc edx
inc dword [ebx + eax*4]
mov eax, ecx
shr eax, 0x10
movzx eax, al
inc dword [ebx + eax*4 + 0x400]
mov eax, ecx
shr eax, 8
movzx eax, al
inc dword [ebx + eax*4 + 0x800]
movzx eax, cl
inc dword [ebx + eax*4 + 0xc00]
cmp edx, edi
jl 0x5dac60
mov ecx, dword [esp + 0x44]
add ecx, dword [esp + 0x5c]
sub dword [esp + 0x60], 1
mov esi, dword [esp + 0x58]
mov dword [esp + 0x10], esi
mov dword [esp + 0x44], ecx
jne 0x5da9a0
mov eax, dword [esp + 0x74]
xorps xmm0, xmm0
sub eax, ebx
movsd qword [esp + 0x30], xmm0
mov esi, ebx
mov dword [esp + 0x50], eax
mov ebx, 4
movd xmm3, dword [esi]
lea ecx, [esi + 0x3f8]
movsd xmm2, qword [0x661848]
lea edx, [ecx - 0x3ec]
movsd xmm4, qword [0x674108]
mov edi, 3
cvtdq2pd xmm3, xmm3
nop
mov eax, dword [ecx + 4]
xorps xmm0, xmm0
add eax, dword [edx - 8]
xorps xmm1, xmm1
cvtsi2sd xmm0, eax
mov eax, dword [edx - 4]
add eax, dword [ecx]
cvtsi2sd xmm1, eax
mov eax, dword [ecx - 4]
add eax, dword [edx]
mulsd xmm0, xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm3
xorps xmm3, xmm3
mulsd xmm1, xmm2
mulsd xmm2, xmm4
addsd xmm1, xmm0
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mov eax, dword [ecx - 8]
add eax, dword [edx + 4]
mulsd xmm0, xmm2
mulsd xmm2, xmm4
addsd xmm0, xmm1
xorps xmm1, xmm1
cvtsi2sd xmm1, eax
mov eax, dword [ecx - 0xc]
sub ecx, 0x14
add eax, dword [edx + 8]
add edx, 0x14
cvtsi2sd xmm3, eax
mulsd xmm1, xmm2
mulsd xmm2, xmm4
addsd xmm1, xmm0
mulsd xmm3, xmm2
mulsd xmm2, xmm4
addsd xmm3, xmm1
sub edi, 1
jne 0x5dad00
mov eax, dword [esp + 0x50]
add eax, esi
movsd qword [esp + 0x80], xmm3
push eax
push esi
call dword [0x6acff8]
movsd xmm0, qword [esp + 0x88]
add esp, 8
mulsd xmm0, qword [0x674180]
add esi, 0x400
cvtpd2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
addsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0x30], xmm0
fadd qword [esp + 0x30]
fstp qword [esp + 0x30]
movsd xmm0, qword [esp + 0x30]
sub ebx, 1
je 0x5dadec
movsd qword [esp + 0x30], xmm0
jmp 0x5dacd5
mov esi, dword [esp + 0x24]
movss xmm1, dword [0x66185c]
cvtpd2ps xmm0, xmm0
cmp esi, dword [esp + 0x64]
jne 0x5dae06
subss xmm0, xmm1
cmp esi, dword [esp + 0x68]
jne 0x5dae10
subss xmm0, xmm1
movss xmm1, dword [esp + 0x6c]
comiss xmm1, xmm0
jbe 0x5dae24
movaps xmm1, xmm0
movss dword [esp + 0x6c], xmm1
movss xmm2, dword [esp + 0x94]
mov eax, esi
mov edx, dword [esp + 0x48]
mov edi, dword [esp + 0x70]
comiss xmm2, xmm0
movss xmm2, dword [esp + 0x98]
cmovbe edx, edi
comiss xmm2, xmm0
mov dword [esp + 0x70], edx
movss xmm2, dword [esp + 0x9c]
cmovbe eax, dword [esp + 0x4c]
inc esi
comiss xmm2, xmm0
mov dword [esp + 0x24], esi
mov dword [esp + 0x4c], eax
cmovbe edi, dword [esp + 0x48]
cmp esi, 0xe
mov esi, dword [esp + 0x14]
mov ebx, edi
mov dword [esp + 0x48], ebx
jl 0x5da8f5
mov eax, dword [esp + 0x74]
mov edi, edx
sub edi, eax
mov ebx, 4
add edx, 0xc
lea ecx, [eax + 4]
mov esi, 0x40
mov eax, dword [edx - 0xc]
add dword [ecx - 4], eax
mov eax, dword [edi + ecx]
add dword [ecx], eax
mov eax, dword [edx - 4]
add dword [ecx + 4], eax
mov eax, dword [edx]
add edx, 0x10
add dword [ecx + 8], eax
add ecx, 0x10
sub esi, 1
jne 0x5dae97
sub ebx, 1
jne 0x5dae92
mov ecx, dword [esp + 0x21a4]
mov eax, dword [esp + 0x4c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0058f0d5
mov esp, ebp
pop ebp
ret