Function at 0x4546b0
Capabilities:
Check if file exists
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x549100
mov eax, dword fs:[0]
push eax
sub esp, 0x50
mov eax, dword [0x579aa4]
xor eax, esp
mov dword [esp + 0x4c], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x579aa4]
xor eax, esp
push eax
lea eax, [esp + 0x64]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x1c], ebx
test ebx, ebx
je 0x454d4a
mov eax, dword [0x57d4ac]
mov edx, dword [eax + 0xc]
mov ecx, 0x57d4ac
call edx
lea esi, [eax + 0x10]
mov dword [esp + 0x20], esi
mov dword [esp + 0x6c], 0
mov eax, dword [esi - 8]
mov ecx, 1
sub ecx, dword [esi - 4]
sub eax, 0x400
or eax, ecx
mov ebp, 2
jge 0x454739
push 0x400
lea ecx, [esp + 0x24]
call fcn.00405870
mov esi, dword [esp + 0x20]
xor eax, eax
push eax
lea ecx, [esp + 0x28]
mov dword [esi - 0xc], 0x400
push ecx
mov word [esi + 0x800], ax
mov byte [esp + 0x23], 1
call fcn.00405ab0
mov eax, dword [eax]
add esp, 8
push 0x55c8c4
push eax
push esi
call dword [sym.imp.SHLWAPI.dll_PathCombineW]
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x45478b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
push esi
call edi
test eax, eax
jne 0x4547ec
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x400
push esi
push eax
call ebx
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str.config.ini
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push esi
call edi
test eax, eax
jne 0x4547e8
push 0x400
push esi
push eax
call ebx
push esi
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
push str...config.ini
push esi
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
push esi
call edi
test eax, eax
jne 0x4547e8
mov byte [esp + 0x1b], al
mov ebx, dword [esp + 0x1c]
mov edx, dword [0x57d4ac]
mov eax, dword [edx + 0xc]
mov ecx, 0x57d4ac
call eax
lea ecx, [eax + 0x10]
mov dword [esp + 0x14], ecx
mov byte [esp + 0x6c], 1
mov eax, dword [ecx - 8]
mov edx, 1
sub edx, dword [ecx - 4]
add eax, 0xffffff80
or eax, edx
jge 0x45482c
push 0x80
lea ecx, [esp + 0x18]
call fcn.00405870
mov ecx, dword [esp + 0x14]
mov dword [ecx - 0xc], 0x80
mov eax, dword [esp + 0x14]
xor edx, edx
cmp byte [esp + 0x1b], 1
mov word [eax + 0x100], dx
jne 0x454865
push esi
push 0x80
push ecx
push 0x55cd84
push str.language
push 0x55c8f8
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
jmp 0x454875
push 2
push 0x55c8dc
lea ecx, [esp + 0x1c]
call fcn.004056d0
lea ecx, [esp + 0x14]
call fcn.00449970
mov ecx, eax
call fcn.004499e0
mov ecx, dword [esp + 0x14]
push str.zh_tw
push ecx
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454b1a
mov edx, dword [esp + 0x14]
push 0x55ee38
push edx
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454b1a
mov eax, dword [esp + 0x14]
push str.zh_cn
push eax
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454b16
mov ecx, dword [esp + 0x14]
push 0x55ee4c
push ecx
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454b16
mov edx, dword [esp + 0x14]
push 0x55ee54
push edx
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454b0f
mov eax, dword [esp + 0x14]
push 0x55c8dc
push eax
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454b0f
mov ecx, dword [esp + 0x14]
push 0x55c96c
push ecx
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454b08
mov edx, dword [esp + 0x14]
push 0x55ee5c
push edx
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454b08
mov eax, dword [esp + 0x14]
push str.pt_br
push eax
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454b01
mov ecx, dword [esp + 0x14]
push 0x55cc3c
push ecx
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454b01
mov edx, dword [esp + 0x14]
push str.es_419
push edx
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454afa
mov eax, dword [esp + 0x14]
push 0x55cc44
push eax
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454afa
mov ecx, dword [esp + 0x14]
push 0x55cc4c
push ecx
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454af3
mov edx, dword [esp + 0x14]
push 0x55ee80
push edx
call fcn.0050ed1f
add esp, 8
test eax, eax
je 0x454af3
mov eax, dword [esp + 0x14]
push 0x55cc14
push eax
call fcn.0050ed1f
add esp, 8
test eax, eax
jne 0x454a0f
lea ebp, [eax + 0xb]
jmp 0x454b1f
mov ecx, dword [esp + 0x14]
push 0x55cc1c
push ecx
call fcn.0050ed1f
add esp, 8
test eax, eax
jne 0x454a2d
lea ebp, [eax + 0xc]
jmp 0x454b1f
mov edx, dword [esp + 0x14]
push 0x55ee88
push edx
call fcn.0050ed1f
add esp, 8
test eax, eax
jne 0x454a4b
lea ebp, [eax + 0xd]
jmp 0x454b1f
mov eax, dword [esp + 0x14]
push 0x55ee90
push eax
call fcn.0050ed1f
add esp, 8
test eax, eax
jne 0x454a69
lea ebp, [eax + 0xe]
jmp 0x454b1f
mov ecx, dword [esp + 0x14]
push 0x55cc54
push ecx
call fcn.0050ed1f
add esp, 8
test eax, eax
jne 0x454a87
lea ebp, [eax + 0xf]
jmp 0x454b1f
mov edx, dword [esp + 0x14]
push 0x55c9b8
push edx
call fcn.0050ed1f
add esp, 8
test eax, eax
jne 0x454aa2
lea ebp, [eax + 0x10]
jmp 0x454b1f
mov eax, dword [esp + 0x14]
push 0x55cc54
push eax
call fcn.0050ed1f
add esp, 8
test eax, eax
jne 0x454abd
lea ebp, [eax + 0xf]
jmp 0x454b1f
mov ecx, dword [esp + 0x14]
push 0x55cc34
push ecx
call fcn.0050ed1f
add esp, 8
test eax, eax
jne 0x454ad8
lea ebp, [eax + 3]
jmp 0x454b1f
mov edx, dword [esp + 0x14]
push 0x55cc2c
push edx
call fcn.0050ed1f
add esp, 8
test eax, eax
jne 0x454b1f
lea ebp, [eax + 0x11]
jmp 0x454b1f
mov ebp, 8
jmp 0x454b1f
mov ebp, 9
jmp 0x454b1f
mov ebp, 0xa
jmp 0x454b1f
mov ebp, 7
jmp 0x454b1f
mov ebp, 2
jmp 0x454b1f
xor ebp, ebp
jmp 0x454b1f
mov ebp, 1
mov eax, dword [esi - 8]
push eax
push esi
call fcn.0050cd69
mov dword [esi - 0xc], eax
xor ecx, ecx
mov word [esi + eax*2], cx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax - 8]
push ecx
push eax
call fcn.0050cd69
mov edx, dword [esp + 0x24]
mov dword [edx - 0xc], eax
mov edx, dword [esp + 0x24]
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, 7
xor edi, edi
add esp, 0x10
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edi
mov word [esp + 0x2c], cx
xor edx, edx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], edi
mov word [esp + 0x48], dx
mov byte [esp + 0x6c], 3
cmp ebp, 0x12
ja case.0x454b85.4
jmp dword [ebp*4 + 0x454d6c]
push 0x55ee98
lea ecx, [esp + 0x2c]
call fcn.00403040
push 0x55eef8
lea ecx, [esp + 0x48]
call fcn.00403040
jmp 0x454c3f
push 0x55ef08
lea ecx, [esp + 0x2c]
call fcn.00403040
push 0x55ef94
lea ecx, [esp + 0x48]
call fcn.00403040
jmp 0x454c3f
push str.360_Total_Security_files_have_been_damaged.__nPlease_reinstall_360_Total_Security_and_scan_for_viruses.__nDamaged_documents:
jmp 0x454bb2
push 0x55f0b8
jmp 0x454bb2
push str.Os_arquivos_do_360_Total_Security_foram_danificados.__nReinstale_o_360_Total_Security_e_fa
jmp 0x454bb2
push str.360_Total_Security_dosyalar
jmp 0x454bb2
push str.Los_archivos_de_360_Total_Security_han_sido_da
jmp 0x454bb2
push 0x55f5b8
jmp 0x454bb2
push str.360_Total_Security_____.__n360_Total_Security___________.__n_:
jmp 0x454bb2
push str.360_Total_Security
jmp 0x454bb2
push 0x55f878
jmp 0x454bb2
push str.Les_fichiers_de_360_Total_Security_ont
jmp 0x454bb2
push str.I_file_di_360_Total_Security_sono_stati_danneggiati._nReinstalla_360_Total_Security_e_avvia_una_scansione_dei_virus._nDocumenti_danneggiati:
jmp 0x454bb2
push str.Pliki_aplikacji_360_Total_Security_zosta
jmp 0x454bb2
push 0x7b
push str.360_Total_Security_files_have_been_damaged.__nPlease_reinstall_360_Total_Security_and_scan_for_viruses.__nDamaged_documents:
lea ecx, [esp + 0x30]
call fcn.004033b0
push 0x12
push 0x55ef94
lea ecx, [esp + 0x4c]
call fcn.004033b0
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
cmp cx, di
jne 0x454c44
sub eax, edx
sar eax, 1
push eax
push ebx
lea ecx, [esp + 0x30]
call fcn.00402f00
mov ebp, dword [esp + 0x2c]
mov eax, 8
cmp dword [esp + 0x40], eax
jae 0x454c71
lea ebp, [esp + 0x2c]
mov edi, dword [esp + 0x48]
cmp dword [esp + 0x5c], eax
jae 0x454c7f
lea edi, [esp + 0x48]
push 0x14
push edi
push ebp
call dword [sym.imp.USER32.dll_GetActiveWindow]
mov ebx, dword [sym.imp.USER32.dll_MessageBoxW]
push eax
call ebx
cmp eax, 6
je 0x454ca7
test eax, eax
jne 0x454cac
push 0x14
push edi
push ebp
push eax
call ebx
cmp eax, 6
jne 0x454cac
call fcn.004775c0
mov ebx, 8
cmp dword [esp + 0x5c], ebx
jb 0x454cc4
mov eax, dword [esp + 0x48]
push eax
call fcn.0050c4ec
add esp, 4
xor ecx, ecx
mov edi, 7
mov dword [esp + 0x5c], edi
mov dword [esp + 0x58], 0
mov word [esp + 0x48], cx
cmp dword [esp + 0x40], ebx
jb 0x454cef
mov edx, dword [esp + 0x2c]
push edx
call fcn.0050c4ec
add esp, 4
xor eax, eax
mov word [esp + 0x2c], ax
mov byte [esp + 0x6c], al
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x40], edi
mov dword [esp + 0x3c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x454d26
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esi, 0xfffffff0
mov dword [esp + 0x6c], 0xffffffff
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x454d4a
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov ecx, dword [esp + 0x64]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x4c]
xor ecx, esp
call fcn.0050c75f
add esp, 0x5c
ret