Function at 0x101a1e30
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 0x101a1edd
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.101a0fb0
mov al, byte [esp + 0x60]
mov ecx, edi
mov dword [ebx + 0x40], esi
cmp al, byte [ecx + 0x18]
jne 0x101a1ea6
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
jmp 0x101a1ed9
lea ecx, [esp + 0x48]
call fcn.101a0ac0
mov esi, eax
test esi, esi
je 0x101a1ed3
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 0x101a1ed5
test edx, edx
je 0x101a251d
jmp 0x101a1ed5
xor edx, edx
mov dword [esp + 0x48], edx
lea edi, [esp + 0x48]
cmp byte [ebx + 0x48], 0
je 0x101a20a9
call fcn.10194c70
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.10194c70
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.101a2570
lea eax, [esp + 0x84]
mov ecx, edi
push eax
call fcn.101a0a20
cmp dword [ebx + 0x44], 0
je 0x101a2051
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 0x101a1f9b
jg 0x101a1f92
test ecx, ecx
je 0x101a1f9b
cdq
cmp eax, ecx
jne 0x101a1f9b
cmp edx, esi
je 0x101a1f9d
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.101cee90
test al, al
jne 0x101a203c
mov ecx, dword [esp + 0x28]
or esi, 0xffffffff
test ecx, ecx
je 0x101a1ff0
lea eax, [ecx + 4]
mov edx, esi
lock xadd dword [eax], edx
cmp edx, 1
jne 0x101a1ff0
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], 0
test ecx, ecx
je 0x101a2011
lea eax, [ecx + 4]
lock xadd dword [eax], esi
cmp esi, 1
jne 0x101a2011
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 0x101a2025
push eax
call ebx
add esp, 4
mov ecx, dword [esp + 0x4d4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.102af9d5
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x54]
test edx, edx
je 0x101a2068
lea ecx, [esp + 0x84]
call fcn.101a1430
jmp 0x101a2068
lea eax, [ebx + 0x4c]
push eax
lea edx, [esp + 0x38]
lea ecx, [esp + 0x88]
call fcn.101a15f0
add esp, 4
mov ecx, dword [esp + 0x28]
or esi, 0xffffffff
test ecx, ecx
je 0x101a2086
lea eax, [ecx + 4]
mov edx, esi
lock xadd dword [eax], edx
cmp edx, 1
jne 0x101a2086
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], 0
test ecx, ecx
je 0x101a20b1
lea eax, [ecx + 4]
lock xadd dword [eax], esi
cmp esi, 1
jne 0x101a20b1
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x101a20b1
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0xc]
cmp dword [ebx + 0x40], 0
je 0x101a2011
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.101a0a20
cmp dword [esp + 0x80], 3
jne 0x101a2392
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 0x101a2138
jg 0x101a212b
test esi, esi
je 0x101a2138
mov eax, esi
cdq
cmp eax, esi
jne 0x101a2138
cmp edx, dword [esp + 0x14]
je 0x101a213a
xor esi, esi
mov eax, 0x400
cmp esi, eax
cmovb esi, eax
cmp esi, dword [esp + 0xcc]
je 0x101a21c7
mov eax, dword [esp + 0xc8]
lea edx, [esp + 0xd0]
cmp eax, edx
je 0x101a2178
test eax, eax
je 0x101a2178
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 0x101a2197
lea edx, [esp + 0xd0]
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edx
jmp 0x101a21ce
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 0x101a21af
test edx, edx
je 0x101a2522
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], esi
jmp 0x101a21ce
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 0x101a21ec
add eax, 7
shr eax, 3
jmp 0x101a220e
cmp byte [esp + 0x13], 3
jne 0x101a21f8
shl eax, 2
jmp 0x101a220e
cmp byte [esp + 0x13], 4
jne 0x101a2208
lea eax, [eax*2 + 2]
jmp 0x101a220b
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 0x101a2392
lea ebx, [edx + 8]
nop word [eax + eax]
xor edx, edx
test esi, esi
jle 0x101a2356
cmp esi, 0x10
jb 0x101a2341
lea eax, [esi - 1]
lea ecx, [ebx - 8]
lea eax, [edi + eax*4]
cmp ecx, eax
ja 0x101a226d
lea eax, [esi - 1]
add eax, ecx
cmp eax, edi
jae 0x101a2341
mov eax, esi
and eax, 0x8000000f
jns 0x101a227b
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 0x101a2290
cmp edx, esi
jge 0x101a2352
mov al, byte [edi + edx*4 + 3]
mov byte [edx + ebx - 8], al
inc edx
cmp edx, esi
jl 0x101a2345
mov ecx, dword [esp + 0x18]
cmp esi, ecx
jge 0x101a2379
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 0x101a2240
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 0x101a24ee
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 0x101a245d
add esi, 7
shr esi, 3
jmp 0x101a2479
cmp al, 3
jne 0x101a2466
shl esi, 2
jmp 0x101a2479
cmp al, 4
jne 0x101a2473
lea esi, [esi*2 + 2]
jmp 0x101a2476
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 0x101a249e
lea edi, [edi + edi*2]
sub edi, 1
js 0x101a24cc
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 0x101a24a3
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x101a24da
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 0x101a24ee
lea ecx, [esp + 0x68]
call fcn.101a1430
mov eax, dword [esp + 0xc8]
lea ecx, [esp + 0xd0]
cmp eax, ecx
je 0x101a2011
test eax, eax
je 0x101a2011
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push eax
call ebx
add esp, 4
jmp 0x101a2017
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