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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x218
mov eax, dword [0x102514b8]
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 0x10138ed8
add ecx, 4
lea ecx, [ecx]
mov esi, dword [esp + 0x34]
cmp dword [ecx], esi
mov esi, dword [esp + 0x30]
je 0x10139042
inc eax
add ecx, 4
cmp eax, edx
jl 0x10138ec0
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 0x101391cf
cmp dword [eax + 0x44], 0
jne 0x101391cf
test byte [esi + 0xe], 0x80
jne 0x101391cf
cmp edx, dword [esp + 0x38]
jae 0x101391cf
movsd xmm5, qword [0x1022ed98]
mov esi, 0x100
movsd xmm4, qword [0x1022edc0]
test word [edx + 0x10], si
je 0x101391ba
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 0x101391ba
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 0x101391b5
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 0x10139141
mov dword [esp + 0x2c], eax
mov dword [esp + 0x10], ecx
mov edx, 0x200
test word [esi + 0x10], dx
je 0x10139060
mov eax, dword [esi + 0xc]
jmp 0x101390ba
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 0x10138eed
mov edx, dword [esp + 0x34]
cmp dword [esi + 8], edx
mov edx, dword [esp + 0x28]
jne 0x10139122
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.1013b040
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 0x1013912d
mov edx, dword [esp + 0x28]
add esi, 0x28
cmp esi, edx
jb 0x10139032
mov edx, dword [esp + 0x24]
movsd xmm5, qword [0x1022ed98]
movsd xmm4, qword [0x1022edc0]
cmp dword [edi + 0x20], 0
je 0x10139176
comisd xmm2, xmm4
movapd xmm0, xmm5
movapd xmm1, xmm4
jbe 0x1013916e
jmp 0x10139160
mulsd xmm1, xmm4
addsd xmm0, xmm5
comisd xmm2, xmm1
ja 0x10139160
mulsd xmm0, xmm2
addsd xmm3, xmm0
movsd xmm0, qword [edi + 0x50]
comisd xmm0, xmm3
jbe 0x101391b5
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 0x101391a5
imul ecx, eax, 0x58
mov eax, dword [edi + 0x34]
movzx eax, word [ecx + eax - 0x52]
jmp 0x101391a7
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 0x10138f45
mov ecx, dword [esp + 0x21c]
pop edi
pop esi
xor ecx, esp
call fcn.1016198b
mov esp, ebp
pop ebp
ret