Function at 0x10019170
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1003241a
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x10046270]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x14], edi
mov dword [ebp - 4], 0
mov dword [edi], vtable.CStringTokenizerW.0
mov dword [edi + 4], vtable.CStringBufferW.0
mov dword [edi + 0x10], 0
mov dword [edi + 0xc], 0
mov dword [edi + 8], 0
lea eax, [edi + 0x14]
mov dword [eax], vtable.CStringBufferW.0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
mov dword [edi + 0x24], vtable.CArrayPtr.0
mov dword [edi + 0x28], 0
mov dword [edi + 0x2c], 0
mov dword [edi + 0x30], 0xa
mov dword [edi + 0x34], 0
lea ecx, [edi + 0x3c]
mov dword [ecx], vtable.CMapPtr.0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 1
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 0
xor ebx, ebx
xor esi, esi
mov dword [ebp - 0x30], vtable.CStringBufferW.0
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], esi
mov byte [ebp - 4], 6
mov edx, dword [eax + 0xc]
cmp edx, dword [ebp + 0x18]
je 0x1001928f
test edx, edx
je 0x1001926a
push edx
call fcn.1001df51
add esp, 4
lea eax, [edi + 0x14]
push dword [ebp + 0x10]
mov ecx, eax
push dword [ebp + 0x18]
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
call fcn.1000a470
lea ecx, [edi + 0x3c]
mov eax, dword [ecx]
push 0x25
call dword [eax + 4]
xor ecx, ecx
mov dword [ebp - 0x18], ecx
cmp dword [edi + 0x18], ecx
jle 0x100192d1
cmp ecx, dword [edi + 0x18]
sbb eax, eax
inc eax
je 0x100192ac
xor eax, eax
jmp 0x100192b3
mov eax, dword [edi + 0x20]
movzx eax, word [eax + ecx*2]
mov edx, dword [edi + 0x3c]
movzx eax, ax
push 0
push eax
lea ecx, [edi + 0x3c]
call dword [edx + 8]
mov ecx, dword [ebp - 0x18]
inc ecx
mov dword [ebp - 0x18], ecx
cmp ecx, dword [edi + 0x18]
jl 0x100192a3
mov ebx, dword [ebp - 0x24]
mov edx, dword [ebp + 8]
mov dword [edi + 0x38], 0
mov eax, dword [edx + 4]
xor ecx, ecx
mov dword [ebp - 0x18], ecx
test eax, eax
jle 0x1001959f
mov dword [ebp - 0x20], 4
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [ebp - 0x1c], eax
je 0x10019300
xor eax, eax
jmp 0x10019307
mov eax, dword [edx + 0xc]
movzx eax, word [eax + ecx*2]
push eax
mov ecx, edi
call fcn.10019660
test eax, eax
je 0x100194dd
test ebx, ebx
je 0x1001942b
test esi, esi
je 0x1001942b
push 0x10
call fcn.1001d3e4
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
test ebx, ebx
je 0x100193a6
mov byte [ebp - 4], 8
mov dword [ebx + 4], 0
mov dword [ebx], vtable.CStringBufferW.0
mov dword [ebx + 0xc], 0
mov dword [ebx + 8], 0
mov dword [ebx + 4], 0
cmp esi, 0xffffffff
jne 0x1001937f
mov esi, dword [ebp - 0x24]
lea ecx, [esi + 2]
jmp 0x10019370
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10019370
sub esi, ecx
sar esi, 1
test esi, esi
je 0x100193a8
push esi
mov ecx, ebx
call fcn.1000a840
push esi
push dword [ebp - 0x24]
push dword [ebx + 8]
push dword [ebx + 0xc]
call fcn.1001df56
add esp, 0x10
mov dword [ebx + 4], esi
inc esi
mov dword [ebx + 8], esi
jmp 0x100193a8
xor ebx, ebx
mov byte [ebp - 4], 6
push dword [ebp - 0x24]
call fcn.1001df51
mov ecx, dword [edi + 0x28]
mov edx, dword [edi + 0x2c]
xor esi, esi
inc ecx
add esp, 4
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], esi
cmp ecx, edx
jb 0x1001941c
mov eax, dword [edi + 0x30]
add eax, edx
add eax, ecx
xor ecx, ecx
mov dword [edi + 0x2c], eax
mul dword [ebp - 0x20]
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1001ccbf
mov edi, eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x28]
shl ecx, 2
push ecx
push dword [eax + 0x34]
push edi
call fcn.10022830
mov eax, dword [ebp - 0x14]
push dword [eax + 0x34]
call fcn.1001df51
mov eax, dword [ebp - 0x14]
add esp, 0x14
mov dword [eax + 0x34], edi
mov edi, eax
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x34]
mov dword [eax + ecx*4], ebx
inc dword [edi + 0x28]
mov ebx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp + 8]
inc ecx
mov eax, dword [edx + 4]
mov dword [ebp - 0x18], ecx
cmp ecx, eax
jl 0x100192f4
test ebx, ebx
je 0x1001959f
test esi, esi
je 0x1001959f
push 0x10
call fcn.1001d3e4
add esp, 4
mov dword [ebp + 8], eax
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x1001952a
mov byte [ebp - 4], 0xa
mov dword [eax + 4], 0
mov dword [eax], vtable.CStringBufferW.0
mov dword [eax + 0xc], 0
mov dword [eax + 8], 0
mov dword [eax + 4], 0
cmp esi, 0xffffffff
jne 0x100194b2
mov esi, ebx
lea ecx, [esi + 2]
jmp 0x100194a0
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x100194a0
mov eax, dword [ebp + 8]
sub esi, ecx
sar esi, 1
test esi, esi
je 0x10019531
push esi
mov ecx, eax
call fcn.1000a840
mov edx, dword [ebp + 8]
push esi
push ebx
push dword [edx + 8]
push dword [edx + 0xc]
call fcn.1001df56
mov eax, dword [ebp + 8]
add esp, 0x10
mov dword [eax + 4], esi
inc esi
mov dword [eax + 8], esi
jmp 0x10019531
cmp dword [ebp - 0x1c], 0
je 0x100194ec
mov dword [ebp - 0x1c], 0
jmp 0x100194fc
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0x18]
mov eax, dword [eax + 0xc]
movzx eax, word [eax + ecx*2]
mov dword [ebp - 0x1c], eax
inc esi
push esi
lea ecx, [ebp - 0x30]
call fcn.1000a840
mov esi, dword [ebp - 0x2c]
test eax, eax
je 0x10019428
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebp - 0x1c]
mov word [ebx + esi*2], ax
inc esi
xor eax, eax
mov dword [ebp - 0x2c], esi
mov word [ebx + esi*2], ax
jmp 0x1001942b
mov dword [ebp + 8], 0
push ebx
mov byte [ebp - 4], 6
call fcn.1001df51
mov ecx, dword [edi + 0x28]
mov edx, dword [edi + 0x2c]
xor ebx, ebx
inc ecx
add esp, 4
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], ebx
mov dword [ebp - 0x2c], ebx
cmp ecx, edx
jb 0x10019590
mov eax, dword [edi + 0x30]
add eax, edx
add eax, ecx
xor ecx, ecx
mov dword [edi + 0x2c], eax
mul dword [ebp - 0x20]
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.1001ccbf
mov ecx, dword [edi + 0x28]
shl ecx, 2
push ecx
push dword [edi + 0x34]
mov esi, eax
push esi
call fcn.10022830
push dword [edi + 0x34]
call fcn.1001df51
add esp, 0x14
mov dword [edi + 0x34], esi
mov ecx, dword [edi + 0x28]
mov eax, dword [edi + 0x34]
mov edx, dword [ebp + 8]
mov dword [eax + ecx*4], edx
inc dword [edi + 0x28]
mov dword [ebp - 0x30], vtable.CStringBufferW.0
mov byte [ebp - 4], 0xb
test ebx, ebx
je 0x100195b7
push ebx
call fcn.1001df51
add esp, 4
mov dword [ebp + 0xc], vtable.CStringBufferW.0
mov dword [ebp - 4], 0xc
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x100195d5
push eax
call fcn.1001df51
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14