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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x168
mov eax, dword [0x1036a00c]
xor eax, esp
mov dword [esp + 0x164], eax
push esi
push edi
mov edi, ecx
mov dword [esp + 0x1c], edx
lea ecx, [esp + 0xa0]
mov dword [esp + 0x30], edi
call fcn.1014d680
mov edx, dword [edi + 4]
xorps xmm1, xmm1
movss xmm3, dword [0x10300a00]
mov eax, dword [edi + 8]
mov esi, dword [edi + 0xc]
mov ecx, dword [edi + 0x10]
sub esi, edx
movd xmm0, edx
sub ecx, eax
cvtdq2ps xmm0, xmm0
mov dword [esp + 0x10], ecx
mov ecx, dword [edi + 0x14]
mov dword [esp + 0x14], ecx
movd xmm2, eax
xorps xmm0, xmm3
ucomiss xmm0, xmm1
cvtdq2ps xmm2, xmm2
lahf
xorps xmm2, xmm3
test ah, 0x44
jp 0x101a15ec
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x101a15ec
lea ecx, [esp + 0xec]
call fcn.10165ee0
jmp 0x101a1656
movss dword [esp + 0xf4], xmm0
movss dword [esp + 0x100], xmm2
mov dword [esp + 0x10c], 0x3f800000
mov dword [esp + 0xfc], 0x3f800000
mov dword [esp + 0xec], 0x3f800000
mov dword [esp + 0x108], 0
mov dword [esp + 0x104], 0
mov dword [esp + 0xf8], 0
mov dword [esp + 0xf0], 0
mov dword [esp + 0x110], 0x11
movzx ecx, word [esp + 0xe0]
mov edx, dword [edi + 0x18]
mov eax, ecx
or ecx, 1
and eax, 0xfffe
test edx, edx
movzx ecx, cx
movzx eax, ax
cmove ecx, eax
mov word [esp + 0xe0], cx
je 0x101a16bb
cmp edx, 4
jne 0x101a16c3
mov eax, dword [edi + 4]
lea ecx, [esp + 0xec]
inc eax
lea esi, [esi*4 - 8]
movd xmm1, eax
cvtdq2ps xmm1, xmm1
xorps xmm1, xmm3
call fcn.101661c0
movss xmm2, dword [0x10300128]
movss xmm1, dword [0x10300328]
call fcn.101664d0
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x114]
xorps xmm0, xmm0
mov dword [esp + 0x14c], eax
mov dword [esp + 0x140], 0
lea eax, [esp + 0x140]
mov dword [esp + 0x144], 0
mov dword [esp + 0x148], esi
movups xmmword [esp + 0x114], xmm0
push eax
movups xmmword [esp + 0x12c], xmm0
mov dword [esp + 0x128], 0xffffffff
movaps xmm0, xmmword [esp + 0x144]
mov dword [esp + 0x13c], 0
mov dword [esp + 0x140], 0x10100
movaps xmmword [esp + 0x144], xmm0
call fcn.10197500
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov dword [esp + 0x144], eax
xorps xmm0, xmm0
mov eax, dword [esp + 0x14]
mov dword [esp + 0x140], esi
mov dword [esp + 0x148], 1
mov dword [esp + 0x14c], 2
mov dword [esp + 0x150], ecx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
movups xmmword [esp + 0x50], xmm0
test eax, eax
jne 0x101a17ef
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x48]
call fcn.1016e790
test al, al
jne 0x101a17e1
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 8]
imul dword [edi + 0x14]
mov esi, edx
mov ecx, eax
test esi, esi
jl 0x101a17cd
jg 0x101a17c4
test ecx, ecx
je 0x101a17cd
cdq
cmp eax, ecx
jne 0x101a17cd
cmp edx, esi
je 0x101a17cf
xor ecx, ecx
push ecx
push 0
push dword [edi]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
jmp 0x101a1bc7
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x14], eax
jmp 0x101a180a
movups xmm0, xmmword [esp + 0x140]
mov esi, dword [edi]
mov dword [esp + 0x44], esi
mov dword [esp + 0x4c], eax
movups xmmword [esp + 0x50], xmm0
mov dword [esp + 0x60], ecx
push eax
lea ecx, [esp + 0x54]
mov dword [esp + 0x1c], esi
call fcn.10145010
push eax
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esp + 0x9c], 0
xorps xmm0, xmm0
lea eax, [esp + 0x114]
movlpd qword [esp + 0x94], xmm0
movups xmm0, xmmword [esp + 0x44]
push 0
push ecx
mov dword [esp + 0x98], eax
lea ecx, [esp + 0x70]
mov dword [esp + 0x94], eax
lea eax, [esp + 0xf4]
push 0
mov dword [esp + 0x94], eax
lea eax, [esp + 0xac]
push 0
movups xmmword [esp + 0x78], xmm0
push eax
movups xmm0, xmmword [esp + 0x68]
push dword [esp + 0x30]
movups xmmword [esp + 0x90], xmm0
call fcn.10183010
mov eax, dword [edi + 0x18]
sub eax, 0
je 0x101a1aab
sub eax, 1
je 0x101a1a91
sub eax, 3
jne 0x101a1bc7
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 0
je 0x101a1a7d
mov edx, dword [edi]
mov eax, dword [edi + 0x14]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x20], edx
mov dword [esp + 0x30], eax
mov dword [esp + 0x1c], edi
test edi, edi
jle 0x101a1bc7
mov eax, dword [esp + 0x50]
lea ecx, [eax + 4]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x14]
nop dword [eax + eax]
cmp dword [esp + 0x40], 0xfffffffc
jle 0x101a1a5d
mov edi, 4
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], edi
xor ecx, ecx
lea edx, [edi - 0xc]
test edx, edx
xorps xmm0, xmm0
movq qword [esp + 0x140], xmm0
cmovle edx, ecx
cmp edi, dword [esp + 0x50]
cmovle eax, edi
mov dword [esp + 0x2c], eax
mov eax, edx
sub eax, edi
lea edi, [eax*4 + 0x102fb928]
xor eax, eax
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x144]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x140]
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], ecx
cmp edx, dword [esp + 0x2c]
jge 0x101a198b
movzx ecx, byte [edx + esi]
inc edx
mov eax, dword [edi - 0x30]
imul eax, ecx
add dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x24], eax
mov eax, dword [edi]
imul eax, ecx
add dword [esp + 0x10], eax
mov eax, dword [edi + 0x30]
imul eax, ecx
mov ecx, dword [esp + 0x34]
add ecx, eax
add edi, 4
jmp 0x101a1950
mov eax, dword [esp + 0x24]
cdq
and edx, 0xff
lea edi, [edx + eax]
mov eax, 0xff
sar edi, 8
cmp edi, 0xff
cmovg edi, eax
mov eax, dword [esp + 0x10]
cdq
and edx, 0xff
lea esi, [edx + eax]
mov eax, 0xff
sar esi, 8
cmp esi, 0xff
cmovg esi, eax
mov eax, ecx
cdq
and edx, 0xff
add edx, eax
mov eax, 0xff
sar edx, 8
cmp edx, 0xff
cmovg edx, eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
movzx ecx, byte [ecx + edi]
mov edi, 0xfff8
movzx eax, byte [eax + esi]
and cx, di
mov edi, dword [esp + 0x38]
shl cx, 5
add edi, 4
or cx, ax
mov esi, dword [esp + 0x18]
mov eax, 0xfffc
mov dword [esp + 0x38], edi
and cx, ax
mov eax, dword [ebp + 8]
shl cx, 3
mov eax, dword [eax + 0xc]
mov al, byte [edx + eax]
shr al, 3
movzx eax, al
or cx, ax
mov eax, dword [esp + 0x3c]
mov word [eax], cx
add eax, 2
mov dword [esp + 0x3c], eax
lea eax, [edi - 8]
cmp eax, dword [esp + 0x40]
mov eax, dword [esp + 0x50]
jl 0x101a1908
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
mov edi, dword [esp + 0x1c]
add edx, dword [esp + 0x30]
add esi, ecx
sub edi, 1
mov dword [esp + 0x20], edx
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], edi
jne 0x101a18f0
jmp 0x101a1bc7
push ecx
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.101a37c0
add esp, 4
jmp 0x101a1bc7
mov eax, dword [ebp + 8]
mov edx, dword [eax + 8]
test edx, edx
je 0x101a1bc7
mov ecx, edi
call fcn.101a13a0
jmp 0x101a1bc7
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 8]
mov ecx, dword [edi + 0xc]
sub ecx, dword [edi + 4]
mov dword [esp + 0x18], eax
mov eax, ecx
sar eax, 3
sub dword [esp + 0x14], ecx
mov edi, dword [edi]
mov dword [esp + 0x2c], eax
mov eax, ecx
and eax, 7
mov dword [esp + 0x10], edi
mov dword [esp + 0x1c], eax
lea eax, [ecx + 7]
and eax, 0xfffffff8
cdq
and edx, 7
add eax, edx
mov edx, dword [esp + 0x30]
sar eax, 3
mov edx, dword [edx + 0x14]
sub edx, eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x20], edx
test eax, eax
jle 0x101a1bc7
nop
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x101a1b7b
mov edx, ecx
nop word [eax + eax]
movzx ecx, byte [esi + 6]
movzx eax, byte [esi + 5]
shr ecx, 1
and eax, 0xffffff9f
and ecx, 0x7fffffc0
or ecx, eax
movzx eax, byte [esi + 4]
and eax, 0xffffff8f
shr ecx, 1
or ecx, eax
movzx eax, byte [esi + 3]
and eax, 0xffffff87
shr ecx, 1
or ecx, eax
movzx eax, byte [esi + 2]
and eax, 0xffffff83
shr ecx, 1
or ecx, eax
movzx eax, byte [esi + 1]
and eax, 0xffffff81
shr ecx, 1
or ecx, eax
movzx eax, byte [esi + 7]
shr eax, 7
shr ecx, 1
or ecx, eax
movzx eax, byte [esi]
and eax, 0xffffff80
add esi, 8
or ecx, eax
mov byte [edi], cl
inc edi
sub edx, 1
jne 0x101a1b10
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
cmp dword [esp + 0x1c], 0
jbe 0x101a1bb0
mov edi, dword [esp + 0x1c]
xor edx, edx
mov ecx, 7
nop dword [eax]
movzx eax, byte [esi]
inc esi
shr eax, 7
shl eax, cl
dec ecx
or edx, eax
sub edi, 1
jne 0x101a1b90
mov edi, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov byte [edi], dl
inc edi
mov edx, dword [esp + 0x20]
add esi, dword [esp + 0x14]
add edi, edx
sub eax, 1
mov dword [esp + 0x10], edi
mov dword [esp + 0x18], eax
jne 0x101a1b00
mov eax, dword [esp + 0x64]
test eax, eax
je 0x101a1bd9
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
lea ecx, [esp + 0x114]
call fcn.10197440
lea ecx, [esp + 0xa0]
call fcn.1014d810
mov ecx, dword [esp + 0x16c]
pop edi
pop esi
xor ecx, esp
call fcn.102af935
mov esp, ebp
pop ebp
ret