Function at 0x101a15f0
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.1014d6c0
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 0x101a167c
ucomiss xmm2, xmm1
lahf
test ah, 0x44
jp 0x101a167c
lea ecx, [esp + 0xec]
call fcn.10165f20
jmp 0x101a16e6
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 0x101a174b
cmp edx, 4
jne 0x101a1753
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.10166200
movss xmm2, dword [0x10300128]
movss xmm1, dword [0x10300328]
call fcn.10166510
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.10197570
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 0x101a187f
lea eax, [esp + 0x140]
push eax
lea ecx, [esp + 0x48]
call fcn.1016e800
test al, al
jne 0x101a1871
mov eax, dword [edi + 0x10]
sub eax, dword [edi + 8]
imul dword [edi + 0x14]
mov esi, edx
mov ecx, eax
test esi, esi
jl 0x101a185d
jg 0x101a1854
test ecx, ecx
je 0x101a185d
cdq
cmp eax, ecx
jne 0x101a185d
cmp edx, esi
je 0x101a185f
xor ecx, ecx
push ecx
push 0
push dword [edi]
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
jmp 0x101a1c57
mov eax, dword [esp + 0x4c]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x14], eax
jmp 0x101a189a
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.10145050
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.10183080
mov eax, dword [edi + 0x18]
sub eax, 0
je 0x101a1b3b
sub eax, 1
je 0x101a1b21
sub eax, 3
jne 0x101a1c57
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 0
je 0x101a1b0d
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 0x101a1c57
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 0x101a1aed
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 0x101a1a1b
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 0x101a19e0
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 0x101a1998
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 0x101a1980
jmp 0x101a1c57
push ecx
mov edx, edi
lea ecx, [esp + 0x48]
call fcn.101a3850
add esp, 4
jmp 0x101a1c57
mov eax, dword [ebp + 8]
mov edx, dword [eax + 8]
test edx, edx
je 0x101a1c57
mov ecx, edi
call fcn.101a1430
jmp 0x101a1c57
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 0x101a1c57
nop
mov ecx, dword [esp + 0x2c]
test ecx, ecx
jle 0x101a1c0b
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 0x101a1ba0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
cmp dword [esp + 0x1c], 0
jbe 0x101a1c40
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 0x101a1c20
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 0x101a1b90
mov eax, dword [esp + 0x64]
test eax, eax
je 0x101a1c69
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.101974b0
lea ecx, [esp + 0xa0]
call fcn.1014d850
mov ecx, dword [esp + 0x16c]
pop edi
pop esi
xor ecx, esp
call fcn.102af9d5
mov esp, ebp
pop ebp
ret