Function at 0x10062670
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1008df9a
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x100c90c0]
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 0x1006278f
test edx, edx
je 0x1006276a
push edx
call fcn.1006eaef
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.1003ea90
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 0x100627d1
cmp ecx, dword [edi + 0x18]
sbb eax, eax
inc eax
je 0x100627ac
xor eax, eax
jmp 0x100627b3
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 0x100627a3
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 0x10062ab4
mov dword [ebp - 0x20], 4
cmp ecx, eax
sbb eax, eax
inc eax
mov dword [ebp - 0x1c], eax
je 0x10062800
xor eax, eax
jmp 0x10062807
mov eax, dword [edx + 0xc]
movzx eax, word [eax + ecx*2]
push eax
mov ecx, edi
call fcn.10062b60
test eax, eax
je 0x100629dd
test ebx, ebx
je 0x1006292b
test esi, esi
je 0x1006292b
push 0x10
call fcn.1006dafd
mov ebx, eax
add esp, 4
mov dword [ebp - 0x1c], ebx
test ebx, ebx
je 0x100628a6
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 0x1006287f
mov esi, dword [ebp - 0x24]
lea ecx, [esi + 2]
jmp 0x10062870
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x10062870
sub esi, ecx
sar esi, 1
test esi, esi
je 0x100628a8
push esi
mov ecx, ebx
call fcn.1003f120
push esi
push dword [ebp - 0x24]
push dword [ebx + 8]
push dword [ebx + 0xc]
call fcn.1006fb74
add esp, 0x10
mov dword [ebx + 4], esi
inc esi
mov dword [ebx + 8], esi
jmp 0x100628a8
xor ebx, ebx
mov byte [ebp - 4], 6
push dword [ebp - 0x24]
call fcn.1006eaef
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 0x1006291c
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.1006dae0
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.10074e50
mov eax, dword [ebp - 0x14]
push dword [eax + 0x34]
call fcn.1006eaef
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 0x100627f4
test ebx, ebx
je 0x10062ab4
test esi, esi
je 0x10062aab
push 0x10
call fcn.1006dafd
add esp, 4
mov dword [ebp + 8], eax
mov dword [ebp - 0x1c], eax
test eax, eax
je 0x10062a2a
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 0x100629b2
mov esi, ebx
lea ecx, [esi + 2]
jmp 0x100629a0
mov ax, word [esi]
add esi, 2
test ax, ax
jne 0x100629a0
mov eax, dword [ebp + 8]
sub esi, ecx
sar esi, 1
test esi, esi
je 0x10062a31
push esi
mov ecx, eax
call fcn.1003f120
mov edx, dword [ebp + 8]
push esi
push ebx
push dword [edx + 8]
push dword [edx + 0xc]
call fcn.1006fb74
mov eax, dword [ebp + 8]
add esp, 0x10
mov dword [eax + 4], esi
inc esi
mov dword [eax + 8], esi
jmp 0x10062a31
cmp dword [ebp - 0x1c], 0
je 0x100629ec
mov dword [ebp - 0x1c], 0
jmp 0x100629fc
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.1003f120
mov esi, dword [ebp - 0x2c]
test eax, eax
je 0x10062928
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 0x1006292b
mov dword [ebp + 8], 0
push ebx
mov byte [ebp - 4], 6
call fcn.1006eaef
mov ecx, dword [edi + 0x28]
mov edx, dword [edi + 0x2c]
inc ecx
add esp, 4
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x2c], 0
cmp ecx, edx
jb 0x10062a9a
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.1006dae0
mov ecx, dword [edi + 0x28]
shl ecx, 2
push ecx
push dword [edi + 0x34]
mov esi, eax
push esi
call fcn.10074e50
push dword [edi + 0x34]
call fcn.1006eaef
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]
jmp 0x10062ab4
push ebx
call fcn.1006eaef
add esp, 4
mov eax, dword [ebp + 0x18]
mov dword [ebp + 0xc], vtable.CStringBufferW.0
test eax, eax
je 0x10062acb
push eax
call fcn.1006eaef
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