Function at 0x42cb60
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4f95d3
mov eax, dword fs:[0]
push eax
sub esp, 0x2c4
mov eax, dword [0x57b070]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
call fcn.00466680
cmp word [eax + 0xaea], 0
lea esi, [eax + 0xaea]
jne 0x42cbc9
mov edi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push esi
push 0
push 0
push 0x23
push 0
call edi
test eax, eax
je 0x42cbc9
push esi
push 1
push 0
push 0x23
push 0
call edi
test eax, eax
je 0x42cbc9
xor esi, esi
push 0
push 0
push 0
push 0
push 0
push esi
lea ecx, [ebp - 0x268]
call fcn.00462ac0
push 0
push 0
push 0
push 0
push 0
push str.SogouInputComponentsSGKaomojiJson
lea ecx, [ebp - 0x138]
mov dword [ebp - 4], 0
call fcn.00462ac0
cmp byte [ebp - 0x1c], 0
lea esi, [ebp - 0x12c]
mov ecx, dword [ebp - 0x264]
cmove esi, dword [ebp - 0x130]
add esi, 4
test ecx, ecx
je 0x42cc3a
cmp byte [ebp - 0x14c], 0
lea eax, [ebp - 0x25c]
cmove eax, dword [ebp - 0x260]
cmp word [eax + ecx*2 + 2], 0x5c
je 0x42cc4a
push 0x5528b0
lea ecx, [ebp - 0x268]
call fcn.004620f0
push esi
lea ecx, [ebp - 0x268]
call fcn.004620f0
cmp byte [ebp - 0x1c], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x42cc7f
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x12c]
cmp eax, ecx
je 0x42cc7f
push eax
call fcn.004ac7ec
add esp, 4
push 0
push 0
push 0
push 0
push 0
push str.Collect.json
lea ecx, [ebp - 0x138]
call fcn.00462ac0
cmp byte [ebp - 0x1c], 0
lea esi, [ebp - 0x12c]
mov ecx, dword [ebp - 0x264]
cmove esi, dword [ebp - 0x130]
add esi, 4
test ecx, ecx
je 0x42ccd3
cmp byte [ebp - 0x14c], 0
lea eax, [ebp - 0x25c]
cmove eax, dword [ebp - 0x260]
cmp word [eax + ecx*2 + 2], 0x5c
je 0x42cce3
push 0x5528b0
lea ecx, [ebp - 0x268]
call fcn.004620f0
push esi
lea ecx, [ebp - 0x268]
call fcn.004620f0
cmp byte [ebp - 0x1c], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x42cd18
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x12c]
cmp eax, ecx
je 0x42cd18
push eax
call fcn.004ac7ec
add esp, 4
cmp byte [ebp - 0x14c], 0
lea eax, [ebp - 0x25c]
cmove eax, dword [ebp - 0x260]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x42cfa9
shr eax, 4
not al
and al, 1
je 0x42cfa9
mov byte [ebp - 0x278], 0
mov dword [ebp - 0x27c], 0
mov byte [ebp - 0x274], 0
mov dword [ebp - 0x270], 0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x25c]
cmp byte [ebp - 0x14c], 0
lea ecx, [ebp - 0x274]
cmove eax, dword [ebp - 0x260]
add eax, 4
push eax
call fcn.00424500
mov edi, dword [ebp - 0x270]
test edi, edi
je 0x42cf84
cmp byte [edi + 8], 6
jne 0x42cf84
mov ecx, edi
xor esi, esi
call fcn.0041dd70
test eax, eax
je 0x42cf77
nop
cmp esi, 0x15e
jge 0x42cf77
push esi
mov ecx, edi
call fcn.0041dde0
push eax
lea ecx, [ebp - 0x290]
call fcn.0041d680
push ecx
push str.global_id
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 3
call fcn.0041dfe0
push eax
lea ecx, [ebp - 0x2d0]
call fcn.0041d680
push ecx
push str.label_id
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 4
call fcn.0041dfe0
push eax
lea ecx, [ebp - 0x2c0]
call fcn.0041d680
push ecx
push 0x552928
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 5
call fcn.0041dfe0
push eax
lea ecx, [ebp - 0x2b0]
call fcn.0041d680
push ecx
push str.content
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 6
call fcn.0041dfe0
push eax
lea ecx, [ebp - 0x2a0]
call fcn.0041d680
lea ecx, [ebp - 0x134]
mov dword [ebp - 0x140], 0
mov dword [ebp - 0x13c], 0
mov dword [ebp - 0x138], 0
call fcn.00461c60
lea edx, [ebp - 0x140]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x2d0]
call fcn.00424df0
lea edx, [ebp - 0x13c]
lea ecx, [ebp - 0x2c0]
call fcn.00424df0
lea edx, [ebp - 0x26c]
mov dword [ebp - 0x26c], 0
lea ecx, [ebp - 0x2b0]
call fcn.00424df0
push ecx
lea edx, [ebp - 0x134]
lea ecx, [ebp - 0x2a0]
call fcn.00424bb0
mov eax, dword [ebp - 0x26c]
add esp, 4
mov dword [ebp - 0x138], eax
call fcn.0042e450
lea ecx, [ebp - 0x140]
push ecx
lea ecx, [eax + 0x30]
call fcn.0042def0
cmp byte [ebp - 0x18], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x42cf2c
mov eax, dword [ebp - 0x12c]
lea ecx, [ebp - 0x128]
cmp eax, ecx
je 0x42cf2c
push eax
call fcn.004ac7ec
add esp, 4
lea ecx, [ebp - 0x2a0]
call fcn.0041d7c0
lea ecx, [ebp - 0x2b0]
call fcn.0041d7c0
lea ecx, [ebp - 0x2c0]
call fcn.0041d7c0
lea ecx, [ebp - 0x2d0]
call fcn.0041d7c0
lea ecx, [ebp - 0x290]
mov byte [ebp - 4], 2
call fcn.0041d7c0
mov ecx, edi
inc esi
call fcn.0041dd70
cmp esi, eax
jb 0x42cdc0
call fcn.0042e450
mov bl, 1
mov byte [eax + 0x4c], 1
jmp 0x42cf86
xor bl, bl
test edi, edi
je 0x42cf9c
mov ecx, edi
call fcn.0041d7c0
push 0x10
push edi
call fcn.004a3815
add esp, 8
lea ecx, [ebp - 0x27c]
call fcn.004643f0
jmp 0x42cfab
xor bl, bl
cmp byte [ebp - 0x14c], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x42cfd7
mov eax, dword [ebp - 0x260]
lea ecx, [ebp - 0x25c]
cmp eax, ecx
je 0x42cfd7
push eax
call fcn.004ac7ec
add esp, 4
mov al, bl
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a35cb
mov esp, ebp
pop ebp
ret