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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x218
mov eax, dword [0x694240]
xor eax, esp
mov dword [esp + 0x214], eax
push esi
push edi
mov edi, ecx
mov esi, dword [edi + 4]
mov eax, dword [edi + 8]
mov dword [esp + 0x30], esi
mov ecx, dword [esi + 4]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x34], eax
xor eax, eax
mov edx, dword [ecx]
test edx, edx
jle 0x5499f8
add ecx, 4
lea ecx, [ecx]
mov esi, dword [esp + 0x34]
cmp dword [ecx], esi
mov esi, dword [esp + 0x30]
je 0x549b62
inc eax
add ecx, 4
cmp eax, edx
jl 0x5499e0
xorps xmm0, xmm0
movlpd qword [esp + 0x38], xmm0
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x18]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
lea eax, [eax + eax*4]
lea eax, [edx + eax*8]
mov dword [esp + 0x38], eax
mov eax, dword [edi + 8]
test byte [eax + 0x24], 1
jne 0x549cef
cmp dword [eax + 0x44], 0
jne 0x549cef
test byte [esi + 0xe], 0x80
jne 0x549cef
cmp edx, dword [esp + 0x38]
jae 0x549cef
movsd xmm5, qword [0x66b5f0]
mov esi, 0x100
movsd xmm4, qword [0x66b618]
test word [edx + 0x10], si
je 0x549cda
mov eax, dword [esp + 0x1c]
not ecx
and ecx, dword [edi + 0x10]
not eax
and eax, dword [edi + 0x14]
and ecx, dword [edx + 0x20]
and eax, dword [edx + 0x24]
or ecx, eax
jne 0x549cda
mov esi, dword [edx + 0xc]
mov ecx, dword [esi + 0x160]
mov eax, dword [esi + 0x164]
and ecx, dword [esp + 0x20]
and eax, dword [esp + 0x1c]
or ecx, eax
je 0x549cd5
mov eax, dword [esi + 0x10]
xorps xmm0, xmm0
movlpd qword [esp + 0x10], xmm0
xorps xmm3, xmm3
movdqu xmm0, xmmword [edi]
xorps xmm2, xmm2
movsd qword [esp + 0x40], xmm3
lea ecx, [eax + eax*4]
movsd qword [esp + 0x48], xmm2
mov eax, dword [esi + 0x18]
movdqu xmmword [esp + 0x50], xmm0
movdqu xmm0, xmmword [edi + 0x10]
lea eax, [eax + ecx*8]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x28], eax
movdqu xmmword [esp + 0x60], xmm0
movdqu xmm0, xmmword [edi + 0x20]
movdqu xmmword [esp + 0x70], xmm0
mov dword [esp + 0x70], 0
movdqu xmm0, xmmword [edi + 0x30]
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
movdqu xmmword [esp + 0x80], xmm0
movdqu xmm0, xmmword [edi + 0x40]
movdqu xmmword [esp + 0x90], xmm0
movdqu xmm0, xmmword [edi + 0x50]
movdqu xmmword [esp + 0xa0], xmm0
mov esi, dword [esi + 0x18]
cmp esi, eax
mov eax, dword [esp + 0x14]
jae 0x549c61
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], ecx
mov edx, 0x200
test word [esi + 0x10], dx
je 0x549b80
mov eax, dword [esi + 0xc]
jmp 0x549bda
xor ecx, ecx
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
mov dword [esp + 0x1c], edx
jmp 0x549a0d
mov edx, dword [esp + 0x34]
cmp dword [esi + 8], edx
mov edx, dword [esp + 0x28]
jne 0x549c42
mov ecx, dword [esp + 0x30]
mov dword [esp + 0xc0], ecx
mov byte [esp + 0xc4], 0x45
mov dword [esp + 0xd0], esi
mov eax, dword [ecx]
mov dword [esp + 0xb8], eax
mov eax, dword [ecx + 4]
mov dword [esp + 0xbc], eax
xor eax, eax
mov word [esp + 0xc6], ax
lea eax, [esp + 0xb8]
mov dword [esp + 0xc8], 1
lea ecx, [esp + 0x50]
mov dword [esp + 0x54], eax
call fcn.0054bb60
movsd xmm0, qword [esp + 0xa0]
addsd xmm0, qword [esp + 0x40]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x2c]
or ecx, dword [esp + 0xa8]
or eax, dword [esp + 0xac]
movapd xmm3, xmm0
mov dword [esp + 0x10], ecx
comisd xmm3, xmmword [edi + 0x50]
mov dword [esp + 0x2c], eax
movsd xmm0, qword [esp + 0x90]
addsd xmm0, qword [esp + 0x48]
movsd qword [esp + 0x40], xmm3
movapd xmm2, xmm0
movsd qword [esp + 0x48], xmm2
jae 0x549c4d
mov edx, dword [esp + 0x28]
add esi, 0x28
cmp esi, edx
jb 0x549b52
mov edx, dword [esp + 0x24]
movsd xmm5, qword [0x66b5f0]
movsd xmm4, qword [0x66b618]
cmp dword [edi + 0x20], 0
je 0x549c96
comisd xmm2, xmm4
movapd xmm0, xmm5
movapd xmm1, xmm4
jbe 0x549c8e
jmp 0x549c80
mulsd xmm1, xmm4
addsd xmm0, xmm5
comisd xmm2, xmm1
ja 0x549c80
mulsd xmm0, xmm2
addsd xmm3, xmm0
movsd xmm0, qword [edi + 0x50]
comisd xmm0, xmm3
jbe 0x549cd5
mov dword [edi + 0x5c], eax
mov eax, dword [edi + 0x2c]
movsd qword [edi + 0x50], xmm3
mov dword [edi + 0x58], ecx
movsd qword [edi + 0x40], xmm2
test eax, eax
je 0x549cc5
imul ecx, eax, 0x58
mov eax, dword [edi + 0x34]
movzx eax, word [ecx + eax - 0x52]
jmp 0x549cc7
xor eax, eax
mov word [edi + 0x3e], ax
mov dword [edi + 0x38], 0x10000000
mov dword [edi + 0x48], edx
mov esi, 0x100
mov ecx, dword [esp + 0x20]
add edx, 0x28
mov dword [esp + 0x24], edx
cmp edx, dword [esp + 0x38]
jb 0x549a65
mov ecx, dword [esp + 0x21c]
pop edi
pop esi
xor ecx, esp
call fcn.005712ac
mov esp, ebp
pop ebp
ret