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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xd8
mov eax, dword [0x7cdffc]
xor eax, esp
mov dword [esp + 0xd4], eax
mov dword [esp + 0x14], edx
mov eax, ecx
mov ecx, dword [ebp + 8]
xorps xmm5, xmm5
mov edx, dword [ebp + 0xc]
mov dword [esp + 0x5c], edx
mov edx, dword [ebp + 0x10]
push esi
movzx esi, byte [eax + 0x14]
mov dword [esp + 0x5c], edx
inc esi
mov edx, dword [ebp + 0x14]
push edi
mov dword [esp + 0x44], edx
lea edi, [ecx*4 + 4]
mov edx, dword [ebp + 0x18]
mov dword [esp + 8], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x38], edx
mov dword [esp + 0x34], 0
mov dword [esp + 0x24], 0
movsd qword [esp + 0x68], xmm5
imul esi, edi
call fcn.0051fa00
test eax, eax
jne 0x53c250
test esi, esi
jle 0x53c250
mov eax, esi
cdq
push edx
push eax
call fcn.004b42e0
mov edx, eax
add esp, 8
mov dword [esp + 0x14], edx
test edx, edx
je 0x53c250
mov ecx, dword [esp + 8]
push esi
push 0
push edx
movzx eax, byte [ecx + 0x14]
imul eax, edi
add eax, edx
mov dword [esp + 0x18], eax
call fcn.006e6ec0
mov esi, dword [esp + 0x14]
add esp, 0xc
mov edx, dword [esp + 0x10]
xor edi, edi
movzx eax, byte [esi + 0x14]
test eax, eax
je 0x53bdb5
mov esi, dword [esp + 0x14]
xor ecx, ecx
mov dword [esp + 0x18], ecx
nop word [eax + eax]
add eax, ecx
mov ecx, dword [esp + 0x14]
lea eax, [ecx + eax*4]
xor ecx, ecx
mov dword [esi], eax
test edx, edx
jle 0x53bd7b
mov eax, dword [esi]
mov dword [eax + ecx*4], ecx
inc ecx
cmp ecx, edx
jl 0x53bd71
push dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
push dword [esp + 0x20]
push edi
push edx
mov edx, dword [esi]
call fcn.0053bb10
mov eax, dword [esp + 0x18]
inc edi
mov ecx, dword [esp + 0x28]
add esp, 0x10
mov edx, dword [esp + 0x10]
add esi, 4
add ecx, edx
movzx eax, byte [eax + 0x14]
mov dword [esp + 0x18], ecx
cmp edi, eax
jl 0x53bd60
mov esi, dword [esp + 8]
movzx eax, byte [esi + 0x14]
mov dword [esp + 0xc], eax
mov dword [esp + 0x20], 0
test eax, eax
je 0x53c10c
mov eax, dword [esi + 0x10]
lea edi, [edx - 1]
movzx ecx, byte [esi + 0x16]
add eax, 0xfffffffc
mov dword [esp + 0x48], eax
cdq
idiv ecx
mov esi, dword [esp + 0x14]
mov dword [esp + 0x4c], ecx
mov ecx, eax
mov eax, 0x55555556
mov dword [esp + 0x30], edi
imul ecx
mov ecx, dword [esp + 0x10]
mov eax, edx
mov dword [esp + 0x18], esi
shr eax, 0x1f
add eax, edx
sub ecx, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x40], ecx
nop
xor edx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edx
xorps xmm5, xmm5
xorps xmm6, xmm6
xorps xmm7, xmm7
cmp eax, ecx
jg 0x53c0d0
mov ecx, dword [esi]
mov eax, dword [ecx]
lea esi, [eax + eax*2]
mov eax, dword [ecx + edi*4]
shl esi, 4
mov dword [esp + 0x5c], esi
lea eax, [eax + eax*2]
shl eax, 4
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc]
lea edi, [eax + eax]
mov eax, dword [esp + 0x48]
cdq
idiv dword [esp + 0x4c]
mov dword [esp + 0x54], edi
mov ecx, eax
mov eax, 0x55555556
imul ecx
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x58], eax
nop
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
movups xmm0, xmmword [esi + ecx]
movups xmmword [esp + 0x70], xmm0
movups xmm0, xmmword [esi + ecx + 0x10]
movups xmmword [esp + 0x80], xmm0
movups xmm0, xmmword [esi + ecx + 0x20]
mov esi, 1
movups xmmword [esp + 0x90], xmm0
movups xmm0, xmmword [eax + ecx]
movups xmmword [esp + 0xa0], xmm0
movups xmm0, xmmword [eax + ecx + 0x10]
movups xmmword [esp + 0xb0], xmm0
movups xmm0, xmmword [eax + ecx + 0x20]
movups xmmword [esp + 0xc0], xmm0
cmp dword [esp + 0x30], esi
jle 0x53bf0f
mov edx, dword [esp + 0x18]
mov edi, dword [edx]
add edi, 4
mov eax, dword [edi]
lea edx, [esp + 0x70]
lea eax, [eax + eax*2]
shl eax, 4
add eax, ecx
mov ecx, dword [esp + 8]
push eax
cmp esi, dword [esp + 0x30]
jl 0x53bef5
lea edx, [esp + 0xa4]
call fcn.0053b370
mov ecx, dword [esp + 0x20]
inc esi
add esp, 4
add edi, 4
cmp esi, dword [esp + 0x30]
jl 0x53bed5
mov edi, dword [esp + 0x54]
mov esi, dword [esp + 8]
xor eax, eax
xorps xmm2, xmm2
test edi, edi
je 0x53bf5b
mov cl, byte [esi + 0x15]
nop
test cl, cl
jne 0x53bf38
movss xmm0, dword [esp + eax*4 + 0x7c]
movss xmm1, dword [esp + eax*4 + 0x78]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
jmp 0x53bf4c
movd xmm0, dword [esp + eax*4 + 0x7c]
movd xmm1, dword [esp + eax*4 + 0x78]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
add eax, 2
addsd xmm2, xmm0
cmp eax, edi
jl 0x53bf20
xor eax, eax
addsd xmm2, xmm5
xorps xmm5, xmm5
test edi, edi
je 0x53bfb7
mov cl, byte [esi + 0x15]
nop dword [eax + eax]
test cl, cl
jne 0x53bf8e
movss xmm0, dword [esp + eax*4 + 0xac]
movss xmm1, dword [esp + eax*4 + 0xa8]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
jmp 0x53bfa8
movd xmm0, dword [esp + eax*4 + 0xac]
movd xmm1, dword [esp + eax*4 + 0xa8]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
add eax, 2
addsd xmm5, xmm0
cmp eax, edi
jl 0x53bf70
push ecx
lea eax, [esp + 0xa4]
mov ecx, esi
push eax
lea edx, [esp + 0x78]
addsd xmm5, xmm2
call fcn.0053b5b0
movsd xmm2, qword [0x79c318]
add esp, 8
xor eax, eax
movaps xmm4, xmm0
movaps xmm3, xmm2
test edi, edi
je 0x53c02b
mov cl, byte [esi + 0x15]
nop dword [eax]
test cl, cl
jne 0x53c008
movss xmm0, dword [esp + eax*4 + 0x7c]
movss xmm1, dword [esp + eax*4 + 0x78]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
jmp 0x53c01c
movd xmm0, dword [esp + eax*4 + 0x7c]
movd xmm1, dword [esp + eax*4 + 0x78]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
add eax, 2
mulsd xmm3, xmm0
cmp eax, edi
jl 0x53bff0
xor eax, eax
test edi, edi
je 0x53c07b
mov cl, byte [esi + 0x15]
test cl, cl
jne 0x53c052
movss xmm0, dword [esp + eax*4 + 0xac]
movss xmm1, dword [esp + eax*4 + 0xa8]
cvtps2pd xmm0, xmm0
cvtps2pd xmm1, xmm1
jmp 0x53c06c
movd xmm0, dword [esp + eax*4 + 0xac]
movd xmm1, dword [esp + eax*4 + 0xa8]
cvtdq2pd xmm0, xmm0
cvtdq2pd xmm1, xmm1
subsd xmm0, xmm1
add eax, 2
mulsd xmm2, xmm0
cmp eax, edi
jl 0x53c034
mov ecx, dword [esp + 0x2c]
addsd xmm2, xmm3
cmp ecx, dword [esp + 0x58]
je 0x53c09f
comisd xmm6, xmm4
ja 0x53c09f
ucomisd xmm4, xmm6
lahf
test ah, 0x44
jp 0x53c0ad
comisd xmm7, xmm2
jbe 0x53c0ad
mov edx, ecx
movaps xmm6, xmm4
mov dword [esp + 0x28], edx
movaps xmm7, xmm2
jmp 0x53c0b1
mov edx, dword [esp + 0x28]
mov esi, dword [esp + 0x5c]
inc ecx
mov dword [esp + 0x2c], ecx
cmp ecx, dword [esp + 0x40]
jle 0x53be70
mov edi, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x20]
test eax, eax
je 0x53c0e4
movsd xmm0, qword [esp + 0x68]
comisd xmm0, xmm5
jbe 0x53c0f2
mov dword [esp + 0x34], eax
movsd qword [esp + 0x68], xmm5
mov dword [esp + 0x24], edx
inc eax
add esi, 4
cmp eax, dword [esp + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x18], esi
jl 0x53be10
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x14]
mov edx, dword [esp + 0x1c]
mov esi, dword [esp + 0x44]
mov eax, dword [edi + ecx*4]
mov eax, dword [eax]
lea eax, [eax + eax*2]
add eax, eax
movups xmm0, xmmword [edx + eax*8]
movups xmmword [esi], xmm0
movups xmm0, xmmword [edx + eax*8 + 0x10]
movups xmmword [esi + 0x10], xmm0
movups xmm0, xmmword [edx + eax*8 + 0x20]
movups xmmword [esi + 0x20], xmm0
mov eax, dword [edi + ecx*4]
xor esi, esi
mov ecx, dword [esp + 0x24]
mov eax, dword [eax + ecx*4]
mov ecx, dword [esp + 0x38]
lea eax, [eax + eax*2]
add eax, eax
movups xmm0, xmmword [edx + eax*8]
movups xmmword [ecx], xmm0
movups xmm0, xmmword [edx + eax*8 + 0x10]
movups xmmword [ecx + 0x10], xmm0
movups xmm0, xmmword [edx + eax*8 + 0x20]
mov eax, ecx
movups xmmword [eax + 0x20], xmm0
cmp dword [esp + 0x10], esi
jle 0x53c231
nop dword [eax]
cmp esi, dword [esp + 0x24]
mov ecx, dword [esp + 0x60]
cmovl eax, dword [esp + 0x44]
cmovl ecx, dword [esp + 0x64]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 0xc], ecx
mov eax, dword [edi + eax*4]
mov eax, dword [eax + esi*4]
lea eax, [eax + eax*2]
shl eax, 4
add eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [ecx + 0x18]
mov ecx, dword [esp + 8]
movzx edi, byte [eax + 2]
movzx eax, byte [eax + 3]
shl edi, 8
add edi, eax
mov eax, dword [ecx + 0x10]
movzx ecx, byte [ecx + 0x16]
sub eax, 4
cdq
idiv ecx
cmp edi, eax
jge 0x53c206
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
push edi
push dword [esp + 0x24]
call fcn.00539990
lea edx, [edi + 1]
add esp, 8
mov edi, dword [esp + 0xc]
mov eax, edx
sar eax, 8
mov ecx, dword [edi + 0x18]
mov byte [ecx + 2], al
mov byte [ecx + 3], dl
mov dword [edi + 0x14], 1
push dword [esp + 0x20]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0xc]
call fcn.0053b370
mov edx, dword [esp + 0x20]
inc esi
mov edi, dword [esp + 0x18]
add esp, 4
mov eax, dword [esp + 0x38]
cmp esi, dword [esp + 0x10]
jl 0x53c180
push edi
call fcn.004b4670
add esp, 4
xor eax, eax
pop edi
pop esi
mov ecx, dword [esp + 0xd4]
xor ecx, esp
call fcn.006a7b19
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0xdc]
mov eax, 7
pop edi
pop esi
xor ecx, esp
call fcn.006a7b19
mov esp, ebp
pop ebp
ret