joyce8/EMBER2024-capa huggingface dataset:
Function at 0x438030
Capabilities:
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x220], 0
lea eax, [ebp - 0x220]
push eax
push 0x16
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov dword [ebp - 0x21c], eax
lea ecx, [ebp - 0x210]
push ecx
mov edx, dword [ebp - 0x220]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov dword [ebp - 0x214], eax
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x210]
push ecx
push 0x472db0
push 0x208
push 0x104
lea edx, [ebp - 0x210]
push edx
call fcn.004157ac
add esp, 0x18
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x218]
neg eax
sbb eax, eax
neg eax
sub eax, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret

Function at 0x4380e0
Capabilities:
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x220
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x220], 0
lea eax, [ebp - 0x220]
push eax
push 0x19
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov dword [ebp - 0x21c], eax
lea ecx, [ebp - 0x210]
push ecx
mov edx, dword [ebp - 0x220]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov dword [ebp - 0x214], eax
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x210]
push ecx
push 0x472da4
push 0x208
push 0x104
lea edx, [ebp - 0x210]
push edx
call fcn.004157ac
add esp, 0x18
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0x218], eax
mov eax, dword [ebp - 0x218]
neg eax
sbb eax, eax
neg eax
sub eax, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret

Function at 0x438190
Capabilities:
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x21c
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 8], eax
mov dword [ebp - 0x21c], 0
lea eax, [ebp - 0x21c]
push eax
push 0x1a
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov dword [ebp - 0x218], eax
lea ecx, [ebp - 0x210]
push ecx
mov edx, dword [ebp - 0x21c]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push eax
push 0x472d50
lea ecx, [ebp - 0x210]
push ecx
push 0x472d3c
push 0x208
push 0x104
lea edx, [ebp - 0x210]
push edx
call fcn.004157ac
add esp, 0x1c
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov dword [ebp - 0x214], eax
mov eax, dword [ebp - 0x214]
neg eax
sbb eax, eax
neg eax
sub eax, 1
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret
Function at 0x438240
Capabilities:
Check if file exists
Move file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 8], eax
mov eax, dword [ebp + 8]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x43826b
mov eax, 1
jmp 0x438329
mov word [ebp - 0x210], 0
push 0x206
push 0
lea ecx, [ebp - 0x20e]
push ecx
call fcn.00415680
add esp, 0xc
mov dword [ebp - 4], 1
mov edx, dword [ebp - 4]
push edx
mov eax, dword [ebp + 8]
push eax
push 0x472a38
push 0x208
push 0x104
lea ecx, [ebp - 0x210]
push ecx
call fcn.004157ac
add esp, 0x18
lea edx, [ebp - 0x210]
push edx
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x4382ca
jmp 0x4382dc
mov eax, dword [ebp - 4]
add eax, 1
mov dword [ebp - 4], eax
mov ecx, 1
test ecx, ecx
jne 0x438291
cmp dword [ebp - 4], 1
jle 0x438327
mov edx, dword [ebp - 4]
sub edx, 1
push edx
mov eax, dword [ebp + 8]
push eax
push 0x472a44
push 0x208
push 0x104
lea ecx, [ebp - 0x210]
push ecx
call fcn.004157ac
add esp, 0x18
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
je 0x438327
mov eax, 1
jmp 0x438329
xor eax, eax
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret

Function at 0x438490
Capabilities:
Enumerate processes
Terminate process

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x240
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 4], eax
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov dword [ebp - 0x23c], eax
cmp dword [ebp - 0x23c], 0xffffffff
jne 0x4384c2
xor eax, eax
jmp 0x43857c
mov dword [ebp - 0x238], 0x22c
lea eax, [ebp - 0x238]
push eax
mov ecx, dword [ebp - 0x23c]
push ecx
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
jne 0x4384f7
mov edx, dword [ebp - 0x23c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
jmp 0x43857c
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x214]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x438556
mov edx, dword [ebp - 0x230]
push edx
push 0
push 0x1f0fff
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov dword [ebp - 0x240], eax
push 0
mov eax, dword [ebp - 0x240]
push eax
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, dword [ebp - 0x240]
push ecx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov edx, dword [ebp - 0x23c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, 1
jmp 0x43857c
lea eax, [ebp - 0x238]
push eax
mov ecx, dword [ebp - 0x23c]
push ecx
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x4384f7
mov edx, dword [ebp - 0x23c]
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
xor eax, eax
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret
Function at 0x438590
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x238
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x224], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x230], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x22c], 0
mov word [ebp - 0x220], 0
push 0x206
push 0
lea eax, [ebp - 0x21e]
push eax
call fcn.00415680
add esp, 0xc
mov dword [ebp - 4], 0
mov dword [ebp - 0x228], 0
push 0
mov ecx, dword [ebp + 8]
push ecx
call sub.VERSION.dll_GetFileVersionInfoSizeW
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
jne 0x438624
jmp 0x43874c
mov edx, dword [ebp - 0x10]
push edx
call fcn.004141a6
add esp, 4
mov dword [ebp - 0x234], eax
mov eax, dword [ebp - 0x234]
mov dword [ebp - 0x228], eax
cmp dword [ebp - 0x228], 0
jne 0x438655
jmp 0x43874c
mov ecx, dword [ebp - 0x10]
push ecx
push 0
mov edx, dword [ebp - 0x228]
push edx
call fcn.00415680
add esp, 0xc
mov eax, dword [ebp - 0x228]
push eax
mov ecx, dword [ebp - 0x10]
push ecx
push 0
mov edx, dword [ebp + 8]
push edx
call sub.VERSION.dll_GetFileVersionInfoW
test eax, eax
jne 0x43868e
jmp 0x43874c
lea eax, [ebp - 0x22c]
push eax
lea ecx, [ebp - 8]
push ecx
push str.VarFileInfoTranslation
mov edx, dword [ebp - 0x228]
push edx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
jne 0x4386b8
jmp 0x43874c
mov eax, dword [ebp + 0xc]
push eax
mov ecx, dword [ebp - 8]
movzx edx, byte [ecx + 2]
push edx
mov eax, dword [ebp - 8]
movzx ecx, byte [eax + 3]
push ecx
mov edx, dword [ebp - 8]
movzx eax, byte [edx]
push eax
mov ecx, dword [ebp - 8]
movzx edx, byte [ecx + 1]
push edx
push str.StringFileInfo_02x_02x_02x_02x_s
push 0x208
push 0x104
lea eax, [ebp - 0x220]
push eax
call fcn.004157ac
add esp, 0x24
lea ecx, [ebp - 0x22c]
push ecx
lea edx, [ebp - 4]
push edx
lea eax, [ebp - 0x220]
push eax
mov ecx, dword [ebp - 0x228]
push ecx
call sub.VERSION.dll_VerQueryValueW
test eax, eax
jne 0x43871f
jmp 0x43874c
mov edx, dword [ebp - 0x22c]
cmp edx, dword [ebp + 0x14]
jbe 0x43872e
jmp 0x43874c
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [ebp + 0x14]
push ecx
mov edx, dword [ebp + 0x10]
push edx
call fcn.004172de
add esp, 0xc
mov dword [ebp - 0x224], 1
cmp dword [ebp - 0x228], 0
jne 0x438770
mov eax, dword [ebp - 0x228]
mov dword [ebp - 0x238], eax
mov ecx, dword [ebp - 0x238]
push ecx
call fcn.004153f2
add esp, 4
mov eax, dword [ebp - 0x224]
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret
Function at 0x438790
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 8], 0
lea eax, [ebp - 8]
push eax
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov ecx, dword [ebp + 8]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
mov eax, dword [ebp + 8]
push eax
call fcn.00414d31
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jbe 0x4387fb
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
movzx eax, word [edx + ecx*2 - 2]
cmp eax, 0x5c
je 0x4387ee
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
movzx eax, word [edx + ecx*2 - 2]
cmp eax, 0x2f
jne 0x4387fb
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov word [edx + ecx*2 - 2], 0
push 0x4720a0
push 0x4720a8
mov eax, dword [ebp + 8]
push eax
push 0x4720b8
mov ecx, dword [ebp + 0xc]
mov edx, dword [ecx]
push edx
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
push ecx
mov edx, dword [ebp + 8]
push edx
call fcn.004157ac
add esp, 0x1c
mov eax, 1
mov esp, ebp
pop ebp
ret
Function at 0x438830
Capabilities:
Get common file path
Get program files directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x630
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 8], eax
mov word [ebp - 0x630], 0
push 0x206
push 0
lea eax, [ebp - 0x62e]
push eax
call fcn.00415680
add esp, 0xc
mov word [ebp - 0x420], 0
push 0x206
push 0
lea ecx, [ebp - 0x41e]
push ecx
call fcn.00415680
add esp, 0xc
mov word [ebp - 0x210], 0
push 0x206
push 0
lea edx, [ebp - 0x20e]
push edx
call fcn.00415680
add esp, 0xc
mov dword [ebp - 0x424], 0
lea eax, [ebp - 0x424]
push eax
push 0x26
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
lea ecx, [ebp - 0x630]
push ecx
mov edx, dword [ebp - 0x424]
push edx
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
lea eax, [ebp - 0x630]
push eax
call fcn.00414d31
add esp, 4
mov dword [ebp - 0x214], eax
cmp dword [ebp - 0x214], 0
jbe 0x438923
mov ecx, dword [ebp - 0x214]
movzx edx, word [ebp + ecx*2 - 0x632]
cmp edx, 0x5c
je 0x438913
mov eax, dword [ebp - 0x214]
movzx ecx, word [ebp + eax*2 - 0x632]
cmp ecx, 0x2f
jne 0x438923
mov edx, dword [ebp - 0x214]
mov word [ebp + edx*2 - 0x632], 0
push 0x471ff0
push 0x472000
lea eax, [ebp - 0x630]
push eax
push 0x472010
push 0x104
push 0x104
lea ecx, [ebp - 0x420]
push ecx
call fcn.004157ac
add esp, 0x1c
push 0x472024
push 0x472034
lea edx, [ebp - 0x630]
push edx
push 0x472044
push 0x104
push 0x104
lea eax, [ebp - 0x210]
push eax
call fcn.004157ac
add esp, 0x1c
mov ecx, dword [ebp + 8]
push ecx
call fcn.00414d31
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jbe 0x4389c3
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
movzx ecx, word [eax + edx*2 - 2]
cmp ecx, 0x5c
je 0x4389b6
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
movzx ecx, word [eax + edx*2 - 2]
cmp ecx, 0x2f
jne 0x4389c3
mov edx, dword [ebp - 4]
mov eax, dword [ebp + 8]
mov word [eax + edx*2 - 2], 0
mov ecx, dword [ebp + 8]
push ecx
lea edx, [ebp - 0x420]
push edx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x4389ed
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x210]
push ecx
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x438a2f
push str.22.57.0.0.612
push 0x48a1c8
call fcn.004383a0
add esp, 8
test eax, eax
jge 0x438a2f
push 0x472074
push 0x47207c
lea edx, [ebp - 0x630]
push edx
push 0x47208c
push 0x104
push 0x104
mov eax, dword [ebp + 8]
push eax
call fcn.004157ac
add esp, 0x1c
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret
Function at 0x438a40
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 4], 4
lea eax, [ebp - 8]
push eax
push 0x20019
push 0
push 0x471ed0
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x438a70
xor eax, eax
jmp 0x438aae
mov ecx, dword [ebp + 0xc]
push ecx
mov edx, dword [ebp + 8]
push edx
lea eax, [ebp - 4]
push eax
push 0
push 0x471f00
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x438a9f
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
jmp 0x438aae
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, 1
mov esp, ebp
pop ebp
ret

Function at 0x438ac0
Capabilities:
Delete registry key

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
push 0x471db8
push connect
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
lea eax, [ebp - 4]
push eax
push 0x471dcc
push connect
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
neg eax
sbb eax, eax
add eax, 1
mov dword [ebp - 8], eax
push str.test_qq_
push connect
call dword [sym.imp.ADVAPI32.dll_RegDeleteKeyW]
mov eax, dword [ebp - 8]
mov esp, ebp
pop ebp
ret
Function at 0x438b10
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x42c
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 8], eax
push 0x471ca8
push 0x4844c8
push 0x471cb8
push 0x208
push 0x104
lea eax, [ebp - 0x428]
push eax
call fcn.004157ac
add esp, 0x18
lea ecx, [ebp - 0x218]
push ecx
push 0
lea edx, [ebp - 0x428]
push edx
call sub.Msi.dll_MsiOpenProductW
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
je 0x438b76
xor eax, eax
jmp 0x438ce4
mov eax, dword [ebp + 8]
push eax
push str.SELECT_Value_FROM_Property_WHERE_Property_s
push 0x208
push 0x104
lea ecx, [ebp - 0x210]
push ecx
call fcn.004157ac
add esp, 0x14
lea edx, [ebp - 0x42c]
push edx
lea eax, [ebp - 0x210]
push eax
mov ecx, dword [ebp - 0x218]
push ecx
call sub.Msi.dll_MsiEnumClientsA
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
je 0x438bd4
mov edx, dword [ebp - 0x218]
push edx
call sub.Msi.dll_MsiConfigureFeatureFromDescriptorA
xor eax, eax
jmp 0x438ce4
push 0
mov eax, dword [ebp - 0x42c]
push eax
call sub.Msi.dll_MsiViewModify
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
je 0x438c10
mov ecx, dword [ebp - 0x42c]
push ecx
call sub.Msi.dll_MsiConfigureFeatureFromDescriptorA
mov edx, dword [ebp - 0x218]
push edx
call sub.Msi.dll_MsiConfigureFeatureFromDescriptorA
xor eax, eax
jmp 0x438ce4
lea eax, [ebp - 0x214]
push eax
mov ecx, dword [ebp - 0x42c]
push ecx
call sub.Msi.dll_MsiDatabaseIsTablePersistentA
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
je 0x438c51
mov edx, dword [ebp - 0x42c]
push edx
call sub.Msi.dll_MsiConfigureFeatureFromDescriptorA
mov eax, dword [ebp - 0x218]
push eax
call sub.Msi.dll_MsiConfigureFeatureFromDescriptorA
xor eax, eax
jmp 0x438ce4
mov dword [ebp - 0x21c], 0x104
lea ecx, [ebp - 0x21c]
push ecx
mov edx, dword [ebp + 0xc]
push edx
push 1
mov eax, dword [ebp - 0x214]
push eax
call sub.Msi.dll_MsiRecordSetStreamA
mov dword [ebp - 0x220], eax
cmp dword [ebp - 0x220], 0
je 0x438cab
mov ecx, dword [ebp - 0x214]
push ecx
call sub.Msi.dll_MsiConfigureFeatureFromDescriptorA
mov edx, dword [ebp - 0x42c]
push edx
call sub.Msi.dll_MsiConfigureFeatureFromDescriptorA
mov eax, dword [ebp - 0x218]
push eax
call sub.Msi.dll_MsiConfigureFeatureFromDescriptorA
xor eax, eax
jmp 0x438ce4
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0x214]
push ecx
call sub.Msi.dll_MsiConfigureFeatureFromDescriptorA
mov dword [ebp - 4], eax
mov edx, dword [ebp - 0x42c]
push edx
call sub.Msi.dll_MsiConfigureFeatureFromDescriptorA
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x218]
push eax
call sub.Msi.dll_MsiConfigureFeatureFromDescriptorA
mov dword [ebp - 4], eax
mov eax, 1
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret
Function at 0x438d00
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x234
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 4], eax
push 0x208
push 0
lea eax, [ebp - 0x210]
push eax
call fcn.00415680
add esp, 0xc
push 0
mov ecx, dword [ebp + 8]
push ecx
push str._s_c
push 0x208
push 0x104
lea edx, [ebp - 0x210]
push edx
call fcn.004157ac
add esp, 0x18
push 0x1e
push 0
lea eax, [ebp - 0x234]
push eax
call fcn.00415680
add esp, 0xc
mov dword [ebp - 0x234], 0
mov dword [ebp - 0x230], 3
mov word [ebp - 0x224], 0x14
lea ecx, [ebp - 0x210]
mov dword [ebp - 0x22c], ecx
lea edx, [ebp - 0x234]
push edx
call dword [sym.imp.SHELL32.dll_SHFileOperationW]
mov dword [ebp - 0x214], eax
xor eax, eax
cmp dword [ebp - 0x214], 0
sete al
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret

Function at 0x438dc0
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x428
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 0xc], eax
mov dword [ebp - 4], 4
mov dword [ebp - 0x424], 0x104
mov word [ebp - 0x420], 0
push 0x40e
push 0
lea eax, [ebp - 0x41e]
push eax
call fcn.00415680
add esp, 0xc
lea ecx, [ebp - 8]
push ecx
push 0x20019
push 0
push str.SOFTWARETencentQQMusic
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x438e29
xor eax, eax
jmp 0x438ed8
lea edx, [ebp - 0x424]
push edx
lea eax, [ebp - 0x420]
push eax
lea ecx, [ebp - 4]
push ecx
push 0
push 0x4718fc
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x438ecc
lea eax, [ebp - 0x420]
push eax
call fcn.00414d31
add esp, 4
mov dword [ebp - 0x428], eax
cmp dword [ebp - 0x428], 0
jbe 0x438ecc
mov ecx, dword [ebp - 0x428]
movzx edx, word [ebp + ecx*2 - 0x422]
cmp edx, 0x5c
je 0x438e94
mov eax, dword [ebp - 0x428]
movzx ecx, word [ebp + eax*2 - 0x422]
cmp ecx, 0x2f
jne 0x438ea4
mov edx, dword [ebp - 0x428]
mov word [ebp + edx*2 - 0x422], 0
mov eax, dword [ebp + 8]
push eax
lea ecx, [ebp - 0x420]
push ecx
call fcn.004159fc
add esp, 8
test eax, eax
jne 0x438ecc
mov dword [0x48a870], 1
mov eax, 1
jmp 0x438ed8
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xor eax, eax
mov ecx, dword [ebp - 0xc]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret
Function at 0x438ef0
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x830
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 4], eax
mov word [ebp - 0x418], 0
push 0x40e
push 0
lea eax, [ebp - 0x416]
push eax
call fcn.00415680
add esp, 0xc
mov word [ebp - 0x830], 0
push 0x40e
push 0
lea ecx, [ebp - 0x82e]
push ecx
call fcn.00415680
add esp, 0xc
push 0x471654
push 0x488af8
call fcn.004159fc
add esp, 8
test eax, eax
jne 0x438f5c
jmp 0x439036
push 0
push 0x471658
push 0x410
push 0x208
lea edx, [ebp - 0x830]
push edx
call fcn.004157ac
add esp, 0x14
mov eax, dword [ebp + 8]
push eax
push str.Components
mov ecx, dword [ebp + 0xc]
push ecx
push 0x471678
push str._s_s_s_s
push 0x410
push 0x208
lea edx, [ebp - 0x418]
push edx
call fcn.004157ac
add esp, 0x20
lea eax, [ebp - 0x41c]
push eax
push 0x20006
push 0
lea ecx, [ebp - 0x418]
push ecx
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov dword [ebp - 0x420], eax
cmp dword [ebp - 0x420], 0
je 0x438ff4
lea edx, [ebp - 0x41c]
push edx
lea eax, [ebp - 0x418]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegCreateKeyW]
lea ecx, [ebp - 0x830]
push ecx
call fcn.00414d31
add esp, 4
shl eax, 1
push eax
lea edx, [ebp - 0x830]
push edx
push 1
push 0
push str.Installed
mov eax, dword [ebp - 0x41c]
push eax
call dword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov dword [ebp - 0x420], eax
mov ecx, dword [ebp - 0x41c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret

Function at 0x439050
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x62c
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 8], eax
mov word [ebp - 0x418], 0
push 0x40e
push 0
lea eax, [ebp - 0x416]
push eax
call fcn.00415680
add esp, 0xc
mov dword [ebp - 4], 4
mov dword [ebp - 0x62c], 0x104
mov word [ebp - 0x628], 0
push 0x206
push 0
lea ecx, [ebp - 0x626]
push ecx
call fcn.00415680
add esp, 0xc
push 0x4715a0
push 0x488af8
call fcn.004159fc
add esp, 8
test eax, eax
jne 0x4390cf
xor eax, eax
jmp 0x439171
mov edx, dword [ebp + 8]
push edx
push 0x4715a4
mov eax, dword [ebp + 0xc]
push eax
push 0x4715c0
push 0x471628
push 0x410
push 0x208
lea ecx, [ebp - 0x418]
push ecx
call fcn.004157ac
add esp, 0x20
lea edx, [ebp - 0x41c]
push edx
push 0x20019
push 0
lea eax, [ebp - 0x418]
push eax
push reloc.OLEAUT32.dll_SysReAllocString
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x439127
xor eax, eax
jmp 0x439171
lea ecx, [ebp - 0x62c]
push ecx
lea edx, [ebp - 0x628]
push edx
lea eax, [ebp - 4]
push eax
push 0
push 0x471640
mov ecx, dword [ebp - 0x41c]
push ecx
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x43916f
mov edx, dword [ebp - 0x41c]
push edx
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea eax, [ebp - 0x628]
push eax
call fcn.004155e6
add esp, 4
jmp 0x439171
xor eax, eax
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret
Function at 0x439180
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x828
mov eax, dword [0x481288]
xor eax, ebp
mov dword [ebp - 4], eax
mov word [ebp - 0x418], 0
push 0x40e
push 0
lea eax, [ebp - 0x416]
push eax
call fcn.00415680
add esp, 0xc
mov word [ebp - 0x828], 0
push 0x40e
push 0
lea ecx, [ebp - 0x826]
push ecx
call fcn.00415680
add esp, 0xc
mov edx, dword [ebp + 8]
push edx
push str._sChatRoom.exe
push 0x410
push 0x208
lea eax, [ebp - 0x418]
push eax
call fcn.004157ac
add esp, 0x14
lea ecx, [ebp - 0x418]
push ecx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov edx, dword [ebp + 8]
push edx
push str._sChat
push 0x410
push 0x208
lea eax, [ebp - 0x828]
push eax
call fcn.004157ac
add esp, 0x14
lea ecx, [ebp - 0x828]
push ecx
call fcn.00438d00
add esp, 4
mov edx, dword [ebp + 8]
push edx
push str._sChatSkin
push 0x410
push 0x208
lea eax, [ebp - 0x828]
push eax
call fcn.004157ac
add esp, 0x14
lea ecx, [ebp - 0x828]
push ecx
call fcn.00438d00
add esp, 4
mov edx, dword [ebp + 8]
push edx
push str._sChatRoomDll
push 0x410
push 0x208
lea eax, [ebp - 0x828]
push eax
call fcn.004157ac
add esp, 0x14
lea ecx, [ebp - 0x828]
push ecx
call fcn.00438d00
add esp, 4
mov eax, 1
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.004151d0
mov esp, ebp
pop ebp
ret