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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4cc
mov eax, dword [0x1036a00c]
xor eax, esp
mov dword [esp + 0x4c8], eax
push ebx
mov ebx, ecx
xor edx, edx
mov ecx, dword [ebp + 8]
push esi
push edi
mov esi, dword [ebx + 0x40]
mov edi, ecx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x44], edx
test esi, esi
je 0x101a1e4d
mov eax, dword [ecx + 0x1c]
mov ecx, ebx
mov dword [esp + 0x64], eax
lea eax, [esp + 0x48]
push eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], edx
mov byte [esp + 0x64], 0xff
mov byte [esp + 0x67], dl
mov dword [ebx + 0x40], edx
call fcn.101a0f20
mov al, byte [esp + 0x60]
mov ecx, edi
mov dword [ebx + 0x40], esi
cmp al, byte [ecx + 0x18]
jne 0x101a1e16
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
jmp 0x101a1e49
lea ecx, [esp + 0x48]
call fcn.101a0a30
mov esi, eax
test esi, esi
je 0x101a1e43
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov edx, eax
mov dword [esp + 0x44], edx
test esi, esi
je 0x101a1e45
test edx, edx
je 0x101a248d
jmp 0x101a1e45
xor edx, edx
mov dword [esp + 0x48], edx
lea edi, [esp + 0x48]
cmp byte [ebx + 0x48], 0
je 0x101a2019
call fcn.10194c00
mov dword [esp + 0x34], eax
lea ecx, [esp + 0x3e]
mov dword [esp + 0x38], 0xffffffff
mov al, 2
mov word [esp + 0x3c], 0
xchg byte [ecx], al
mov byte [esp + 0x3f], 0
call fcn.10194c00
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x32]
mov dword [esp + 0x2c], 0xffffffff
mov al, 2
mov word [esp + 0x30], 0
xchg byte [ecx], al
lea eax, [esp + 0xa0]
mov byte [esp + 0x33], 0
push eax
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
lea eax, [esp + 0x30]
push eax
push edi
call fcn.101a24e0
lea eax, [esp + 0x84]
mov ecx, edi
push eax
call fcn.101a0990
cmp dword [ebx + 0x44], 0
je 0x101a1fc1
mov eax, dword [esp + 0x94]
sub eax, dword [esp + 0x8c]
imul dword [esp + 0x98]
mov dword [esp + 0x9c], 1
mov esi, edx
mov ecx, eax
test esi, esi
jl 0x101a1f0b
jg 0x101a1f02
test ecx, ecx
je 0x101a1f0b
cdq
cmp eax, ecx
jne 0x101a1f0b
cmp edx, esi
je 0x101a1f0d
xor ecx, ecx
push ecx
push 0
push dword [edi]
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebx + 0x44]
lea eax, [esp + 0x90]
add esp, 0xc
push 1
push eax
push dword [ebx + 0x40]
lea eax, [esp + 0xac]
push 0
push eax
lea eax, [esp + 0x3c]
push eax
call fcn.101cedf0
test al, al
jne 0x101a1fac
mov ecx, dword [esp + 0x28]
or esi, 0xffffffff
test ecx, ecx
je 0x101a1f60
lea eax, [ecx + 4]
mov edx, esi
lock xadd dword [eax], edx
cmp edx, 1
jne 0x101a1f60
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], 0
test ecx, ecx
je 0x101a1f81
lea eax, [ecx + 4]
lock xadd dword [eax], esi
cmp esi, 1
jne 0x101a1f81
mov eax, dword [ecx]
call dword [eax + 4]
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov eax, dword [esp + 0x44]
test eax, eax
je 0x101a1f95
push eax
call ebx
add esp, 4
mov ecx, dword [esp + 0x4d4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.102af935
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x54]
test edx, edx
je 0x101a1fd8
lea ecx, [esp + 0x84]
call fcn.101a13a0
jmp 0x101a1fd8
lea eax, [ebx + 0x4c]
push eax
lea edx, [esp + 0x38]
lea ecx, [esp + 0x88]
call fcn.101a1560
add esp, 4
mov ecx, dword [esp + 0x28]
or esi, 0xffffffff
test ecx, ecx
je 0x101a1ff6
lea eax, [ecx + 4]
mov edx, esi
lock xadd dword [eax], edx
cmp edx, 1
jne 0x101a1ff6
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], 0
test ecx, ecx
je 0x101a2021
lea eax, [ecx + 4]
lock xadd dword [eax], esi
cmp esi, 1
jne 0x101a2021
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x101a2021
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0xc]
cmp dword [ebx + 0x40], 0
je 0x101a1f81
lea eax, [esp + 0xd0]
mov dword [esp + 0xcc], 0x400
mov dword [esp + 0xc8], eax
mov ecx, edi
lea eax, [esp + 0x68]
push eax
call fcn.101a0990
cmp dword [esp + 0x80], 3
jne 0x101a2302
mov ecx, dword [esp + 0x74]
sub ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0x78]
add ecx, 3
sub eax, dword [esp + 0x70]
and ecx, 0xfffffffc
imul ecx
mov dword [esp + 0x80], 1
mov esi, eax
mov dword [esp + 0x18], ecx
mov eax, edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x14], eax
test eax, eax
jl 0x101a20a8
jg 0x101a209b
test esi, esi
je 0x101a20a8
mov eax, esi
cdq
cmp eax, esi
jne 0x101a20a8
cmp edx, dword [esp + 0x14]
je 0x101a20aa
xor esi, esi
mov eax, 0x400
cmp esi, eax
cmovb esi, eax
cmp esi, dword [esp + 0xcc]
je 0x101a2137
mov eax, dword [esp + 0xc8]
lea edx, [esp + 0xd0]
cmp eax, edx
je 0x101a20e8
test eax, eax
je 0x101a20e8
push eax
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov ecx, dword [esp + 0x80]
add esp, 4
mov dword [esp + 0x18], ecx
cmp esi, 0x400
jne 0x101a2107
lea edx, [esp + 0xd0]
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edx
jmp 0x101a213e
push esi
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
add esp, 4
mov edx, eax
test esi, esi
je 0x101a211f
test edx, edx
je 0x101a2492
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], esi
jmp 0x101a213e
mov edx, dword [esp + 0xc8]
mov al, byte [edi + 0x18]
mov byte [esp + 0x13], al
cmp byte [esp + 0x13], 0
movzx eax, word [edi + 0x10]
mov dword [esp + 0x68], edx
jne 0x101a215c
add eax, 7
shr eax, 3
jmp 0x101a217e
cmp byte [esp + 0x13], 3
jne 0x101a2168
shl eax, 2
jmp 0x101a217e
cmp byte [esp + 0x13], 4
jne 0x101a2178
lea eax, [eax*2 + 2]
jmp 0x101a217b
add eax, 3
and eax, 0xfffffffc
mov esi, dword [esp + 0x74]
sub esi, dword [esp + 0x6c]
mov edi, dword [edi]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x78]
sub eax, dword [esp + 0x70]
mov dword [esp + 0x24], edi
mov dword [esp + 0x14], eax
test eax, eax
jle 0x101a2302
lea ebx, [edx + 8]
nop word [eax + eax]
xor edx, edx
test esi, esi
jle 0x101a22c6
cmp esi, 0x10
jb 0x101a22b1
lea eax, [esi - 1]
lea ecx, [ebx - 8]
lea eax, [edi + eax*4]
cmp ecx, eax
ja 0x101a21dd
lea eax, [esi - 1]
add eax, ecx
cmp eax, edi
jae 0x101a22b1
mov eax, esi
and eax, 0x8000000f
jns 0x101a21eb
dec eax
or eax, 0xfffffff0
inc eax
mov ecx, esi
sub ecx, eax
mov eax, 0x18
movd xmm1, eax
lea eax, [edi + 0x20]
nop dword [eax + eax]
movups xmm0, xmmword [eax - 0x20]
lea eax, [eax + 0x40]
psrld xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x103007f0]
packuswb xmm0, xmm0
movd dword [edx + ebx - 8], xmm0
movups xmm0, xmmword [eax - 0x50]
psrld xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x103007f0]
packuswb xmm0, xmm0
movd dword [edx + ebx - 4], xmm0
movups xmm0, xmmword [eax - 0x40]
psrld xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x103007f0]
packuswb xmm0, xmm0
movd dword [edx + ebx], xmm0
movups xmm0, xmmword [eax - 0x30]
psrld xmm0, xmm1
pshuflw xmm0, xmm0, 0xd8
pshufhw xmm0, xmm0, 0xd8
pshufd xmm0, xmm0, 0xd8
pand xmm0, xmmword [0x103007f0]
packuswb xmm0, xmm0
movd dword [edx + ebx + 4], xmm0
add edx, 0x10
cmp edx, ecx
jl 0x101a2200
cmp edx, esi
jge 0x101a22c2
mov al, byte [edi + edx*4 + 3]
mov byte [edx + ebx - 8], al
inc edx
cmp edx, esi
jl 0x101a22b5
mov ecx, dword [esp + 0x18]
cmp esi, ecx
jge 0x101a22e9
sub ecx, esi
lea edi, [esi - 8]
mov edx, ecx
add edi, ebx
shr ecx, 2
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov edi, dword [esp + 0x24]
mov ecx, dword [esp + 0x18]
add edi, dword [esp + 0x20]
add ebx, ecx
sub dword [esp + 0x14], 1
mov dword [esp + 0x24], edi
jne 0x101a21b0
mov ebx, dword [esp + 0x40]
movss xmm0, dword [ebx + 0x14]
lea edx, [esp + 0xa0]
mov ecx, dword [ebx + 0x40]
movss dword [esp + 0xa0], xmm0
movss xmm0, dword [ebx + 0x18]
movss dword [esp + 0xa4], xmm0
movss xmm0, dword [ebx + 0x1c]
movss dword [esp + 0xac], xmm0
movss xmm0, dword [ebx + 0x20]
movss dword [esp + 0xb0], xmm0
movaps xmm0, xmmword [0x10300880]
push 0
push edx
mov dword [esp + 0xb0], 0
lea edx, [esp + 0x70]
movups xmmword [esp + 0xbc], xmm0
mov dword [esp + 0xcc], 0x80
mov eax, dword [ecx]
push edx
lea edx, [esp + 0x90]
push edx
mov eax, dword [eax + 0x14]
call eax
test al, al
je 0x101a245e
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x90]
sub ecx, dword [esp + 0x88]
mov edi, dword [esp + 0x94]
movzx esi, word [edx + 0x10]
movzx eax, word [edx + 0x12]
cmp esi, ecx
cmovle ecx, esi
sub edi, dword [esp + 0x8c]
cmp eax, edi
mov dword [esp + 0x24], ecx
cmovle edi, eax
mov al, byte [edx + 0x18]
test al, al
jne 0x101a23cd
add esi, 7
shr esi, 3
jmp 0x101a23e9
cmp al, 3
jne 0x101a23d6
shl esi, 2
jmp 0x101a23e9
cmp al, 4
jne 0x101a23e3
lea esi, [esi*2 + 2]
jmp 0x101a23e6
add esi, 3
and esi, 0xfffffffc
cmp dword [esp + 0x9c], 2
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x14], eax
mov eax, dword [edx]
mov dword [esp + 0x1c], eax
jne 0x101a240e
lea edi, [edi + edi*2]
sub edi, 1
js 0x101a243c
push ecx
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x28]
add esp, 0xc
add ebx, dword [esp + 0x14]
add eax, esi
sub edi, 1
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], eax
jns 0x101a2413
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x101a244a
push ebx
call dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
add esp, 4
mov eax, dword [esp + 0x40]
mov edx, dword [eax + 0x64]
test edx, edx
je 0x101a245e
lea ecx, [esp + 0x68]
call fcn.101a13a0
mov eax, dword [esp + 0xc8]
lea ecx, [esp + 0xd0]
cmp eax, ecx
je 0x101a1f81
test eax, eax
je 0x101a1f81
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push eax
call ebx
add esp, 4
jmp 0x101a1f87
call sub.api_ms_win_crt_runtime_l1_1_0.dll_abort
call sub.api_ms_win_crt_runtime_l1_1_0.dll_abort
int3