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

Disassembly:
sub esp, 0x64
push ebx
push ebp
mov ebp, dword [0x10755f08]
push esi
mov esi, ecx
mov byte [esp + 0xe], dl
push edi
mov eax, dword [ebp + 0x1ba4]
mov dword [esp + 0x3c], esi
mov byte [eax + 0x8c], 1
mov ebx, dword [ebp + 0x1ba4]
cmp byte [ebx + 0x8f], 0
jne 0x1016d887
mov ecx, dword [ebx + 0xc0]
xor edx, edx
mov eax, dword [ebx + 0xc8]
push dword [eax + ecx*4 - 4]
mov ecx, esi
call fcn.1013c7a0
mov edi, eax
cmp dword [ebp + 0x1bd8], edi
jne 0x1016d160
mov dword [ebp + 0x1bdc], edi
cmp dword [ebp + 0x1c14], edi
jne 0x1016d16f
mov byte [ebp + 0x1c18], 1
mov ecx, esi
cmp esi, 0xffffffff
jae 0x1016d18c
mov dl, byte [ecx]
test dl, dl
je 0x1016d18c
cmp dl, 0x23
jne 0x1016d186
cmp byte [ecx + 1], dl
je 0x1016d18c
inc ecx
cmp ecx, 0xffffffff
jb 0x1016d176
vmovss xmm2, dword [ebp + 0x1940]
vxorps xmm1, xmm1, xmm1
cmp esi, ecx
jne 0x1016d1a2
vxorps xmm3, xmm3, xmm3
jmp 0x1016d1f0
vmovss xmm0, dword [0x10228a3c]
vmovss xmm3, dword [0x102289f0]
push 0
push ecx
push esi
push ecx
mov ecx, dword [ebp + 0x193c]
lea eax, [esp + 0x40]
vmovss dword [esp], xmm0
push eax
call fcn.1015a0e0
vmovss xmm0, dword [esp + 0x30]
vaddss xmm0, xmm0, dword [0x1022867c]
vmovss xmm2, dword [esp + 0x34]
vcvttss2si eax, xmm0
vxorps xmm3, xmm3, xmm3
vcvtsi2ss xmm3, xmm3, eax
vxorps xmm1, xmm1, xmm1
mov esi, dword [esp + 0x7c]
vmovss dword [esp + 0x18], xmm3
vmovss dword [esp + 0x40], xmm3
vmovss dword [esp + 0x44], xmm2
vmovss xmm4, dword [esi + 4]
vucomiss xmm4, xmm1
vmovss dword [esp + 0x7c], xmm4
lahf
test ah, 0x44
jp 0x1016d225
vmovaps xmm4, xmm2
vmovss dword [esp + 0x7c], xmm2
vmovss xmm0, dword [esi]
vucomiss xmm0, xmm1
vmovss dword [esp + 0x20], xmm0
lahf
test ah, 0x44
jp 0x1016d243
vmovaps xmm0, xmm3
vmovss dword [esp + 0x20], xmm0
vmovss dword [esp + 0x28], xmm0
vmovss xmm0, dword [ebx + 0xcc]
vmovss dword [esp + 0x14], xmm0
vmovss xmm0, dword [ebx + 0xd0]
vaddss xmm0, xmm0, dword [ebx + 0x104]
vmovss dword [esp + 0x30], xmm0
vxorps xmm0, xmm0, xmm0
lea ecx, [esp + 0x28]
vmovss dword [esp + 0x2c], xmm4
call fcn.10148d00
mov ecx, dword [esp + 0x78]
mov edx, ecx
vmovss xmm3, dword [esp + 0x14]
shr edx, 1
and dl, 1
mov dword [esp + 0x28], edx
je 0x1016d2a9
vmovss xmm4, dword [ebx + 0x224]
vmovss xmm2, dword [ebx + 0x22c]
jmp 0x1016d2b5
vmovss xmm2, dword [ebx + 0x21c]
vmovaps xmm4, xmm3
vmovss xmm0, dword [esi]
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
lahf
test ah, 0x44
jnp 0x1016d2cf
test ecx, 0x800000
je 0x1016d2db
vsubss xmm0, xmm2, xmm4
vmaxss xmm0, xmm0, dword [esp + 0x18]
jmp 0x1016d2e1
vmovss xmm0, dword [esp + 0x20]
vmovss xmm6, dword [esp + 0x30]
vaddss xmm7, xmm0, xmm4
vaddss xmm0, xmm6, dword [esp + 0x7c]
vmovss dword [esp + 0x48], xmm3
vmovss dword [esp + 0x4c], xmm6
vmovss dword [esp + 0x18], xmm7
vmovss dword [esp + 0x1c], xmm0
vmovss dword [esp + 0x50], xmm4
vmovss dword [esp + 0x54], xmm6
vmovss dword [esp + 0x58], xmm7
vmovss dword [esp + 0x5c], xmm0
test ecx, 0x4000000
jne 0x1016d3a1
test dl, dl
je 0x1016d333
vxorps xmm5, xmm5, xmm5
jmp 0x1016d33b
vmovss xmm5, dword [ebp + 0x1560]
vmulss xmm0, xmm5, dword [0x102285c0]
vmovss xmm3, dword [ebp + 0x1564]
vcvttss2si eax, xmm0
vmulss xmm0, xmm3, dword [0x102285c0]
vxorps xmm2, xmm2, xmm2
vcvtsi2ss xmm2, xmm2, eax
vcvttss2si eax, xmm0
vxorps xmm1, xmm1, xmm1
vcvtsi2ss xmm1, xmm1, eax
vsubss xmm0, xmm4, xmm2
vmovss dword [esp + 0x50], xmm0
vsubss xmm0, xmm6, xmm1
vmovss dword [esp + 0x54], xmm0
vsubss xmm0, xmm5, xmm2
vaddss xmm0, xmm0, xmm7
vmovss dword [esp + 0x58], xmm0
vsubss xmm0, xmm3, xmm1
vaddss xmm1, xmm6, dword [esp + 0x7c]
vaddss xmm0, xmm0, xmm1
vmovss dword [esp + 0x5c], xmm0
vmovss xmm0, dword [ebx + 0x234]
vmovss dword [esp + 0x7c], xmm0
vmovss xmm0, dword [ebx + 0x23c]
vmovss dword [esp + 0x30], xmm0
test dl, dl
je 0x1016d3d9
mov eax, dword [ebx + 0x224]
mov dword [ebx + 0x234], eax
mov eax, dword [ebx + 0x22c]
mov dword [ebx + 0x23c], eax
mov eax, ecx
mov edx, edi
and eax, 8
lea ecx, [esp + 0x50]
mov dword [esp + 0x14], eax
push 0
je 0x1016d40a
mov esi, dword [ebx + 0x1b0]
mov eax, esi
or eax, 0x14
mov dword [ebx + 0x1b0], eax
call fcn.10148e30
mov dword [ebx + 0x1b0], esi
jmp 0x1016d40f
call fcn.10148e30
mov cl, al
mov eax, dword [esp + 0x28]
test al, al
je 0x1016d435
vmovss xmm0, dword [esp + 0x7c]
vmovss dword [ebx + 0x234], xmm0
vmovss xmm0, dword [esp + 0x30]
vmovss dword [ebx + 0x23c], xmm0
test cl, cl
je 0x1016d887
test al, al
je 0x1016d50f
cmp dword [ebx + 0x198], 0
je 0x1016d458
call fcn.100eb750
jmp 0x1016d50f
cmp dword [ebp + 0x1edc], 0
je 0x1016d50f
mov eax, dword [0x10755f08]
mov esi, dword [eax + 0x1edc]
mov edx, dword [eax + 0x1ba4]
vmovdqu xmm0, xmmword [edx + 0x234]
vmovdqu xmmword [esi + 0x174], xmm0
mov eax, dword [edx + 0x288]
vmovdqu xmm0, xmmword [esi + 0x134]
vmovss xmm1, dword [esi + 0x134]
vmovss xmm2, dword [esi + 0x138]
vmovss xmm3, dword [esi + 0x13c]
vmovss xmm4, dword [esi + 0x140]
vmovdqu xmmword [edx + 0x234], xmm0
vmovss dword [eax + 0x60], xmm1
vmovss dword [eax + 0x64], xmm2
vmovss dword [eax + 0x68], xmm3
vmovss dword [eax + 0x6c], xmm4
mov eax, dword [edx + 0x288]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
vmovss dword [eax + ecx*8 - 0x10], xmm1
vmovss dword [eax + ecx*8 - 0xc], xmm2
vmovss dword [eax + ecx*8 - 8], xmm3
vmovss dword [eax + ecx*8 - 4], xmm4
movzx eax, byte [esi + 0x213]
lea ecx, [esi + 0x1c4]
push eax
push dword [edx + 0x288]
call fcn.10158140
mov ecx, dword [esp + 0x78]
mov esi, dword [esp + 0x78]
mov eax, esi
shr ecx, 3
and ecx, 0x20000
mov edx, ecx
or edx, 0x10
test dword [esp + 0x78], 0x200000
cmove edx, ecx
mov ecx, edx
or ecx, 0x80
test esi, 0x400000
cmove ecx, edx
mov edx, ecx
or edx, 0x4000
cmp dword [esp + 0x14], 0
cmove edx, ecx
mov ecx, edx
or ecx, 0x120
test al, 4
movzx eax, byte [esp + 0x12]
cmove ecx, edx
mov edx, esi
and edx, 0x10
mov esi, 0
cmp dword [esp + 0x14], 0
mov dword [esp + 0x30], edx
cmove esi, eax
mov eax, ecx
or eax, 0x1000
mov dword [esp + 0x20], esi
test edx, edx
mov edx, edi
cmove eax, ecx
lea ecx, [esp + 0x50]
push eax
lea eax, [esp + 0x17]
push eax
lea eax, [esp + 0x1a]
push eax
call fcn.1015d8c0
mov cl, byte [esp + 0x12]
mov byte [esp + 0x7c], al
mov byte [esp + 0x12], cl
test al, al
jne 0x1016d5c9
mov edx, dword [esp + 0x78]
test cl, cl
je 0x1016d66f
test edx, 0x2000000
je 0x1016d66f
cmp byte [ebp + 0x1d5b], 0
jne 0x1016d649
cmp dword [ebp + 0x1d08], ebx
jne 0x1016d649
mov edx, dword [ebx + 0x140]
cmp dword [ebp + 0x1d50], edx
jne 0x1016d649
vmovss xmm0, dword [esp + 0x58]
vsubss xmm4, xmm0, dword [ebx + 0xc]
vmovss xmm0, dword [esp + 0x5c]
vsubss xmm3, xmm0, dword [ebx + 0x10]
vmovss xmm0, dword [esp + 0x50]
vsubss xmm1, xmm0, dword [ebx + 0xc]
vmovss xmm0, dword [esp + 0x54]
vsubss xmm0, xmm0, dword [ebx + 0x10]
lea eax, [esp + 0x60]
mov ecx, edi
push eax
push dword [ebx + 0x14c]
vmovss dword [esp + 0x68], xmm1
vmovss dword [esp + 0x6c], xmm0
vmovss dword [esp + 0x70], xmm4
vmovss dword [esp + 0x74], xmm3
call fcn.1014ad80
mov al, byte [esp + 0x7c]
mov byte [ebp + 0x1d5a], 1
mov esi, dword [0x10755f08]
mov edx, dword [esp + 0x78]
test al, al
je 0x1016d675
mov eax, dword [esi + 0x1ba4]
mov word [esi + 0x1be8], 0x101
or dword [eax + 0x11c], 4
jmp 0x1016d675
mov esi, dword [0x10755f08]
cmp dword [esp + 0x30], 0
je 0x1016d681
call fcn.10143640
mov al, byte [esp + 0x13]
test al, al
je 0x1016d695
test edx, 0x1000000
je 0x1016d695
mov cl, 1
jmp 0x1016d6a7
mov cl, byte [esp + 0x12]
test cl, cl
jne 0x1016d6a7
cmp byte [esp + 0x20], cl
je 0x1016d742
test al, al
je 0x1016d6b6
test cl, cl
je 0x1016d6b6
mov eax, 0x1b
jmp 0x1016d6c0
xor eax, eax
test cl, cl
setne al
add eax, 0x19
mov ecx, dword [esp + 0x5c]
add eax, eax
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x54]
push 0
vmovdqu xmm1, xmmword [esi + eax*8 + 0x15dc]
mov eax, dword [esp + 0x5c]
vmovdqu xmmword [esp + 0x64], xmm1
vshufps xmm1, xmm1, xmm1, 0xff
vmulss xmm0, xmm1, dword [esi + 0x1518]
mov esi, dword [esi + 0x1ba4]
vmovss dword [esp + 0x70], xmm0
push ecx
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x2c], ecx
lea ecx, [esp + 0x68]
vxorps xmm0, xmm0, xmm0
mov dword [esp + 0x28], eax
vmovss dword [esp], xmm0
call fcn.1013d1d0
mov ecx, dword [esi + 0x288]
push eax
lea eax, [esp + 0x3c]
push eax
lea eax, [esp + 0x30]
push eax
call fcn.10157320
push 0xa
mov edx, edi
lea ecx, [esp + 0x54]
call fcn.1013eb80
cmp byte [esp + 0x28], 0
je 0x1016d80c
cmp dword [ebx + 0x198], 0
je 0x1016d760
call fcn.100eb800
jmp 0x1016d80c
cmp dword [ebp + 0x1edc], 0
je 0x1016d80c
mov edi, dword [0x10755f08]
mov esi, dword [edi + 0x1ba4]
mov edi, dword [edi + 0x1edc]
mov eax, dword [esi + 0x288]
imul edx, dword [edi + 0x5c], 0x68
vmovdqu xmm0, xmmword [edi + 0x174]
vmovss xmm1, dword [edi + 0x174]
vmovss xmm2, dword [edi + 0x178]
vmovss xmm3, dword [edi + 0x17c]
add edx, dword [edi + 0xc]
vmovss xmm4, dword [edi + 0x180]
vmovdqu xmmword [esi + 0x234], xmm0
vmovss dword [eax + 0x60], xmm1
vmovss dword [eax + 0x64], xmm2
vmovss dword [eax + 0x68], xmm3
vmovss dword [eax + 0x6c], xmm4
mov eax, dword [esi + 0x288]
mov ecx, dword [eax + 0x3c]
mov eax, dword [eax + 0x44]
add ecx, ecx
vmovss dword [eax + ecx*8 - 0x10], xmm1
vmovss dword [eax + ecx*8 - 0xc], xmm2
vmovss dword [eax + ecx*8 - 8], xmm3
vmovss dword [eax + ecx*8 - 4], xmm4
movzx eax, byte [edx + 0x57]
lea ecx, [edi + 0x1c4]
push eax
push dword [esi + 0x288]
call fcn.10158140
mov esi, dword [esp + 0x14]
test esi, esi
je 0x1016d821
lea edx, [ebp + 0x15fc]
xor ecx, ecx
call fcn.1013dbb0
lea eax, [esp + 0x50]
push eax
lea eax, [ebp + 0x15b4]
push eax
lea eax, [esp + 0x48]
push eax
push 0
push dword [esp + 0x4c]
lea edx, [esp + 0x2c]
lea ecx, [esp + 0x5c]
call fcn.1013e410
test esi, esi
je 0x1016d853
mov ecx, 1
call fcn.1013dc00
mov al, byte [esp + 0x7c]
test al, al
je 0x1016d889
test dword [ebx + 8], 0x4000000
je 0x1016d889
test byte [esp + 0x78], 1
jne 0x1016d889
test byte [ebx + 0x1b0], 0x20
jne 0x1016d889
call fcn.1014a2f0
mov al, byte [esp + 0x7c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 8
xor al, al
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 8