Function at 0x10022020
Capabilities:
Get common file path

Disassembly:
push 0xffffffffffffffff
push 0x10131396
mov eax, dword fs:[0]
push eax
sub esp, 0x248
mov eax, dword [0x101636d0]
xor eax, esp
mov dword [esp + 0x240], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101636d0]
xor eax, esp
push eax
lea eax, [esp + 0x25c]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x26c]
mov esi, dword [ebp + 0x17c]
test esi, esi
je 0x10022071
call fcn.100223a0
push 0xc
call fcn.100cfcae
add esp, 4
test eax, eax
je 0x10022095
mov dword [eax], 0
mov dword [eax + 4], 0xffffffff
mov dword [eax + 8], 0
jmp 0x10022097
xor eax, eax
mov dword [ebp + 0x17c], eax
call fcn.100680e0
cmp word [eax + 0x4d4], 0
lea esi, [eax + 0x4d4]
jne 0x100220d8
mov edi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push esi
push 0
push 0
push 0x23
push 0
call edi
test eax, eax
je 0x100220d8
push esi
push 1
push 0
push 0x23
push 0
call edi
test eax, eax
je 0x100220d8
xor esi, esi
mov ebx, esi
lea edi, [esp + 0x14]
call fcn.1004b160
mov eax, str.SogouInputComponentsPicfaceJson
mov esi, edi
mov dword [esp + 0x264], 0
call fcn.1004a0c0
push 0
mov ecx, edi
call fcn.1004a5a0
mov eax, edi
push eax
mov ebx, str.SGPicFaceDT.json
call fcn.1004a120
cmp byte [esp + 0x126], 0
mov edx, dword [esp + 0x120]
lea ecx, [esp + 0x18]
jne 0x10022127
mov ecx, edx
mov eax, dword [ebp + 0x17c]
add ecx, 4
xor edi, edi
cmp ecx, edi
je 0x1002214a
push eax
call fcn.100565b0
add esp, 4
test al, al
jne 0x1002216c
mov edx, dword [esp + 0x120]
cmp byte [esp + 0x126], 0
jne 0x10022165
lea ecx, [esp + 0x18]
cmp edx, ecx
je 0x10022165
push edx
call fcn.100cf89b
add esp, 4
xor al, al
jmp 0x1002236e
mov eax, dword [ebp + 0x17c]
mov ecx, dword [eax]
cmp ecx, edi
mov ebx, dword [eax + 4]
jg 0x100221a4
cmp byte [esp + 0x126], 0
jne 0x10022165
mov eax, dword [esp + 0x120]
lea edx, [esp + 0x18]
cmp eax, edx
je 0x10022165
push eax
call fcn.100cf89b
add esp, 4
xor al, al
jmp 0x1002236e
cmp ebx, edi
jl 0x100221ac
cmp ebx, ecx
jl 0x100221b1
mov dword [eax + 4], edi
xor ebx, ebx
mov esi, dword [ebp + 0x134]
test esi, esi
je 0x100221d5
call fcn.10020b40
mov eax, dword [ebp + 0x17c]
mov ecx, dword [ebp + 0x134]
push eax
push ecx
call fcn.1001ef80
mov edi, eax
mov esi, dword [ebp + 0x14c]
test esi, esi
je 0x10022278
call fcn.10020b40
mov edx, dword [ebp + 0x17c]
mov eax, dword [ebp + 0x14c]
push edi
push edx
push eax
call fcn.10020730
mov ecx, dword [ebp + 0x14c]
cmp dword [ecx + 0x124], 0
mov esi, dword [ebp + 0x154]
jle 0x1002224a
mov al, 1
call fcn.1007d620
mov esi, dword [ebp + 0x158]
mov al, 1
call fcn.1007d620
mov esi, dword [ebp + 0x15c]
mov al, 1
call fcn.1007d620
mov esi, dword [ebp + 0x160]
mov al, 1
call fcn.1007d620
push 0
mov ecx, ebp
call fcn.10021dc0
jmp 0x10022278
xor al, al
call fcn.1007d620
mov esi, dword [ebp + 0x158]
xor al, al
call fcn.1007d620
mov esi, dword [ebp + 0x15c]
xor al, al
call fcn.1007d620
mov esi, dword [ebp + 0x160]
xor al, al
call fcn.1007d620
mov eax, dword [ebp + 0x17c]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov ecx, dword [eax + edx*8 + 4]
mov esi, dword [eax + edx*8]
lea eax, [eax + edx*8]
push ecx
lea edi, [esp + 0x130]
call fcn.10062630
mov byte [esp + 0x264], 1
cmp byte [esp + 0x248], 0
mov eax, 1
mov dword [ebp + 0x2bc], eax
mov dword [ebp + 0x2c0], eax
mov dword [ebp + 0x18c], eax
mov dword [ebp + 0x190], esi
lea eax, [esp + 0x138]
jne 0x100222d8
mov eax, dword [esp + 0x134]
add eax, 4
lea edx, [ebp + 0x194]
call fcn.10062710
mov ecx, dword [ebp + 0x134]
mov eax, dword [ecx + 0x124]
cmp ebx, eax
jge 0x10022301
mov edx, dword [ecx + 0x120]
mov ebx, dword [edx + ebx*4]
jmp 0x10022312
sub ebx, eax
mov eax, dword [ebp + 0x14c]
mov ecx, dword [eax + 0x120]
mov ebx, dword [ecx + ebx*4]
push ebx
mov ecx, ebp
call fcn.1001e680
cmp byte [esp + 0x248], 0
mov dword [esp + method.t_str.virtual_0], vtable.t_str.0
jne 0x1002234a
mov eax, dword [esp + 0x134]
lea edx, [esp + 0x138]
cmp eax, edx
je 0x1002234a
push eax
call fcn.100cf89b
add esp, 4
cmp byte [esp + 0x126], 0
jne 0x1002236c
mov eax, dword [esp + 0x120]
lea ecx, [esp + 0x18]
cmp eax, ecx
je 0x1002236c
push eax
call fcn.100cf89b
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x25c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x240]
xor ecx, esp
call fcn.100cf604
add esp, 0x254
ret 4