joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40abd4
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffadc
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [ebp + 0xc], 0
je 0x40abf4
cmp dword [ebp + 0x10], 0
je 0x40abf4
mov edx, dword [ebp + 0xc]
mov byte [edx], 0
cmp dword [ebp + 8], 0
je 0x40ad8e
mov ecx, dword [ebp + 8]
cmp byte [ecx], 0
je 0x40ad8e
cmp dword [ebp + 0xc], 0
je 0x40ad8e
cmp dword [ebp + 0x10], 0
je 0x40ad8e
lea eax, [ebp - 8]
push eax
push 1
push 0
push str.SYSTEMMountedDevices
push SysStringLen
call sub.ADVAPI32.DLL_RegOpenKeyExA
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x40ad8e
mov dword [ebp - 0x14], 0x400
push str.DosDevices_
lea edx, [ebp - 0x524]
push edx
call fcn.004f4ccc
add esp, 8
push 0xff
push dword [ebp + 8]
lea ecx, [ebp - 0x524]
push ecx
call fcn.004f4d60
add esp, 0xc
mov byte [ebp - 0x425], 0
lea eax, [ebp - 0x14]
push eax
lea edx, [ebp - 0x424]
push edx
lea ecx, [ebp - 0x10]
push ecx
push 0
lea eax, [ebp - 0x524]
push eax
push dword [ebp - 8]
call sub.ADVAPI32.DLL_RegQueryValueExA
mov dword [ebp - 0xc], eax
push dword [ebp - 8]
call sub.ADVAPI32.DLL_RegCloseKey
cmp dword [ebp - 0xc], 0
jne 0x40ad8e
cmp dword [ebp - 0x10], 3
jne 0x40ad8e
lea edx, [ebp - 0x424]
mov dword [ebp - 0x18], edx
mov ecx, 2
mov eax, dword [ebp - 0x14]
xor edx, edx
div ecx
mov dword [ebp - 0x14], eax
mov ecx, dword [ebp - 0x18]
cmp word [ecx], 0x5c
jne 0x40ad8e
mov eax, dword [ebp - 0x18]
cmp word [eax + 2], 0x3f
jne 0x40ad8e
mov edx, dword [ebp - 0x18]
cmp word [edx + 4], 0x3f
jne 0x40ad8e
mov ecx, dword [ebp - 0x18]
cmp word [ecx + 6], 0x5c
jne 0x40ad8e
mov dword [ebp - 4], 1
add dword [ebp - 0x18], 8
sub dword [ebp - 0x14], 4
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x1c], eax
xor edx, edx
mov dword [ebp - 0x20], edx
mov ecx, dword [ebp - 0x20]
cmp ecx, dword [ebp - 0x14]
jae 0x40ad88
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov cl, byte [eax + edx*2]
mov byte [ebp - 0x21], cl
movsx eax, byte [ebp - 0x21]
cmp eax, 0x7b
je 0x40ad88
movsx edx, byte [ebp - 0x21]
cmp edx, 0x23
jne 0x40ad57
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
cmp word [ecx + eax*2 + 2], 0x7b
je 0x40ad88
movsx edx, byte [ebp - 0x21]
cmp edx, 0x23
jne 0x40ad64
mov byte [ebp - 0x21], 0x5c
mov ecx, dword [ebp - 0x1c]
sub ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
dec eax
cmp ecx, eax
jae 0x40ad7d
mov edx, dword [ebp - 0x1c]
mov cl, byte [ebp - 0x21]
mov byte [edx], cl
inc dword [ebp - 0x1c]
inc dword [ebp - 0x20]
mov eax, dword [ebp - 0x20]
cmp eax, dword [ebp - 0x14]
jb 0x40ad2b
mov edx, dword [ebp - 0x1c]
mov byte [edx], 0
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
Function at 0x40ad98
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff7ec
xor eax, eax
mov dword [ebp - 4], eax
cmp dword [ebp + 0x10], 0
je 0x40adb8
cmp dword [ebp + 0x14], 0
je 0x40adb8
mov edx, dword [ebp + 0x10]
mov byte [edx], 0
cmp dword [ebp + 0xc], 0
je 0x40aec3
mov ecx, dword [ebp + 0xc]
cmp byte [ecx], 0
je 0x40aec3
cmp dword [ebp + 0x10], 0
je 0x40aec3
cmp dword [ebp + 0x14], 0
je 0x40aec3
push str.SYSTEMCurrentControlSetEnum_
lea eax, [ebp - 0x414]
push eax
call fcn.004f4ccc
add esp, 8
push 0x3ff
push dword [ebp + 0xc]
lea edx, [ebp - 0x414]
push edx
call fcn.004f4d60
add esp, 0xc
mov byte [ebp - 0x15], 0
lea ecx, [ebp - 8]
push ecx
push 1
push 0
lea eax, [ebp - 0x414]
push eax
push SysStringLen
call sub.ADVAPI32.DLL_RegOpenKeyExA
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jne 0x40aec3
mov dword [ebp - 0x14], 0x400
lea edx, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x814]
push ecx
lea eax, [ebp - 0x10]
push eax
push 0
push str.FriendlyName
push dword [ebp - 8]
call sub.ADVAPI32.DLL_RegQueryValueExA
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x40ae86
lea edx, [ebp - 0x14]
push edx
lea ecx, [ebp - 0x814]
push ecx
lea eax, [ebp - 0x10]
push eax
push 0
push str.DeviceDesc
push dword [ebp - 8]
call sub.ADVAPI32.DLL_RegQueryValueExA
mov dword [ebp - 0xc], eax
push dword [ebp - 8]
call sub.ADVAPI32.DLL_RegCloseKey
cmp dword [ebp - 0xc], 0
jne 0x40aec3
cmp dword [ebp - 0x10], 1
jne 0x40aec3
mov edx, dword [ebp + 0x14]
dec edx
push edx
lea ecx, [ebp - 0x814]
push ecx
push dword [ebp + 0x10]
call fcn.004f4eb8
add esp, 0xc
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
mov byte [edx + eax - 1], 0
mov dword [ebp - 4], 1
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret

Function at 0x40c044
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdf0
mov dword [ebp - 4], eax
mov word [ebp - 0x20e], 0
push 0x105
lea eax, [ebp - 0x20e]
push eax
call sub.KERNEL32.DLL_GetWindowsDirectoryW
mov eax, dword [ebp - 4]
lea edx, [ebp - 0x20e]
mov ecx, 0x105
call fcn.0044871c
mov esp, ebp
pop ebp
ret

Function at 0x40c084
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffde8
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00448494
mov word [ebp - 0x216], 0
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [0x519ff8]
push eax
call sub.SHELL32.DLL_SHGetSpecialFolderLocation
lea eax, [ebp - 0x216]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.SHELL32.DLL_SHGetPathFromIDListW
test eax, eax
je 0x40c0de
mov eax, dword [ebp - 8]
lea edx, [ebp - 0x216]
mov ecx, 0x105
call fcn.0044871c
mov esp, ebp
pop ebp
ret
Function at 0x40c0e4
Capabilities:
Get session user name

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdf8
mov dword [ebp - 4], eax
mov word [ebp - 0x208], 0
mov eax, dword [ebp - 4]
call fcn.00448494
mov dword [ebp - 8], 0x100
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x208]
push eax
call sub.ADVAPI32.DLL_GetUserNameW
test eax, eax
je 0x40c12f
mov eax, dword [ebp - 4]
lea edx, [ebp - 0x208]
mov ecx, 0x100
call fcn.0044871c
mov esp, ebp
pop ebp
ret

Function at 0x40c134
Capabilities:
Get hostname

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdf8
mov dword [ebp - 4], eax
mov word [ebp - 0x208], 0
mov eax, dword [ebp - 4]
call fcn.00448494
mov dword [ebp - 8], 0x100
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x208]
push eax
call sub.KERNEL32.DLL_GetComputerNameW
test eax, eax
je 0x40c17f
mov eax, dword [ebp - 4]
lea edx, [ebp - 0x208]
mov ecx, 0x100
call fcn.0044871c
mov esp, ebp
pop ebp
ret
Function at 0x40cf18
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00448974
push eax
call sub.KERNEL32.DLL_GetFileAttributesA
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x40cf3e
test byte [ebp - 0xc], 0x10
jne 0x40cf42
xor eax, eax
jmp 0x40cf44
mov al, 1
mov byte [ebp - 5], al
mov al, byte [ebp - 5]
mov esp, ebp
pop ebp
ret

Function at 0x40e674
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd8
push ebx
xor edx, edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00448964
xor eax, eax
push ebp
push 0x40e78c
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 8], eax
mov dl, 1
mov eax, dword [0x41bd20]
call fcn.0044760c
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x40e762
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x14]
push eax
lea ecx, [ebp - 0xc]
mov edx, 0x68a0
mov eax, dword [ebp - 4]
call sym.tripyupdate.exe__Magsubs1_IndexFiles_qqr17System_AnsiStringirp19Classes_TStringListrui
test eax, eax
jne 0x40e6e0
call fcn.00447f9c
jmp 0x40e769
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
dec eax
test eax, eax
jl 0x40e74c
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], 0
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 4]
call fcn.0043511c
lea eax, [ebp - 0x24]
push eax
lea ecx, [ebp - 0x28]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov ebx, dword [eax]
call dword [ebx + 0xc]
mov edx, dword [ebp - 0x28]
pop eax
call fcn.0044877c
mov eax, dword [ebp - 0x24]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
call fcn.00448974
push eax
call sub.KERNEL32.DLL_DeleteFileA
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x1d], al
cmp byte [ebp - 0x1d], 0
je 0x40e744
inc dword [ebp - 8]
inc dword [ebp - 0x10]
dec dword [ebp - 0x18]
jne 0x40e6f8
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40e769
mov eax, dword [ebp - 0xc]
call fcn.0044763c
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x40e793
lea eax, [ebp - 0x28]
mov edx, 2
call fcn.004484b8
lea eax, [ebp - 4]
call fcn.00448494
ret

Function at 0x40e79c
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff7f4
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00448494
push 0x400
lea eax, [ebp - 0x80c]
push eax
mov eax, dword [ebp - 4]
call fcn.00448ecc
push eax
call sub.KERNEL32.DLL_GetEnvironmentVariableW
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
je 0x40e7e9
mov eax, dword [ebp - 8]
lea edx, [ebp - 0x80c]
mov ecx, 0x400
call fcn.0044871c
mov esp, ebp
pop ebp
ret
Function at 0x410dcc
Capabilities:
Clear file content

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0xc], 0xffffffff
mov eax, dword [ebp - 4]
call sym.tripyupdate.exe__Magsubs1_GetSizeFileW_qqr17System_WideString
test eax, eax
jl 0x410e7f
push 0
push 0x80
push 3
push 0
push 0
push 0xc0000000
mov eax, dword [ebp - 4]
call fcn.00448ecc
push eax
call sub.KERNEL32.DLL_CreateFileW
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
jl 0x410e7f
push 0
push 0
mov edx, 2
mov eax, dword [ebp - 0x14]
call fcn.00434a6c
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
cmp edx, dword [ebp - 0xc]
jne 0x410e45
cmp eax, dword [ebp - 0x10]
jae 0x410e76
jmp 0x410e47
jge 0x410e76
push dword [ebp + 0xc]
push dword [ebp + 8]
xor edx, edx
mov eax, dword [ebp - 0x14]
call fcn.00434a6c
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], edx
cmp dword [ebp - 0xc], 0
jne 0x410e6b
cmp dword [ebp - 0x10], 0
jb 0x410e76
jmp 0x410e6d
jl 0x410e76
mov eax, dword [ebp - 0x14]
push eax
call sub.KERNEL32.DLL_SetEndOfFile
mov eax, dword [ebp - 0x14]
push eax
call sub.KERNEL32.DLL_CloseHandle
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
mov esp, ebp
pop ebp
ret 8

Function at 0x41125c
Capabilities:
Enumerate files on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffd8c
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
call fcn.00449164
xor eax, eax
push ebp
push 0x411323
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0xd], 0
xor eax, eax
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x274]
push eax
mov eax, dword [ebp - 4]
call fcn.00448ecc
push eax
call sub.KERNEL32.DLL_FindFirstFileW
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0xffffffff
je 0x41130d
jmp 0x4112c1
lea eax, [ebp - 0x274]
push eax
mov eax, dword [ebp - 0x14]
push eax
call sub.KERNEL32.DLL_FindNextFileW
test eax, eax
je 0x41130d
mov eax, dword [ebp - 0x274]
and eax, dword [ebp - 0x24]
jne 0x4112ad
mov eax, dword [ebp - 0x254]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp - 0x258]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x20]
mov dword [eax], edx
mov edx, dword [ebp - 0x1c]
mov dword [eax + 4], edx
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x260]
mov dword [eax], edx
mov edx, dword [ebp - 0x25c]
mov dword [eax + 4], edx
mov byte [ebp - 0xd], 1
mov eax, dword [ebp - 0x14]
push eax
call sub.KERNEL32.DLL_FindClose
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41132a
lea eax, [ebp - 4]
call fcn.00448d08
ret

Function at 0x414798
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdf0
mov dword [ebp - 4], eax
lea eax, [ebp - 0x20e]
push eax
push 0x104
call sub.KERNEL32.DLL_GetTempPathW
mov ecx, eax
lea edx, [ebp - 0x20e]
mov eax, dword [ebp - 4]
call fcn.004485f0
mov esp, ebp
pop ebp
ret
Function at 0x4147cc
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdf0
mov dword [ebp - 4], eax
lea eax, [ebp - 0x20e]
push eax
push 0x104
call sub.KERNEL32.DLL_GetTempPathW
mov ecx, eax
lea edx, [ebp - 0x20e]
mov eax, dword [ebp - 4]
call fcn.00448e00
mov esp, ebp
pop ebp
ret

Function at 0x414ca8
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
cmp byte [sym.tripyupdate.exe__Magsubs1_PerfFreqAligned], 0
jne 0x414d06
call fcn.00436d04
fstp qword [sym.tripyupdate.exe__Magsubs1_f_TDStartValue]
wait
lea eax, [ebp - 0x18]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
mov eax, dword [ebp - 0x18]
mov dword [sym.tripyupdate.exe__Magsubs1_f_PCStartValue], eax
mov eax, dword [ebp - 0x14]
mov dword [0x51a04c], eax
push 0
push 0x15180
call sym.tripyupdate.exe__Magsubs1_GetPerfCountsPerSec_qqrv
call fcn.00449784
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], edx
fild qword [ebp - 0x30]
fstp xword [sym.tripyupdate.exe__Magsubs1_f_PCCountsPerDay]
wait
mov byte [sym.tripyupdate.exe__Magsubs1_PerfFreqAligned], 1
lea eax, [ebp - 0x18]
push eax
call sub.KERNEL32.DLL_QueryPerformanceCounter
fild qword [ebp - 0x18]
fistp qword [ebp - 0x10]
wait
fild qword [sym.tripyupdate.exe__Magsubs1_f_PCStartValue]
fild qword [ebp - 0x10]
fsubrp st(1)
fstp xword [ebp - 0x28]
wait
fld xword [ebp - 0x28]
fcomp dword [0x414d60]
wait
fnstsw ax
sahf
jae 0x414d41
fld xword [ebp - 0x28]
fsub dword [0x414d64]
fstp xword [ebp - 0x28]
wait
fld xword [ebp - 0x28]
fld xword [sym.tripyupdate.exe__Magsubs1_f_PCCountsPerDay]
fdivp st(1)
fadd qword [sym.tripyupdate.exe__Magsubs1_f_TDStartValue]
fstp qword [ebp - 8]
wait
fld qword [ebp - 8]
mov esp, ebp
pop ebp
ret
Function at 0x415de4
Capabilities:
Compare security identifiers

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
mov byte [ebp - 1], 0
mov eax, dword [0x519a80]
cmp dword [eax], 2
je 0x415e01
mov byte [ebp - 1], 1
jmp 0x415f76
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x15], 0
xor eax, eax
push ebp
push 0x415f6f
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0xc]
push eax
push 0xffffffffffffffff
push 8
call sub.KERNEL32.DLL_GetCurrentThread
push eax
call sub.ADVAPI32.DLL_OpenThreadToken
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
jne 0x415e65
call sub.KERNEL32.DLL_GetLastError
cmp eax, 0x3f0
jne 0x415e65
lea eax, [ebp - 0xc]
push eax
push 8
call sub.KERNEL32.DLL_GetCurrentProcess
push eax
call sub.ADVAPI32.DLL_OpenProcessToken
cmp eax, 1
sbb eax, eax
inc eax
mov byte [ebp - 0x15], al
cmp byte [ebp - 0x15], 0
je 0x415f35
lea eax, [ebp - 8]
push eax
push 0
push 0
push 0
push 0
push 0
push 0
push 0x220
push 0x20
push 2
push 0x50f190
call sub.ADVAPI32.DLL_AllocateAndInitializeSid
call fcn.0043af44
lea eax, [ebp - 0x10]
push eax
push 0
push 0
push 2
mov eax, dword [ebp - 0xc]
push eax
call sub.ADVAPI32.DLL_GetTokenInformation
test eax, eax
jne 0x415eb8
call sub.KERNEL32.DLL_GetLastError
cmp eax, 0x7a
je 0x415ebd
call fcn.0043ae8c
mov eax, dword [ebp - 0x10]
call fcn.0044668c
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x14]
push eax
push 2
mov eax, dword [ebp - 0xc]
push eax
call sub.ADVAPI32.DLL_GetTokenInformation
call fcn.0043af44
mov eax, dword [ebp - 0x14]
mov eax, dword [eax]
dec eax
test eax, eax
jl 0x415f35
inc eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], 0
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
mov eax, dword [eax + edx*8 + 4]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.ADVAPI32.DLL_EqualSid
test eax, eax
je 0x415f1e
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x1c]
test byte [eax + edx*8 + 8], 0x10
je 0x415f22
xor eax, eax
jmp 0x415f24
mov al, 1
mov byte [ebp - 1], al
cmp byte [ebp - 1], 0
jne 0x415f35
inc dword [ebp - 0x1c]
dec dword [ebp - 0x20]
jne 0x415ef9
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x415f76
cmp dword [ebp - 0x14], 0
je 0x415f50
mov eax, dword [ebp - 0x14]
call fcn.004466c0
cmp byte [ebp - 0x15], 0
je 0x415f5f
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_CloseHandle
cmp dword [ebp - 8], 0
je 0x415f6e
mov eax, dword [ebp - 8]
push eax
call sub.ADVAPI32.DLL_FreeSid
ret
mov al, byte [ebp - 1]
mov esp, ebp
pop ebp
ret

Function at 0x415f80
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdf8
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 8]
call fcn.00448d08
push 0xfe
lea eax, [ebp - 0x208]
push eax
mov eax, dword [ebp - 4]
push eax
push 0x800
call sub.KERNEL32.DLL_GetLocaleInfoW
test eax, eax
jle 0x415fc8
mov eax, dword [ebp - 8]
lea edx, [ebp - 0x208]
mov ecx, 0x100
call fcn.00448ea0
mov esp, ebp
pop ebp
ret
Function at 0x4227fc
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
mov dword [ebp - 4], ecx
mov dword [ebp - 0xc], edx
mov dword [ebp - 8], eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_FindResourceA
mov edx, dword [ebp - 8]
mov dword [edx + 0x10], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x10], 0
jne 0x422832
push ebp
call fcn.0042275c
pop ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_LoadResource
mov edx, dword [ebp - 8]
mov dword [edx + 0x14], eax
mov eax, dword [ebp - 8]
cmp dword [eax + 0x14], 0
jne 0x422858
push ebp
call fcn.0042275c
pop ecx
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x10]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.KERNEL32.DLL_SizeofResource
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0x14]
push eax
call sub.KERNEL32.DLL_LockResource
mov edx, eax
mov eax, dword [ebp - 8]
pop ecx
call fcn.00422098
mov esp, ebp
pop ebp
ret 8

Function at 0x42bda4
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
cmp dword [0x51a3e0], 0
jne 0x42be51
push 0x40
push 0x1000
push 0x1000
push 0
call sub.KERNEL32.DLL_VirtualAlloc
mov dword [ebp - 8], eax
mov eax, dword [0x51a3dc]
mov edx, dword [ebp - 8]
mov dword [edx], eax
mov eax, dword [ebp - 8]
lea edx, [eax + 4]
mov eax, 0x50f284
mov ecx, 2
call fcn.00446a30
mov edx, 0x42bd60
mov eax, dword [ebp - 8]
add eax, 5
call fcn.0042bd80
mov edx, dword [ebp - 8]
mov dword [edx + 6], eax
mov eax, dword [ebp - 8]
add eax, 0xa
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov byte [eax], 0xe8
mov eax, dword [ebp - 8]
lea edx, [eax + 4]
mov eax, dword [ebp - 0xc]
call fcn.0042bd80
mov edx, dword [ebp - 0xc]
mov dword [edx + 1], eax
mov eax, dword [0x51a3e0]
mov edx, dword [ebp - 0xc]
mov dword [edx + 5], eax
mov eax, dword [ebp - 0xc]
mov dword [0x51a3e0], eax
add dword [ebp - 0xc], 0xd
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 8]
cmp eax, 0xffc
jl 0x42be0b
mov eax, dword [ebp - 8]
mov dword [0x51a3dc], eax
mov eax, dword [0x51a3e0]
mov dword [ebp - 4], eax
mov eax, dword [0x51a3e0]
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 5]
mov dword [0x51a3e0], eax
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp + 8]
mov dword [eax + 5], edx
mov edx, dword [ebp + 0xc]
mov dword [eax + 9], edx
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret 8
Function at 0x42eba4
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffec
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0xc]
xor ecx, ecx
mov edx, 8
call fcn.00446f6c
mov eax, dword [ebp - 0xc]
add eax, 4
push eax
push 0
lea eax, [ebp - 0x14]
push eax
push 0
mov eax, dword [ebp - 8]
call fcn.00448974
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.ADVAPI32.DLL_RegQueryValueExA
test eax, eax
sete byte [ebp - 0xd]
mov eax, dword [ebp - 0x14]
call fcn.0042e568
mov edx, dword [ebp - 0xc]
mov byte [edx], al
mov al, byte [ebp - 0xd]
mov esp, ebp
pop ebp
ret

Function at 0x42ee58
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov al, byte [ebp + 8]
call fcn.0042e518
mov dword [ebp - 0x10], eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 0
mov eax, dword [ebp - 8]
call fcn.00448974
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.ADVAPI32.DLL_RegSetValueExA
test eax, eax
je 0x42eec0
mov eax, dword [ebp - 8]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x14], 0xb
lea eax, [ebp - 0x18]
push eax
push 0
mov ecx, dword [0x519a5c]
mov dl, 1
mov eax, dword [0x42e388]
call fcn.00439108
call fcn.00447ef0
mov esp, ebp
pop ebp
ret 8

Function at 0x42eec8
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
mov dword [ebp - 0x14], eax
lea eax, [ebp + 0xc]
push eax
mov eax, dword [ebp - 0xc]
push eax
lea eax, [ebp - 0x14]
push eax
push 0
mov eax, dword [ebp - 8]
call fcn.00448974
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
push eax
call sub.ADVAPI32.DLL_RegQueryValueExA
test eax, eax
je 0x42ef2a
mov eax, dword [ebp - 8]
mov dword [ebp - 0x1c], eax
mov byte [ebp - 0x18], 0xb
lea eax, [ebp - 0x1c]
push eax
push 0
mov ecx, dword [0x519a58]
mov dl, 1
mov eax, dword [0x42e388]
call fcn.00439108
call fcn.00447ef0
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x14]
call fcn.0042e568
mov edx, dword [ebp + 8]
mov byte [edx], al
mov eax, dword [ebp - 0x10]
mov esp, ebp
pop ebp
ret 8