Function at 0x472a1e
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x98
mov eax, dword [0x4eb664]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov ebx, ecx
push str.Selfportect_start_r_n
push 0x4eee98
mov dword [ebp - 0x8c], ebx
call fcn.004738c9
pop ecx
pop ecx
push 0x4eb630
lea ecx, [ebp - 0x80]
call fcn.004044ee
lea eax, [ebx + 0x20]
push eax
lea ecx, [ebp - 0x80]
call fcn.00406bd9
lea eax, [ebp - 0x80]
push eax
call fcn.00468709
mov esi, str.Local_State
push esi
call fcn.0040481a
pop ecx
pop ecx
push eax
push esi
lea ecx, [ebp - 0x80]
call fcn.0041e1c3
push dword [ebp - 0x80]
lea ecx, [ebp - 0x1c]
call fcn.0040513a
cmp dword [ebp - 8], 8
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push 0xf
xor ebx, ebx
pop esi
test eax, eax
jne 0x472b5f
push 0x10
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x34], bl
call fcn.00449b05
pop ecx
test eax, eax
je 0x472ace
mov ecx, eax
call fcn.0047be18
jmp 0x472ad0
mov eax, ebx
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.0047e94e
cmp dword [ebp - 8], 8
pop ecx
pop ecx
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040513a
cmp dword [ebp - 0x20], 0x10
push dword [ebp - 0x24]
lea eax, [ebp - 0x34]
cmovae eax, dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x7c]
call fcn.0047a0b4
push eax
call fcn.0047b4f6
add esp, 0xc
lea ecx, [ebp - 0x7c]
mov esi, eax
call fcn.0047a0fe
push ebx
push 1
lea ecx, [ebp - 0x4c]
call fcn.00405ac5
cmp esi, 0xffffffff
jne 0x472b54
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
sub esp, 0x18
lea esi, [ebp - 0x1c]
push 6
pop ecx
mov edi, esp
push str.WriteFile__ws_errcode_d_r_n
push 0x4eee98
rep movsd dword es:[edi], dword [esi]
call fcn.004738c9
add esp, 0x24
lea ecx, [ebp - 0x34]
call fcn.004073c4
push 0xf
pop esi
cmp dword [ebp - 8], 8
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x4c]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x54], ebx
mov byte [ebp - 0x64], bl
call fcn.0040513a
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x7c]
call fcn.0047a0b4
push eax
call fcn.0047e315
pop ecx
pop ecx
lea ecx, [ebp - 0x7c]
mov bl, al
call fcn.0047a0fe
push 0
push 1
lea ecx, [ebp - 0x4c]
call fcn.00405ac5
test bl, bl
je 0x472d69
cmp dword [ebp - 0x50], 0x10
lea eax, [ebp - 0x64]
cmovae eax, dword [ebp - 0x64]
mov dword [ebp - 0x94], eax
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x90], eax
lea eax, [ebp - 0x94]
push eax
call fcn.0047e3a0
mov edi, eax
pop ecx
mov dword [ebp - 0x88], edi
test edi, edi
je 0x472d8f
mov edx, dword [edi]
and dword [ebp - 0x84], 0
lea eax, [ebp - 0x84]
push eax
mov ecx, edi
call dword [edx + 0x24]
push str.safe.selfprotect
lea ecx, [ebp - 0x4c]
call fcn.00407395
mov ecx, dword [ebp - 0x84]
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0x4c]
push eax
call fcn.0047c552
mov bl, al
neg bl
lea ecx, [ebp - 0x4c]
sbb bl, bl
call fcn.004073c4
inc bl
je 0x472d3a
xor eax, eax
cmp byte [ebp + 8], al
setne al
push eax
push str.dict_formentry__Get_no_exists_bool___d_r_n
push 0x4eee98
call fcn.004738c9
add esp, 0xc
lea ecx, [ebp - 0x4c]
push str.safe.selfprotect
call fcn.00407395
push dword [ebp + 8]
mov ecx, dword [ebp - 0x84]
lea eax, [ebp - 0x4c]
push eax
call fcn.0047cb7f
lea ecx, [ebp - 0x4c]
call fcn.004073c4
lea eax, [ebp - 0x34]
push eax
xor ebx, ebx
push edi
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x24], ebx
mov byte [ebp - 0x34], bl
call fcn.0047e94e
cmp dword [ebp - 8], 8
pop ecx
pop ecx
lea eax, [ebp - 0x1c]
cmovae eax, dword [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x4c]
call fcn.0040513a
cmp dword [ebp - 0x20], 0x10
push dword [ebp - 0x24]
lea eax, [ebp - 0x34]
cmovae eax, dword [ebp - 0x34]
push eax
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0x7c]
call fcn.0047a0b4
push eax
call fcn.0047b4f6
add esp, 0xc
lea ecx, [ebp - 0x7c]
mov esi, eax
call fcn.0047a0fe
push ebx
push 1
lea ecx, [ebp - 0x4c]
call fcn.00405ac5
cmp esi, 0xffffffff
jne 0x472d0e
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
sub esp, 0x18
lea esi, [ebp - 0x1c]
push 6
pop ecx
mov edi, esp
push str.WriteFile__ws_errcode_d_r_n
push 0x4eee98
rep movsd dword es:[edi], dword [esi]
call fcn.004738c9
mov edi, dword [ebp - 0x88]
add esp, 0x24
mov ecx, dword [ebp - 0x8c]
lea eax, [ebp - 0x88]
push eax
add ecx, 0xd4
mov dword [ebp - 0x88], 1
call fcn.00472e7a
lea ecx, [ebp - 0x34]
call fcn.004073c4
jmp 0x472d5f
cmp dword [ebp - 8], 8
lea esi, [ebp - 0x1c]
cmovae esi, dword [ebp - 0x1c]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push esi
push str.ReadFileToString__ws_errcode_r_n
push 0x4eee98
call fcn.004738c9
add esp, 0x10
mov eax, dword [edi]
push 1
mov ecx, edi
call dword [eax]
jmp 0x472d8f
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
sub esp, 0x18
lea esi, [ebp - 0x1c]
push 6
pop ecx
mov edi, esp
push str.WriteFile__ws_errcode_d_r_n
push 0x4eee98
rep movsd dword es:[edi], dword [esi]
call fcn.004738c9
add esp, 0x24
push str.Selfportect_end_r_n
push 0x4eee98
call fcn.004738c9
pop ecx
pop ecx
lea ecx, [ebp - 0x64]
call fcn.004073c4
push 0
push 1
lea ecx, [ebp - 0x1c]
call fcn.00405ac5
mov ecx, dword [ebp - 0x80]
lea ecx, [ecx - 0x10]
call fcn.00404f8d
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0048f059
leave
ret 4