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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4cc
mov eax, dword [0x1036900c]
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 0x101a1d2d
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.101a0e00
mov al, byte [esp + 0x60]
mov ecx, edi
mov dword [ebx + 0x40], esi
cmp al, byte [ecx + 0x18]
jne 0x101a1cf6
mov eax, dword [ecx]
mov dword [esp + 0x48], eax
jmp 0x101a1d29
lea ecx, [esp + 0x48]
call fcn.101a0910
mov esi, eax
test esi, esi
je 0x101a1d23
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 0x101a1d25
test edx, edx
je 0x101a236d
jmp 0x101a1d25
xor edx, edx
mov dword [esp + 0x48], edx
lea edi, [esp + 0x48]
cmp byte [ebx + 0x48], 0
je 0x101a1ef9
call fcn.10194ae0
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.10194ae0
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.101a23c0
lea eax, [esp + 0x84]
mov ecx, edi
push eax
call fcn.101a0870
cmp dword [ebx + 0x44], 0
je 0x101a1ea1
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 0x101a1deb
jg 0x101a1de2
test ecx, ecx
je 0x101a1deb
cdq
cmp eax, ecx
jne 0x101a1deb
cmp edx, esi
je 0x101a1ded
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.101ced00
test al, al
jne 0x101a1e8c
mov ecx, dword [esp + 0x28]
or esi, 0xffffffff
test ecx, ecx
je 0x101a1e40
lea eax, [ecx + 4]
mov edx, esi
lock xadd dword [eax], edx
cmp edx, 1
jne 0x101a1e40
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], 0
test ecx, ecx
je 0x101a1e61
lea eax, [ecx + 4]
lock xadd dword [eax], esi
cmp esi, 1
jne 0x101a1e61
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 0x101a1e75
push eax
call ebx
add esp, 4
mov ecx, dword [esp + 0x4d4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.102af895
mov esp, ebp
pop ebp
ret 4
mov edx, dword [ebx + 0x54]
test edx, edx
je 0x101a1eb8
lea ecx, [esp + 0x84]
call fcn.101a1280
jmp 0x101a1eb8
lea eax, [ebx + 0x4c]
push eax
lea edx, [esp + 0x38]
lea ecx, [esp + 0x88]
call fcn.101a1440
add esp, 4
mov ecx, dword [esp + 0x28]
or esi, 0xffffffff
test ecx, ecx
je 0x101a1ed6
lea eax, [ecx + 4]
mov edx, esi
lock xadd dword [eax], edx
cmp edx, 1
jne 0x101a1ed6
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], 0
test ecx, ecx
je 0x101a1f01
lea eax, [ecx + 4]
lock xadd dword [eax], esi
cmp esi, 1
jne 0x101a1f01
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x101a1f01
mov eax, dword [ebx]
mov ecx, ebx
push edi
call dword [eax + 0xc]
cmp dword [ebx + 0x40], 0
je 0x101a1e61
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.101a0870
cmp dword [esp + 0x80], 3
jne 0x101a21e2
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 0x101a1f88
jg 0x101a1f7b
test esi, esi
je 0x101a1f88
mov eax, esi
cdq
cmp eax, esi
jne 0x101a1f88
cmp edx, dword [esp + 0x14]
je 0x101a1f8a
xor esi, esi
mov eax, 0x400
cmp esi, eax
cmovb esi, eax
cmp esi, dword [esp + 0xcc]
je 0x101a2017
mov eax, dword [esp + 0xc8]
lea edx, [esp + 0xd0]
cmp eax, edx
je 0x101a1fc8
test eax, eax
je 0x101a1fc8
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 0x101a1fe7
lea edx, [esp + 0xd0]
mov dword [esp + 0xcc], esi
mov dword [esp + 0xc8], edx
jmp 0x101a201e
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 0x101a1fff
test edx, edx
je 0x101a2372
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x18], ecx
mov dword [esp + 0xc8], edx
mov dword [esp + 0xcc], esi
jmp 0x101a201e
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 0x101a203c
add eax, 7
shr eax, 3
jmp 0x101a205e
cmp byte [esp + 0x13], 3
jne 0x101a2048
shl eax, 2
jmp 0x101a205e
cmp byte [esp + 0x13], 4
jne 0x101a2058
lea eax, [eax*2 + 2]
jmp 0x101a205b
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 0x101a21e2
lea ebx, [edx + 8]
nop word [eax + eax]
xor edx, edx
test esi, esi
jle 0x101a21a6
cmp esi, 0x10
jb 0x101a2191
lea eax, [esi - 1]
lea ecx, [ebx - 8]
lea eax, [edi + eax*4]
cmp ecx, eax
ja 0x101a20bd
lea eax, [esi - 1]
add eax, ecx
cmp eax, edi
jae 0x101a2191
mov eax, esi
and eax, 0x8000000f
jns 0x101a20cb
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 [0x102ff770]
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 [0x102ff770]
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 [0x102ff770]
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 [0x102ff770]
packuswb xmm0, xmm0
movd dword [edx + ebx + 4], xmm0
add edx, 0x10
cmp edx, ecx
jl 0x101a20e0
cmp edx, esi
jge 0x101a21a2
mov al, byte [edi + edx*4 + 3]
mov byte [edx + ebx - 8], al
inc edx
cmp edx, esi
jl 0x101a2195
mov ecx, dword [esp + 0x18]
cmp esi, ecx
jge 0x101a21c9
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 0x101a2090
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 [0x102ff800]
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 0x101a233e
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 0x101a22ad
add esi, 7
shr esi, 3
jmp 0x101a22c9
cmp al, 3
jne 0x101a22b6
shl esi, 2
jmp 0x101a22c9
cmp al, 4
jne 0x101a22c3
lea esi, [esi*2 + 2]
jmp 0x101a22c6
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 0x101a22ee
lea edi, [edi + edi*2]
sub edi, 1
js 0x101a231c
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 0x101a22f3
mov ebx, dword [esp + 0x84]
test ebx, ebx
je 0x101a232a
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 0x101a233e
lea ecx, [esp + 0x68]
call fcn.101a1280
mov eax, dword [esp + 0xc8]
lea ecx, [esp + 0xd0]
cmp eax, ecx
je 0x101a1e61
test eax, eax
je 0x101a1e61
mov ebx, dword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
push eax
call ebx
add esp, 4
jmp 0x101a1e67
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