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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6dc998
mov eax, dword fs:[0]
push eax
sub esp, 0x53c
mov eax, dword [0x7ce4e4]
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.0049f040
cmp word [eax + 0xd46], 0
lea esi, [eax + 0xd46]
jne 0x47dae9
mov edi, dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
push esi
push 0
push 0
push 0x23
push 0
call edi
test eax, eax
je 0x47dae9
push esi
push 1
push 0
push 0x23
push 0
call edi
test eax, eax
je 0x47dae9
xor esi, esi
push 0
push 0
push 0
push 0
push 0
push esi
lea ecx, [ebp - 0x138]
call fcn.0049a8e0
push 0
push 0
push 0
push 0
push 0
push str.SogouInputComponentsSGKaomojiJson
lea ecx, [ebp - 0x390]
mov dword [ebp - 4], 0
call fcn.0049a8e0
cmp byte [ebp - 0x274], 0
lea esi, [ebp - 0x384]
mov ecx, dword [ebp - 0x134]
cmove esi, dword [ebp - 0x388]
add esi, 4
test ecx, ecx
je 0x47db5a
cmp byte [ebp - 0x1c], 0
lea eax, [ebp - 0x12c]
cmove eax, dword [ebp - 0x130]
cmp word [eax + ecx*2 + 2], 0x5c
je 0x47db6a
push 0x785c68
lea ecx, [ebp - 0x138]
call fcn.00499e00
push esi
lea ecx, [ebp - 0x138]
call fcn.00499e00
cmp byte [ebp - 0x274], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x47dba2
mov eax, dword [ebp - 0x388]
lea ecx, [ebp - 0x384]
cmp eax, ecx
je 0x47dba2
push eax
call fcn.005cff1c
add esp, 4
push 0
push 0
push 0
push 0
push 0
push str.Collect.json
lea ecx, [ebp - 0x4b8]
call fcn.0049a8e0
cmp byte [ebp - 0x39c], 0
lea esi, [ebp - 0x4ac]
mov ecx, dword [ebp - 0x134]
cmove esi, dword [ebp - 0x4b0]
add esi, 4
test ecx, ecx
je 0x47dbf6
cmp byte [ebp - 0x1c], 0
lea eax, [ebp - 0x12c]
cmove eax, dword [ebp - 0x130]
cmp word [eax + ecx*2 + 2], 0x5c
je 0x47dc06
push 0x785c68
lea ecx, [ebp - 0x138]
call fcn.00499e00
push esi
lea ecx, [ebp - 0x138]
call fcn.00499e00
cmp byte [ebp - 0x39c], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x47dc3e
mov eax, dword [ebp - 0x4b0]
lea ecx, [ebp - 0x4ac]
cmp eax, ecx
je 0x47dc3e
push eax
call fcn.005cff1c
add esp, 4
cmp byte [ebp - 0x1c], 0
lea eax, [ebp - 0x12c]
cmove eax, dword [ebp - 0x130]
add eax, 4
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x47decc
shr eax, 4
not al
test al, 1
je 0x47decc
mov byte [ebp - 0x4c8], 0
mov dword [ebp - 0x4cc], 0
mov byte [ebp - 0x4c4], 0
mov dword [ebp - 0x4c0], 0
mov byte [ebp - 4], 2
lea eax, [ebp - 0x12c]
cmp byte [ebp - 0x1c], 0
lea ecx, [ebp - 0x4c4]
cmove eax, dword [ebp - 0x130]
add eax, 4
push eax
call fcn.004746a0
mov edi, dword [ebp - 0x4c0]
test edi, edi
je 0x47dea7
mov ecx, edi
call fcn.00511ea0
cmp eax, 6
jne 0x47dea7
mov ecx, edi
xor esi, esi
call fcn.00511ce0
test eax, eax
je 0x47de9a
cmp esi, 0x15e
jge 0x47de9a
push esi
mov ecx, edi
call fcn.0050fb90
push eax
lea ecx, [ebp - 0x4e8]
call fcn.0050f1e0
push str.global_id
lea ecx, [ebp - 0x4e8]
mov byte [ebp - 4], 3
call fcn.0050fd90
push eax
lea ecx, [ebp - 0x548]
call fcn.0050f1e0
push str.label_id
lea ecx, [ebp - 0x4e8]
mov byte [ebp - 4], 4
call fcn.0050fd90
push eax
lea ecx, [ebp - 0x530]
call fcn.0050f1e0
push 0x785ce0
lea ecx, [ebp - 0x4e8]
mov byte [ebp - 4], 5
call fcn.0050fd90
push eax
lea ecx, [ebp - 0x518]
call fcn.0050f1e0
push str.content
lea ecx, [ebp - 0x4e8]
mov byte [ebp - 4], 6
call fcn.0050fd90
push eax
lea ecx, [ebp - 0x500]
call fcn.0050f1e0
lea ecx, [ebp - 0x25c]
mov dword [ebp - 0x268], 0
mov dword [ebp - 0x264], 0
mov dword [ebp - 0x260], 0
call fcn.00499a50
lea edx, [ebp - 0x268]
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x548]
call fcn.00475270
lea edx, [ebp - 0x264]
lea ecx, [ebp - 0x530]
call fcn.00475270
lea edx, [ebp - 0x4bc]
mov dword [ebp - 0x4bc], 0
lea ecx, [ebp - 0x518]
call fcn.00475270
push ecx
lea edx, [ebp - 0x25c]
lea ecx, [ebp - 0x500]
call fcn.00474f60
mov eax, dword [ebp - 0x4bc]
add esp, 4
mov dword [ebp - 0x260], eax
call fcn.0047f520
lea ecx, [ebp - 0x268]
push ecx
lea ecx, [eax + 0x30]
call fcn.0047f060
cmp byte [ebp - 0x140], 0
mov dword [ebp - method.t_str.virtual_0], vtable.t_str.0
jne 0x47de4f
mov eax, dword [ebp - 0x254]
lea ecx, [ebp - 0x250]
cmp eax, ecx
je 0x47de4f
push eax
call fcn.005cff1c
add esp, 4
lea ecx, [ebp - 0x500]
call fcn.0050f7f0
lea ecx, [ebp - 0x518]
call fcn.0050f7f0
lea ecx, [ebp - 0x530]
call fcn.0050f7f0
lea ecx, [ebp - 0x548]
call fcn.0050f7f0
lea ecx, [ebp - 0x4e8]
mov byte [ebp - 4], 2
call fcn.0050f7f0
mov ecx, edi
inc esi
call fcn.00511ce0
cmp esi, eax
jb 0x47dce4
call fcn.0047f520
mov bl, 1
mov byte [eax + 0x4c], 1
jmp 0x47dea9
xor bl, bl
test edi, edi
je 0x47debf
mov ecx, edi
call fcn.0050f7f0
push 0x18
push edi
call fcn.005be247
add esp, 8
lea ecx, [ebp - 0x4cc]
call fcn.0049c790
jmp 0x47dece
xor bl, bl
cmp byte [ebp - 0x1c], 0
mov dword [ebp - 0x138], vtable.t_str.0
jne 0x47def7
mov eax, dword [ebp - 0x130]
lea ecx, [ebp - 0x12c]
cmp eax, ecx
je 0x47def7
push eax
call fcn.005cff1c
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.005be209
mov esp, ebp
pop ebp
ret