joyce8/EMBER2024-capa huggingface dataset:
Function at 0x468b2f
Capabilities:
Check if file exists
Get common file path

Disassembly:
push 0x270
mov eax, 0x5e17fd
call fcn.00593b07
push dword [ebp + 0x10]
mov ebx, dword [ebp + 0xc]
xor esi, esi
mov edi, dword [ebp + 8]
sub esp, 0x18
mov ecx, esp
mov dword [ebp - 0x27c], edi
push ebx
mov dword [ecx + 0x10], esi
mov dword [ecx + 0x14], esi
call fcn.00404267
lea ecx, [ebp - 0x278]
call fcn.00430ab2
add esp, 0x18
mov dword [ebp - 4], esi
cmp dword [eax + 0x14], 8
jb 0x468b79
mov eax, dword [eax]
push eax
push 0x226
push str.HealthMgr::NotifyPopDialog
push str.__s__d___NotifyPopDialog_data_s__msgId_d
call fcn.0040a649
add esp, 0x14
lea ecx, [ebp - 0x278]
call fcn.0040b67e
xor eax, eax
mov dword [ebp - 0x220], esi
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
lea ecx, [ebp - 0x230]
mov dword [ebp - 4], 1
call fcn.004c2d8a
mov esi, str.serverpopmsg_
push esi
call fcn.005baec0
pop ecx
push eax
push esi
lea ecx, [ebp - 0x230]
call fcn.0040b220
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x468c1c
cmp dword [ebp - 0x21c], 8
lea eax, [ebp - 0x230]
cmovae eax, dword [ebp - 0x230]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call fcn.005aa3d0
add esp, 0xc
lea eax, [ebp - 0x218]
cmp dword [ebp - 0x21c], 8
lea esi, [ebp - 0x230]
cmovae esi, dword [ebp - 0x230]
push eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
push 0x640618
push esi
call dword [sym.imp.KERNEL32.dll_GetTempFileNameW]
lea eax, [ebp - 0x218]
push eax
lea ecx, [ebp - 0x260]
call fcn.0040b0d5
push 0x61ee2e
lea ecx, [ebp - 0x248]
mov byte [ebp - 4], 2
call fcn.004045aa
lea edx, [ebp - 0x248]
mov byte [ebp - 4], 3
mov ecx, ebx
call fcn.004166a4
cmp dword [ebp - 0x234], 0x10
lea edx, [ebp - 0x248]
push dword [ebp - 0x238]
cmovae edx, dword [ebp - 0x248]
lea ecx, [ebp - 0x260]
cmp dword [ebp - 0x24c], 8
cmovae ecx, dword [ebp - 0x260]
call fcn.0041e2eb
sub esp, 0x14
lea eax, [ebp - 0x260]
mov ecx, esp
push eax
and dword [ecx + 0x10], 0
and dword [ecx + 0x14], 0
call fcn.0040b155
mov ecx, edi
call fcn.00430a1f
add esp, 0x18
lea ecx, [ebp - 0x248]
call fcn.00404812
lea ecx, [ebp - 0x260]
call fcn.0040b67e
lea ecx, [ebp - 0x230]
call fcn.0040b67e
mov eax, edi
call fcn.00593ab1
ret 0xc
Function at 0x46e3ba
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
cmp dword [0x6d2a40], 1
push esi
push edi
mov esi, ecx
jne 0x46e3e5
push 0x784
push str.HealthMgr::StartMangoTvReport
push str.__s__d___report_mangotv_thread_is_exists_
call fcn.0040a649
add esp, 0xc
jmp 0x46e440
lea eax, [ebp - 4]
xor edi, edi
push eax
push str.mango_tv_healthCheck
mov edx, str.Software360360huabaohuabao
mov dword [ebp - 4], edi
mov ecx, reloc.WS2_32.dll_accept
call fcn.00425cdd
cmp dword [ebp - 4], 1
pop ecx
pop ecx
jne 0x46e440
push 0x78c
push str.HealthMgr::StartMangoTvReport
push str.__s__d___start_report_heart_theard_
call fcn.0040a649
add esp, 0xc
mov dword [ebp - 8], edi
lea eax, [ebp - 8]
push eax
push edi
push esi
push 0x46d3a3
push edi
push edi
call fcn.005bb02f
add esp, 0x18
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
pop esi
leave
ret

Function at 0x46e444
Capabilities:
Read .ini file

Disassembly:
push 0x810
mov eax, 0x5e2305
call fcn.00593b07
mov edi, dword [ebp + 8]
xor eax, eax
mov esi, dword [ebp + 0x10]
push 0x800
mov dword [ebp - 0x81c], edi
push eax
mov dword [ebp - 0x814], eax
lea eax, [ebp - 0x810]
push eax
call fcn.005aa3d0
add esp, 0xc
lea eax, [ebp - 0x810]
push esi
push 0x400
push eax
xor esi, esi
push esi
push esi
push str.dotData
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
mov ebx, eax
mov dword [edi], esi
mov dword [edi + 4], esi
mov dword [edi + 8], esi
mov dword [ebp - 4], esi
mov dword [ebp - 0x814], 1
test ebx, ebx
je 0x46e503
push 2
mov eax, esi
xor ecx, ecx
pop esi
cmp word [ebp + esi - 0x812], cx
jne 0x46e4fb
lea ecx, [ebp - 0x810]
add ecx, eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x818], ecx
cmp dword [edi + 8], eax
je 0x46e4e8
push ecx
mov ecx, eax
call fcn.0040b0d5
add dword [edi + 4], 0x18
jmp 0x46e4f7
lea ecx, [ebp - 0x818]
push ecx
push eax
mov ecx, edi
call fcn.004794b0
mov eax, esi
xor ecx, ecx
add esi, 2
sub ebx, 1
jne 0x46e4ba
mov eax, edi
call fcn.00593ab1
ret 0xc

Function at 0x46e50d
Capabilities:
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x3f0
mov eax, dword [0x6c75ac]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 0x14]
lea eax, [ebp - 0x3ec]
push esi
mov esi, dword [ebp + 0x10]
push edi
mov edi, dword [ebp + 8]
push 0x3e8
push 0
push eax
mov dword [ebp - 0x3f0], edi
call fcn.005aa3d0
add esp, 0xc
cmp dword [esi + 0x14], 8
jb 0x46e550
mov esi, dword [esi]
push ebx
push 0x1f4
lea eax, [ebp - 0x3ec]
push eax
push 0
push esi
push str.dotData
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
test eax, eax
lea ecx, [ebp - 0x3ec]
mov edx, 0x62a4ac
cmove ecx, edx
push ecx
mov ecx, edi
call fcn.0040b0d5
mov ecx, dword [ebp - 4]
mov eax, edi
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005926d8
leave
ret 0x10
Function at 0x46e965
Capabilities:
Check if file exists

Disassembly:
push 0xb4
mov eax, 0x5e2418
call fcn.00593b07
push 0x62a4ac
lea ecx, [ebp - 0x44]
call fcn.0040b0d5
lea eax, [ebp - 0x44]
xor ebx, ebx
push eax
push str.Version
mov edx, str.Software360360huabao
mov dword [ebp - 4], ebx
mov ecx, reloc.WS2_32.dll_accept
call fcn.00425d08
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], 0xf
mov byte [ebp - 0x2c], bl
lea ecx, [ebp - 0x2c]
mov byte [ebp - 4], 1
call fcn.004d649c
push 8
pop edi
cmp dword [ebp - 0x30], edi
lea esi, [ebp - 0x44]
lea eax, [ebp - 0x2c]
cmovae esi, dword [ebp - 0x44]
sub esp, 0x10
mov ecx, esp
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00404267
lea ecx, [ebp - 0x8c]
call fcn.00430ab2
add esp, 0x18
cmp dword [eax + 0x14], edi
jb 0x46e9ed
mov eax, dword [eax]
mov edx, esi
mov ecx, eax
call fcn.004270e4
lea ecx, [ebp - 0x8c]
mov esi, eax
call fcn.0040b67e
test esi, esi
jne 0x46ea23
push 0x7e1
push str.HealthMgr::CheckExeVersion
push str.__s__d___exe_and_reg_version_is_same_
call fcn.0040a649
add esp, 0xc
jmp 0x46eb90
lea ecx, [ebp - 0x74]
call fcn.004ced2c
mov byte [ebp - 4], 2
cmp dword [ebp - 0x64], 0
jne 0x46ea51
push 0x7e6
push str.HealthMgr::CheckExeVersion
push str.__s__d___wstrInstallPath_is_empty
call fcn.0040a649
add esp, 0xc
jmp 0x46eb88
sub esp, 0x18
lea eax, [ebp - 0x2c]
mov ecx, esp
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00404267
lea ecx, [ebp - 0xbc]
call fcn.00430ab2
mov esi, eax
push 0x62aa1c
lea edx, [ebp - 0x74]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x8c]
call fcn.0041154e
add esp, 0x1c
push esi
mov edx, eax
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x5c]
call fcn.00420b1c
pop ecx
lea ecx, [ebp - 0x8c]
call fcn.0040b67e
lea ecx, [ebp - 0xbc]
mov byte [ebp - 4], 7
call fcn.0040b67e
cmp dword [ebp - 0x48], edi
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x46eadf
push 0x7ec
push str.HealthMgr::CheckExeVersion
push str.__s__d___wstrExePath_is_unexist
jmp 0x46eb78
cmp dword [ebp - 0x30], edi
lea esi, [ebp - 0x44]
lea eax, [ebp - 0x2c]
cmovae esi, dword [ebp - 0x44]
sub esp, 0x18
mov ecx, esp
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00404267
lea ecx, [ebp - 0xa4]
call fcn.00430ab2
add esp, 0x18
cmp dword [eax + 0x14], edi
jb 0x46eb12
mov eax, dword [eax]
mov edx, esi
mov ecx, eax
call fcn.004270e4
lea ecx, [ebp - 0xa4]
mov esi, eax
call fcn.0040b67e
test esi, esi
je 0x46eb80
sub esp, 0x18
lea eax, [ebp - 0x2c]
mov ecx, esp
push eax
mov dword [ecx + 0x10], ebx
mov dword [ecx + 0x14], ebx
call fcn.00404267
lea ecx, [ebp - 0xa4]
call fcn.00430ab2
push eax
push str.Version
mov edx, str.Software360360huabao
call fcn.00425fc2
add esp, 0x20
lea ecx, [ebp - 0xa4]
call fcn.0040b67e
push 0x7f2
push str.HealthMgr::CheckExeVersion
push str.__s__d___sync_exe_and_reg_version_finish_
call fcn.0040a649
add esp, 0xc
lea ecx, [ebp - 0x5c]
call fcn.0040b67e
lea ecx, [ebp - 0x74]
call fcn.0040b67e
lea ecx, [ebp - 0x2c]
call fcn.00404812
lea ecx, [ebp - 0x44]
call fcn.0040b67e
call fcn.00593ab1
ret
Function at 0x46f7d9
Capabilities:
Get common file path
Get disk size

Disassembly:
push 0x244
mov eax, 0x5e26ad
call fcn.00593b07
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x218]
push ebx
xor edi, edi
push eax
inc edi
call fcn.005aa3d0
add esp, 0xc
lea eax, [ebp - 0x218]
push edi
push 0x1a
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
cmp word [ebp - 0x218], bx
je 0x46f881
cmp word [ebp - 0x216], bx
je 0x46f881
xor eax, eax
mov word [ebp - 0x214], ax
lea eax, [ebp - 0x250]
push eax
push ebx
push ebx
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_GetDiskFreeSpaceExW]
test eax, eax
je 0x46f881
mov esi, dword [ebp - 0x250]
lea ecx, [ebp - 0x248]
mov eax, dword [ebp - 0x24c]
shrd esi, eax, 0x14
push 0x62a4ac
call fcn.0040b0d5
lea ecx, [ebp - 0x248]
call fcn.0040b67e
lea eax, [esi - 1]
mov ecx, 0x1f3
cmp ecx, eax
sbb edi, edi
neg edi
lea ecx, [ebp - 0x230]
call fcn.004251b3
mov esi, str.360browser_bkinfo
mov dword [ebp - 4], ebx
push esi
call fcn.005baec0
pop ecx
push eax
push esi
lea ecx, [ebp - 0x230]
call fcn.0040b220
lea ecx, [ebp - 0x230]
call fcn.00427f1a
push ebx
push 0x100000
push edx
push eax
call fcn.00593320
xor esi, esi
lea ecx, [ebp - 0x230]
cmp eax, 0x400
cmovle esi, edi
call fcn.0040b67e
mov eax, esi
call fcn.00593ab1
ret
Function at 0x472227
Capabilities:
Check if file exists

Disassembly:
push 0x5c
mov eax, 0x5e2bed
call fcn.00593b07
mov esi, ecx
mov bl, 1
test esi, esi
jne 0x472242
xor al, al
jmp 0x47235c
lea ecx, [esi + 0x3a0]
mov eax, dword [ecx + 4]
sub eax, dword [ecx]
push 0x34
cdq
pop edi
idiv edi
test eax, eax
je 0x47223b
xor eax, eax
mov dword [ebp - 0x64], eax
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 4], eax
lea eax, [ebp - 0x64]
cmp eax, ecx
je 0x472352
push dword [ebp - 0x68]
push dword [ecx + 4]
push dword [ecx]
mov ecx, eax
call fcn.00479a9e
mov eax, dword [ebp - 0x64]
cmp eax, dword [ebp - 0x60]
je 0x472352
lea edi, [esi + 0x35c]
lea esi, [eax + 4]
and dword [ebp - 0x18], 0
lea ecx, [ebp - 0x28]
and dword [ebp - 0x14], 0
push edi
call fcn.0040b155
push 0
mov edx, esi
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x40]
call fcn.00426805
pop ecx
mov byte [ebp - 4], 2
lea eax, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
lea ecx, [ebp - 0x28]
push dword [ebp - 0x30]
cmovae eax, dword [ebp - 0x40]
push eax
call fcn.0040b220
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x472314
cmp dword [ebp - 0x14], 8
lea edx, [ebp - 0x28]
lea ecx, [ebp - 0x58]
cmovae edx, dword [ebp - 0x28]
call fcn.00423490
lea eax, [ebp - 0x58]
push esi
push eax
call fcn.00423c0f
pop ecx
pop ecx
lea ecx, [ebp - 0x58]
test al, al
je 0x47233b
call fcn.00404812
jmp 0x472316
xor bl, bl
lea ecx, [ebp - 0x40]
call fcn.0040b67e
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 0
call fcn.0040b67e
add esi, 0x34
lea eax, [esi - 4]
cmp eax, dword [ebp - 0x60]
jne 0x472294
jmp 0x472352
xor bl, bl
call fcn.00404812
lea ecx, [ebp - 0x40]
call fcn.0040b67e
lea ecx, [ebp - 0x28]
call fcn.0040b67e
lea ecx, [ebp - 0x64]
call fcn.0040c229
mov al, bl
call fcn.00593ab1
ret
Function at 0x474aa0
Capabilities:
Check if file exists

Disassembly:
push 0x25c
mov eax, 0x5e3057
call fcn.00593b07
mov edx, str.UtilsDesktopRestDesktopRest.exe
lea ecx, [ebp - 0x268]
call fcn.0043746a
xor esi, esi
mov ecx, eax
push esi
mov dword [ebp - 4], esi
call fcn.00413c42
push eax
lea ecx, [ebp - 0x248]
call fcn.0040b0d5
lea ecx, [ebp - 0x268]
mov byte [ebp - 4], 2
call fcn.0040a4ed
cmp dword [ebp - 0x234], 8
lea eax, [ebp - 0x248]
mov ebx, str.HealthMgr::Report360HbSafeStat
cmovae eax, dword [ebp - 0x248]
push eax
push 0xef7
push ebx
push str.__s__d___HealthMgr::Report360HbSafeStat_strPath___s
call fcn.0040a649
add esp, 0x10
lea eax, [ebp - 0x248]
cmp dword [ebp - 0x234], 8
cmovae eax, dword [ebp - 0x248]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x474c91
push 0x208
lea eax, [ebp - 0x218]
push esi
push eax
call fcn.005aa3d0
add esp, 0xc
lea ecx, [ebp - 0x248]
cmp dword [ebp - 0x234], 8
lea edx, [ebp - 0x218]
cmovae ecx, dword [ebp - 0x248]
push 0x103
call fcn.0041e401
pop ecx
mov edx, str.12.0.1000.0
lea ecx, [ebp - 0x218]
call fcn.004270e4
test eax, eax
js 0x474c91
call fcn.004ca585
test eax, eax
jne 0x474c91
mov dword [ebp - 0x220], esi
mov dword [ebp - 0x21c], 7
mov word [ebp - 0x230], ax
lea eax, [ebp - 0x264]
mov byte [ebp - 4], 3
push eax
push str.RestIdleDelayTime
mov edx, str.Software360SoftMgrdesktoprestConfig
mov dword [ebp - 0x264], esi
mov ecx, reloc.WS2_32.dll_accept
call fcn.00425cdd
pop ecx
pop ecx
call fcn.00414a4f
test eax, eax
jne 0x474bff
mov esi, 0x62ad28
push esi
call fcn.005baec0
pop ecx
push eax
push esi
lea ecx, [ebp - 0x230]
call fcn.0040b566
cmp dword [ebp - 0x264], 0
je 0x474c18
mov esi, 0x62ad24
push esi
call fcn.005baec0
pop ecx
push eax
push esi
lea ecx, [ebp - 0x230]
call fcn.0040b566
cmp dword [ebp - 0x21c], 8
lea esi, [ebp - 0x230]
cmovae esi, dword [ebp - 0x230]
call fcn.00414a4f
push eax
push dword [ebp - 0x264]
push esi
push 0xf0c
push ebx
push str.__s__d___HealthMgr::Report360HbSafeStat_strRefer_s_dwIdleDelayTime_d_Has360SafeRest_d_user_close_d
call fcn.0040a649
lea eax, [ebp - 0x230]
push eax
lea eax, [ebp - 0x260]
push str.https:__dd.browser.360.cn_static_a_1317.5291.gif__referer
push eax
call fcn.00440e2c
add esp, 0x24
push 1
push 1
mov dl, 1
mov byte [ebp - 4], 4
lea ecx, [ebp - 0x260]
call fcn.004c6673
pop ecx
pop ecx
lea ecx, [ebp - 0x260]
call fcn.0040b67e
lea ecx, [ebp - 0x230]
call fcn.0040b67e
lea ecx, [ebp - 0x248]
call fcn.0040b67e
call fcn.00593ab1
ret
Function at 0x474ca2
Capabilities:
Create process on windows

Disassembly:
push 0x1c
mov eax, 0x5da8a2
call fcn.00593b07
lea ecx, [ebp - 0x28]
call fcn.004c3ac4
and dword [ebp - 4], 0
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
cmovae eax, dword [ebp - 0x28]
push eax
push 0xf2e
push str.HealthMgr::Update360Huabao
push str.__s__d___HealthMgr::Update360Huabao_strPath___s
call fcn.0040a649
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
call fcn.004302c7
add esp, 0x14
test eax, eax
je 0x474d19
cmp dword [ebp - 0x14], 8
lea eax, [ebp - 0x28]
push 1
cmovae eax, dword [ebp - 0x28]
push 0
push str.__update
push eax
push 0x6311f8
call dword [sym.imp.USER32.dll_GetDesktopWindow]
push eax
call dword [sym.imp.SHELL32.dll_ShellExecuteW]
lea ecx, [ebp - 0x28]
call fcn.0040b67e
call fcn.00593ab1
ret
Function at 0x477a5e
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push ecx
push esi
mov esi, ecx
call fcn.0041513a
test eax, eax
je 0x477a87
push 0x140d
push str.HealthMgr::OnGetHuabaoList
push str.__s__d___ProtectScreensaver_360safe_secore_return
call fcn.0040a649
add esp, 0xc
jmp 0x477aa1
xor ecx, ecx
lea eax, [ebp - 4]
push eax
push ecx
push esi
push 0x477aa4
push ecx
push ecx
mov dword [ebp - 4], ecx
call fcn.005bb02f
add esp, 0x18
pop esi
leave
ret

Function at 0x4785e8
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
mov ebx, ecx
push esi
push edi
cmp dword [ebx + 0x38], 0
je 0x47860f
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00407ce6
jmp 0x4786c4
mov eax, dword [ebx + 0x20]
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x10]
mov dword [esp + 0x18], esi
mov eax, dword [eax]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x14], eax
test eax, eax
je 0x478631
mov eax, dword [ebx + 0x30]
mov eax, dword [eax]
jmp 0x478633
xor eax, eax
cdq
mov dword [esp + 0xc], eax
mov ecx, edx
mov dword [esp + 0x10], ecx
test edi, edi
jl 0x4786b8
jg 0x478648
test esi, esi
je 0x4786b8
test ecx, ecx
jl 0x478691
jg 0x478652
test eax, eax
je 0x478691
cmp edi, ecx
jg 0x478666
jl 0x47865c
cmp esi, eax
jae 0x478666
mov eax, esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edi
push eax
push dword [ebp + 8]
push dword [esp + 0x1c]
call fcn.005aa530
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [ebx + 0x30]
add edx, ecx
sub esi, ecx
sbb edi, dword [esp + 0x10]
sub dword [eax], ecx
mov eax, dword [ebx + 0x20]
add dword [eax], ecx
jmp 0x478694
mov edx, dword [ebp + 8]
test edi, edi
jl 0x4786b8
jg 0x47869e
test esi, esi
je 0x4786b8
cmp dword [ebx + 0x4c], 0
je 0x4786b8
push dword [ebx + 0x4c]
push esi
push 1
push edx
call fcn.005bae68
add esp, 0x10
sub esi, eax
sbb edi, 0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
sub eax, esi
sbb edx, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x4786cd
Capabilities:
Read file on windows

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x14
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi + 0x38], 0
je 0x4786f4
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00407dc2
jmp 0x4787c3
mov eax, dword [edi + 0x1c]
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 0x10]
mov dword [esp + 0x18], esi
mov eax, dword [eax]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x14], eax
test eax, eax
je 0x478716
mov eax, dword [edi + 0x2c]
mov eax, dword [eax]
jmp 0x478718
xor eax, eax
cdq
mov dword [esp + 0xc], eax
mov ecx, edx
mov dword [esp + 0x10], ecx
test ebx, ebx
jl 0x4787b7
jg 0x478735
test esi, esi
je 0x4787b7
test ecx, ecx
jl 0x478782
jg 0x47873f
test eax, eax
je 0x478782
cmp ebx, ecx
jg 0x478753
jl 0x478749
cmp esi, eax
jae 0x478753
mov eax, esi
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], ebx
push eax
push dword [esp + 0x18]
push dword [ebp + 8]
call fcn.005aa530
mov ecx, dword [esp + 0x18]
add esp, 0xc
mov edx, dword [ebp + 8]
mov eax, dword [edi + 0x2c]
add edx, ecx
sub esi, ecx
mov dword [esp + 0xc], edx
sbb ebx, dword [esp + 0x10]
sub dword [eax], ecx
mov eax, dword [edi + 0x1c]
add dword [eax], ecx
jmp 0x478789
mov eax, dword [ebp + 8]
mov dword [esp + 0xc], eax
test ebx, ebx
jl 0x4787b7
jg 0x478793
test esi, esi
je 0x4787b7
cmp dword [edi + 0x4c], 0
je 0x4787b7
mov ecx, edi
call fcn.00478e19
push dword [edi + 0x4c]
push esi
push 1
push dword [esp + 0x18]
call fcn.005bc14b
add esp, 0x10
sub esi, eax
sbb ebx, 0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
sub eax, esi
sbb edx, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
Function at 0x478a25
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
mov eax, dword [0x6c75ac]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
or edi, 0xffffffff
mov esi, ecx
cmp ebx, edi
jne 0x478a4b
xor eax, eax
jmp 0x478b0d
mov eax, dword [esi + 0x20]
mov ecx, dword [eax]
test ecx, ecx
je 0x478a74
mov edx, dword [esi + 0x30]
mov eax, dword [edx]
add eax, ecx
cmp ecx, eax
jae 0x478a74
dec dword [edx]
mov eax, ebx
mov edx, dword [esi + 0x20]
mov esi, dword [edx]
lea ecx, [esi + 1]
mov dword [edx], ecx
mov byte [esi], bl
jmp 0x478b0d
cmp dword [esi + 0x4c], 0
je 0x478b0b
mov ecx, esi
call fcn.00478e19
mov ecx, dword [esi + 0x38]
mov al, bl
test ecx, ecx
jne 0x478aa0
push dword [esi + 0x4c]
push eax
call fcn.00467813
test al, al
pop ecx
pop ecx
cmovne edi, ebx
jmp 0x478b0b
mov byte [ebp - 0x28], al
lea eax, [ebp - 0x2c]
mov edx, dword [ecx]
push eax
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x34]
push eax
lea eax, [ebp - 0x27]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x1c]
test eax, eax
js 0x478b0b
cmp eax, 1
jle 0x478ada
cmp eax, 3
jne 0x478b0b
push dword [esi + 0x4c]
push dword [ebp - 0x28]
jmp 0x478a92
mov eax, dword [ebp - 0x2c]
lea ecx, [ebp - 0x24]
sub eax, ecx
mov dword [ebp - 0x30], eax
je 0x478afd
push dword [esi + 0x4c]
push eax
mov eax, ecx
push 1
push eax
call fcn.005bae68
add esp, 0x10
cmp dword [ebp - 0x30], eax
jne 0x478b0b
lea eax, [ebp - 0x28]
mov byte [esi + 0x3d], 1
cmp dword [ebp - 0x34], eax
mov eax, ebx
jne 0x478b0d
mov eax, edi
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.005926d8
leave
ret 4

Function at 0x478e3c
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
mov eax, dword [0x6c75ac]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
push edi
cmp dword [esi + 0x38], 0
je 0x478ebe
cmp byte [esi + 0x3d], 0
je 0x478ebe
mov eax, dword [esi]
push 0xffffffffffffffff
call dword [eax + 0xc]
cmp eax, 0xffffffff
je 0x478e90
mov ecx, dword [esi + 0x38]
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 4]
push eax
mov edx, dword [ecx]
lea eax, [ebp - 0x24]
push eax
lea eax, [esi + 0x40]
push eax
call dword [edx + 0x20]
sub eax, 0
je 0x478e94
sub eax, 1
je 0x478e98
dec eax
sub eax, 1
je 0x478ebe
xor al, al
jmp 0x478ec0
mov byte [esi + 0x3d], 0
mov edi, dword [ebp - 0x28]
lea eax, [ebp - 0x24]
sub edi, eax
je 0x478eb5
push dword [esi + 0x4c]
push edi
push 1
push eax
call fcn.005bae68
add esp, 0x10
cmp edi, eax
jne 0x478e90
cmp byte [esi + 0x3d], 0
sete al
jmp 0x478ec0
mov al, 1
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.005926d8
leave
ret
Function at 0x479e7a
Capabilities:
Create directory

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x214
mov eax, dword [0x6c75ac]
xor eax, esp
mov dword [esp + 0x210], eax
cmp dword [0x6d2c5c], 0
push ebx
push esi
push edi
mov esi, ecx
je 0x479f21
xor edi, edi
push edi
push 0x648c4c
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push str.C:_temp360huabao_d.log
mov ebx, 0x104
lea eax, [esp + 0x18]
push ebx
push eax
call fcn.0040b616
add esp, 0x10
lea eax, [esp + 0x10]
push edi
push accept
push 4
push edi
push 1
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [esi], eax
cmp eax, 0xffffffff
je 0x479efc
push 2
push edi
push edi
push eax
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
push ebx
lea eax, [esp + 0x14]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push str.start
mov ecx, esi
call fcn.0040a518
lea eax, [esp + 0x10]
mov ecx, esi
push eax
call fcn.0040a518
mov ecx, dword [esp + 0x21c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.005926d8
mov esp, ebp
pop ebp
ret

Function at 0x479f94
Capabilities:
Check if file exists
Copy file

Disassembly:
push 0x68
mov eax, 0x5e3910
call fcn.00593b07
lea ecx, [ebp - 0x58]
call fcn.004c3482
xor esi, esi
lea ecx, [ebp - 0x40]
push str.360ini.dll
mov edx, eax
mov dword [ebp - 4], esi
call fcn.0041151f
pop ecx
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 2
call fcn.0040b67e
push 8
pop edi
cmp dword [ebp - 0x2c], edi
lea eax, [ebp - 0x40]
mov ebx, str.CopyIniDllProc
cmovae eax, dword [ebp - 0x40]
push eax
push 0x87
push ebx
push str.__s__d___CopyIniDllProc_dstPath_s
call fcn.0040a649
push ecx
push ecx
mov ecx, esp
push str.installer360ini.dll
call fcn.0040b0d5
lea ecx, [ebp - 0x70]
call fcn.004c297a
add esp, 0x18
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], edi
jb 0x47a010
mov eax, dword [eax]
push eax
lea ecx, [ebp - 0x28]
call fcn.0040b0d5
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 5
call fcn.0040b67e
cmp dword [ebp - 0x14], edi
lea eax, [ebp - 0x28]
cmovae eax, dword [ebp - 0x28]
push eax
push 0x89
push ebx
push str.__s__d___CopyIniDllProc_oriPath_s
call fcn.0040a649
add esp, 0x10
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x47a070
push 0x8b
push ebx
push str.__s__d___oriPath_path_is_not_exists
call fcn.0040a649
add esp, 0xc
or esi, 0xffffffff
jmp 0x47a0a7
cmp dword [ebp - 0x2c], edi
lea ecx, [ebp - 0x40]
push esi
cmovae ecx, dword [ebp - 0x40]
lea eax, [ebp - 0x28]
cmp dword [ebp - 0x14], edi
push ecx
cmovae eax, dword [ebp - 0x28]
push eax
call dword [sym.imp.KERNEL32.dll_CopyFileW]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x8f
push ebx
push str.__s__d___CopyFile_oriPath_to_dstPath_res_d
call fcn.0040a649
add esp, 0x10
lea ecx, [ebp - 0x28]
call fcn.0040b67e
lea ecx, [ebp - 0x40]
call fcn.0040b67e
mov eax, esi
call fcn.00593ab1
ret 4