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

Disassembly:
sub esp, 0x3c
mov eax, dword [0x1008c00c]
xor eax, esp
mov dword [esp + 0x34], eax
push ebx
push ebp
push esi
mov esi, dword [0x10090d48]
xor eax, eax
xor ecx, ecx
inc eax
push edi
test byte [esi + 8], 2
mov byte [esi + 0x97], cl
je 0x10012e4d
test byte [esi + 0xc], al
jne 0x10012e4f
mov al, cl
movaps xmm0, xmmword [0x10088850]
mov byte [esp + 0x16], al
movups xmmword [esp + 0x24], xmm0
movaps xmm0, xmmword [0x10088860]
movups xmmword [esp + 0x34], xmm0
test al, al
je 0x10012ea7
lea ebp, [esp + 0x24]
mov ebx, ecx
mov ecx, ebp
lea eax, [esp + 0x44]
cmp eax, ecx
sbb edi, edi
and edi, 0xfffffff8
add edi, 8
mov ecx, dword [ebp]
xor edx, edx
call fcn.1000e3bb
test al, al
je 0x10012e9d
mov dword [esi + 0x47dc], 3
add ebp, 4
inc ebx
cmp ebx, edi
jne 0x10012e85
xor ecx, ecx
mov bh, byte [esi + 8]
xor eax, eax
movaps xmm0, xmmword [0x10088840]
inc eax
and bh, al
mov dword [esp + 0x34], 0x201
mov byte [esp + 0x17], bh
movups xmmword [esp + 0x24], xmm0
mov dword [esp + 0x38], 0x203
mov dword [esp + 0x3c], 0x204
je 0x10012f13
lea ebp, [esp + 0x24]
mov ebx, ecx
mov ecx, ebp
lea eax, [esp + 0x40]
cmp eax, ecx
sbb edi, edi
and edi, 0xfffffff9
add edi, 7
mov ecx, dword [ebp]
xor edx, edx
call fcn.1000e3bb
test al, al
je 0x10012f07
mov dword [esi + 0x47dc], 2
add ebp, 4
inc ebx
cmp ebx, edi
jne 0x10012eef
mov bh, byte [esp + 0x17]
xor edx, edx
cmp dword [esi + 0x47ec], edx
je 0x10012f24
call fcn.100134bd
xor edx, edx
cmp byte [esi + 0x4800], 0
mov word [esi + 0x47e9], 0
mov dword [esi + 0x47ec], edx
mov dword [esi + 0x47c8], edx
je 0x10012f49
call fcn.10013c2b
xor edx, edx
cmp byte [esi + 0x47e5], 0
mov al, dl
mov dword [esi + 0x4844], edx
mov word [esi + 0x4800], 0
mov dword [esp + 0x18], eax
je 0x10012f95
cmp byte [esi + 0x47e4], 0
je 0x10012f95
cmp byte [esi + 0x47e6], 0
jne 0x10012f95
cmp byte [esi + 0x47e7], 0
je 0x10012f95
cmp dword [esi + 0x47a8], edx
push 1
movzx eax, al
pop ecx
cmovne eax, ecx
mov dword [esp + 0x18], eax
mov ecx, dword [esi + 0x47a8]
mov byte [esi + 0x47e5], dl
test ecx, ecx
je 0x10012fd0
mov eax, ecx
cmp dword [eax + 0x308], eax
je 0x10012fc2
test dword [eax + 8], 0x14000000
jne 0x10012fc2
mov eax, dword [eax + 0x300]
test eax, eax
jne 0x10012fa7
test eax, eax
je 0x10012fd0
cmp eax, ecx
je 0x10012fd0
mov dword [eax + 0x318], ecx
mov eax, dword [esi + 0x47a8]
test eax, eax
je 0x10012ff0
cmp dword [eax + 0x318], edx
je 0x10012ff0
cmp dword [esi + 0x47e0], edx
jne 0x10012ff0
mov dword [eax + 0x318], edx
call fcn.10014650
mov bl, byte [esp + 0x16]
test bh, bh
jne 0x10013001
test bl, bl
je 0x1001301d
mov eax, dword [esi + 0x47a8]
test eax, eax
je 0x1001301d
test dword [eax + 8], 0x40000
jne 0x1001301d
xor edx, edx
inc edx
xor ecx, ecx
mov al, dl
jmp 0x10013024
xor ecx, ecx
xor edx, edx
mov al, cl
inc edx
mov byte [esi + 0x99], al
test al, al
je 0x1001303f
cmp dword [esi + 0x47ac], ecx
je 0x1001303f
cmp byte [esi + 0x47e6], 0
je 0x10013049
mov al, cl
cmp dword [esi + 0x4900], ecx
je 0x1001304b
mov al, dl
mov byte [esi + 0x9a], al
call fcn.10013edf
mov edi, dword [esi + 0x47ac]
xor edx, edx
mov dword [esi + 0x47c0], edx
mov dword [esi + 0x47bc], edx
mov dword [esi + 0x47b8], edx
mov dword [esi + 0x47b4], edx
mov dword [esi + 0x47c4], edx
test edi, edi
je 0x100131f0
cmp byte [esi + 0x47e6], dl
jne 0x100131f0
cmp dword [esi + 0x4900], edx
jne 0x100131f0
mov eax, dword [esi + 0x47a8]
test eax, eax
je 0x100131f0
test dword [eax + 8], 0x40000
jne 0x100131f0
mov ebp, 0x20c
test bh, bh
je 0x100130cb
mov ecx, ebp
call fcn.1000e3bb
test al, al
jne 0x100130df
test bl, bl
je 0x10013119
xor edx, edx
mov ecx, 0x26e
call fcn.1000e3bb
test al, al
je 0x10013119
xor eax, eax
inc eax
cmp byte [esp + 0x17], 0
mov bh, al
je 0x100130fb
push 0
xor edx, edx
mov ecx, ebp
call fcn.1000e3e1
pop ecx
test al, al
jne 0x10013112
test bl, bl
je 0x1001311b
push 0
xor edx, edx
mov ecx, 0x26e
call fcn.1000e3e1
pop ecx
test al, al
je 0x1001311b
xor eax, eax
inc eax
mov bl, al
jmp 0x1001311d
xor bh, bh
xor bl, bl
cmp byte [esp + 0x17], 0
mov ebp, 0x20d
je 0x10013136
xor edx, edx
mov ecx, ebp
call fcn.1000e3bb
test al, al
jne 0x1001314d
cmp byte [esp + 0x16], 0
je 0x10013187
xor edx, edx
mov ecx, 0x26d
call fcn.1000e3bb
test al, al
je 0x10013187
cmp byte [esp + 0x17], 0
je 0x10013164
push 0
xor edx, edx
mov ecx, ebp
call fcn.1000e3e1
pop ecx
test al, al
jne 0x1001317e
cmp byte [esp + 0x16], 0
je 0x10013187
push 0
xor edx, edx
mov ecx, 0x26d
call fcn.1000e3e1
pop ecx
test al, al
je 0x10013187
xor eax, eax
xor edx, edx
lea ecx, [eax + 1]
jmp 0x1001318b
xor edx, edx
mov cl, dl
mov eax, dword [esi + 0x3e74]
test eax, eax
jne 0x100131ab
test bl, bl
je 0x100131af
mov dword [esi + 0x47b4], edi
mov dword [esi + 0x47c4], 2
jmp 0x100131af
cmp eax, edi
jne 0x100131c2
test cl, cl
je 0x100131c2
xor ecx, ecx
mov dword [esi + 0x47c0], edi
inc ecx
mov dword [esi + 0x47c4], ecx
test eax, eax
je 0x100131ca
cmp eax, edi
jne 0x100131d4
test bh, bh
je 0x100131d4
mov dword [esi + 0x47b8], edi
test eax, eax
je 0x100131dc
cmp eax, edi
jne 0x100131ec
mov bh, byte [esp + 0x17]
test bl, bl
je 0x100131f0
mov dword [esi + 0x47bc], edi
jmp 0x100131f0
mov bh, byte [esp + 0x17]
mov eax, dword [esi + 0x47a8]
test eax, eax
je 0x1001320c
test dword [eax + 8], 0x40000
je 0x1001320c
xor eax, eax
inc eax
mov byte [esi + 0x47e6], al
mov eax, dword [esi + 0x47d4]
test eax, eax
je 0x10013241
mov ecx, dword [esi + 0x47d8]
test cl, 1
je 0x10013229
mov dword [esi + 0x47c0], eax
jmp 0x1001323b
mov dword [esi + 0x47bc], eax
mov dword [esi + 0x47b8], eax
mov dword [esi + 0x47b4], eax
mov dword [esi + 0x47c4], ecx
mov dword [esi + 0x47d4], edx
call fcn.1001353b
cmp dword [esi + 0x4810], 0xffffffff
jne 0x1001325a
call fcn.10013b8e
call fcn.10012a86
mov edi, dword [esi + 0x47a8]
xor edx, edx
mov byte [esi + 0x47e4], dl
test edi, edi
je 0x1001343b
test dword [edi + 8], 0x40000
jne 0x1001343b
cmp dword [esi + 0x4900], edx
jne 0x1001343b
mov ecx, edi
call fcn.100021d9
xorps xmm4, xmm4
mulss xmm0, dword [0x10088660]
mov ecx, dword [esi + 0x4810]
movss xmm2, dword [0x10088500]
mulss xmm0, dword [esi + 0x18]
addss xmm0, dword [0x100884b0]
cvttss2si eax, xmm0
movd xmm3, eax
cvtdq2ps xmm3, xmm3
cmp word [edi + 0x148], dx
jne 0x10013358
cmp byte [edi + 0x14d], dl
je 0x10013358
cmp ecx, 0xffffffff
je 0x10013358
movss xmm1, dword [0x10088720]
test ecx, ecx
je 0x100132f8
xor eax, eax
inc eax
cmp ecx, eax
jne 0x10013323
movaps xmm0, xmm2
jmp 0x100132fb
movaps xmm0, xmm1
mulss xmm0, xmm3
and dword [edi + 0x8c], edx
and dword [edi + 0x94], edx
addss xmm0, dword [edi + 0x74]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x84], xmm0
cmp ecx, 2
je 0x10013330
cmp ecx, 3
jne 0x10013358
movaps xmm1, xmm2
and dword [edi + 0x90], edx
mulss xmm1, xmm3
and dword [edi + 0x98], edx
addss xmm1, dword [edi + 0x78]
cvttss2si eax, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x88], xmm0
mov al, byte [esp + 0x16]
test al, al
je 0x1001343f
push 0x27c
push 0x27b
push 0x27a
mov edx, 0x279
lea ecx, [esp + 0x28]
call fcn.1000e033
add esp, 0xc
xor edx, edx
mov ecx, 0x273
call fcn.1000e3bb
test al, al
je 0x1001339e
movss xmm2, dword [0x10088474]
jmp 0x100133b6
xor edx, edx
mov ecx, 0x274
call fcn.1000e3bb
test al, al
je 0x100133b6
movss xmm2, dword [0x100885f8]
movss xmm0, dword [esp + 0x1c]
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x100133fc
cmp byte [edi + 0xa4], 0
je 0x100133fc
mulss xmm0, xmm3
and dword [edi + 0x8c], 0
and dword [edi + 0x94], 0
mulss xmm0, xmm2
addss xmm0, dword [edi + 0x74]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x84], xmm0
movss xmm0, dword [esp + 0x20]
ucomiss xmm0, xmm4
lahf
test ah, 0x44
jnp 0x10013439
mulss xmm0, xmm3
and dword [edi + 0x90], 0
and dword [edi + 0x98], 0
mulss xmm0, xmm2
addss xmm0, dword [edi + 0x78]
cvttss2si eax, xmm0
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [edi + 0x88], xmm0
xor edx, edx
mov al, byte [esp + 0x16]
test bh, bh
jne 0x1001345a
xor ebx, ebx
inc ebx
test al, al
jne 0x1001345d
mov byte [esi + 0x47e6], bl
mov al, dl
mov byte [esi + 0x47e7], dl
jmp 0x10013461
xor ebx, ebx
inc ebx
mov eax, dword [esp + 0x18]
test al, al
je 0x100134a2
test byte [esi + 8], 4
je 0x100134a2
test byte [esi + 0xc], 4
je 0x100134a2
lea ecx, [esp + 0x1c]
call fcn.10012b7d
mov ecx, dword [eax]
mov dword [esi + 0x369c], ecx
mov ecx, dword [eax + 4]
mov dword [esi + 0x36a0], ecx
mov ecx, dword [eax]
mov dword [esi + 0xdb8], ecx
mov eax, dword [eax + 4]
mov dword [esi + 0xdbc], eax
mov byte [esi + 0x97], bl
mov ecx, dword [esp + 0x44]
xor eax, eax
pop edi
mov dword [esi + 0x483c], eax
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.1006dac1
add esp, 0x3c
ret