joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41a818
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdc0
push ebx
push esi
push edi
mov ebx, eax
xor eax, eax
mov dword [ebp - 4], eax
xor edx, edx
xor eax, eax
call fcn.00409fb8
mov dword [ebp - 0x23e], eax
mov esi, dword [ebp - 0x23e]
test esi, esi
je 0x41a9c8
lea eax, [ebp - 8]
push eax
push 4
lea eax, [ebp - 0x23a]
push eax
push esi
push ebx
call sub.KERNEL32.dll_ReadProcessMemory
test eax, eax
je 0x41a9c8
push ebx
push 0x2c9
call fcn.0040af30
mov esi, eax
cmp dword [ebp - 0x23a], 0
jne 0x41a884
xor eax, eax
mov dword [ebp - 0x236], eax
jmp 0x41a895
call fcn.00409f40
add eax, dword [ebp - 0x23a]
mov dword [ebp - 0x236], eax
mov dl, 1
mov eax, dword [0x4cac6c]
call fcn.00409fb8
mov dword [ebp - 0x232], eax
mov dl, 1
mov eax, dword [0x4cac38]
call fcn.00409fb8
mov dword [ebp - 0x22e], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x14]
push eax
call sub.KERNEL32.dll_lstrlenW
mov edi, eax
add edi, edi
mov word [ebp - 0x22a], di
add di, 2
mov word [ebp - 0x228], di
lea eax, [ebp - 0x222]
lea edx, [ebp - 0x23e]
sub eax, edx
mov edi, esi
add edi, 0x9b
add eax, edi
mov dword [ebp - 0x226], eax
movzx ecx, word [ebp - 0x228]
lea edx, [ebp - 0x222]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x14]
call fcn.004025ec
mov byte [ebp - 0x1a], 0xb8
mov dword [ebp - 0x19], edi
mov byte [ebp - 0x15], 0xe9
mov dword [ebp - 0x14], 0xfffffd37
call fcn.00409f40
add edi, 0x22e
sub edi, 0xa
sub edi, eax
mov dword [ebp - 0xc], edi
lea eax, [ebp - 8]
push eax
push 0x9b
push 0x4cb28c
push esi
push ebx
call sub.KERNEL32.dll_WriteProcessMemory
test eax, eax
je 0x41a9c8
lea eax, [ebp - 8]
push eax
push 0x22e
lea eax, [ebp - 0x23e]
push eax
add esi, 0x9b
push esi
push ebx
call sub.KERNEL32.dll_WriteProcessMemory
test eax, eax
je 0x41a9c8
lea eax, [ebp - 0x10]
push eax
push 0x40
push 4
mov eax, dword [ebp - 0x23e]
push eax
push ebx
call sub.KERNEL32.dll_VirtualProtectEx
test eax, eax
je 0x41a9c8
lea eax, [ebp - 8]
push eax
push 4
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 0x23e]
push eax
push ebx
call sub.KERNEL32.dll_WriteProcessMemory
test eax, eax
je 0x41a9c8
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0x10]
push eax
push 4
mov eax, dword [ebp - 0x23e]
push eax
push ebx
call sub.KERNEL32.dll_VirtualProtectEx
mov dword [ebp - 4], 1
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x41aa04
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffdbc
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov esi, eax
xor edi, edi
push esi
push 0x2ac
call fcn.0040af30
mov ebx, eax
test ebx, ebx
je 0x41abf5
cmp dword [0x4cafd4], 0
jne 0x41aa46
mov dl, 1
mov eax, dword [0x4cac38]
call fcn.00409fb8
mov dword [0x4cafd4], eax
cmp dword [0x4cafd8], 0
jne 0x41aa60
mov dl, 1
mov eax, dword [0x4cac6c]
call fcn.00409fb8
mov dword [0x4cafd8], eax
mov byte [ebp - 0x242], 0xb8
mov dword [ebp - 0x241], ebx
mov byte [ebp - 0x23d], 0xb9
lea eax, [ebx + 0x22d]
mov dword [ebp - 0x23c], eax
mov word [ebp - 0x238], 0xd1ff
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp - 4]
call fcn.0041a9d4
mov dword [ebp - 0x236], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x14]
push eax
call sub.KERNEL32.dll_lstrlenW
add eax, eax
mov word [ebp - 0x22d], ax
mov ax, word [ebp - 0x22d]
add ax, 2
mov word [ebp - 0x22b], ax
lea eax, [ebx + 0x1d]
mov dword [ebp - 0x229], eax
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + 8]
mov eax, dword [eax - 0x14]
push eax
lea eax, [ebp - 0x225]
push eax
call sub.KERNEL32.dll_lstrcpyW
mov eax, dword [0x4cafd8]
mov dword [ebp - 0x1d], eax
mov eax, dword [0x4cafd4]
mov dword [ebp - 0x19], eax
cmp dword [ebp - 0x236], 0
je 0x41abf5
lea eax, [ebp - 0x10]
push eax
push 0x22e
lea eax, [ebp - 0x242]
push eax
push ebx
push esi
call sub.KERNEL32.dll_WriteProcessMemory
test eax, eax
je 0x41abf5
cmp dword [ebp - 0x10], 0x22e
jne 0x41abf5
lea eax, [ebp - 0x10]
push eax
push 0x7e
push 0x4cb3c8
lea eax, [ebx + 0x22d]
push eax
push esi
call sub.KERNEL32.dll_WriteProcessMemory
test eax, eax
je 0x41abf5
cmp dword [ebp - 0x10], 0x7e
jne 0x41abf5
lea eax, [ebp - 0x10]
push eax
push 5
lea eax, [ebp - 9]
push eax
mov eax, dword [ebp - 0x236]
push eax
push esi
call sub.KERNEL32.dll_ReadProcessMemory
test eax, eax
je 0x41abf5
cmp dword [ebp - 0x10], 5
jne 0x41abf5
lea eax, [ebp - 0x10]
push eax
push 5
lea eax, [ebp - 9]
push eax
lea eax, [ebx + 0x10]
push eax
push esi
call sub.KERNEL32.dll_WriteProcessMemory
test eax, eax
je 0x41abf5
cmp dword [ebp - 0x10], 5
jne 0x41abf5
lea eax, [ebp - 0x14]
push eax
push 0x40
push 5
mov eax, dword [ebp - 0x236]
push eax
push esi
call sub.KERNEL32.dll_VirtualProtectEx
test eax, eax
je 0x41abf5
mov byte [ebp - 9], 0xe9
sub ebx, dword [ebp - 0x236]
sub ebx, 5
mov dword [ebp - 8], ebx
lea eax, [ebp - 0x10]
push eax
push 5
lea eax, [ebp - 9]
push eax
mov eax, dword [ebp - 0x236]
push eax
push esi
call sub.KERNEL32.dll_WriteProcessMemory
lea eax, [ebp - 0x14]
push eax
mov eax, dword [ebp - 0x14]
push eax
push 5
mov eax, dword [ebp - 0x236]
push eax
push esi
call sub.KERNEL32.dll_VirtualProtectEx
mov edi, 1
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0x41ac00
Capabilities:
Get number of processors

Disassembly:
mov eax, dword gs:[0x60]
mov edx, dword gs:[0x64]
ret
Function at 0x41de44
Capabilities:
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ebx
xor eax, eax
push ebp
push 0x41df21
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [0x4cb44c], 0
jne 0x41deed
lea edx, [ebp - 8]
mov eax, dword [0x4cae28]
call fcn.00406224
push dword [ebp - 8]
lea edx, [ebp - 0xc]
mov eax, dword [0x4cae30]
call fcn.00406224
push dword [ebp - 0xc]
lea eax, [ebp - 0x10]
push eax
call sub.KERNEL32.dll_GetCurrentProcessId
mov cl, 0x30
mov edx, 1
call fcn.00405dcc
push dword [ebp - 0x10]
lea eax, [ebp - 4]
mov edx, 3
call fcn.00403858
mov eax, dword [ebp - 4]
call fcn.00403998
push eax
push 4
push 0
push 4
push 0
push 0xffffffffffffffff
call sub.KERNEL32.dll_CreateFileMappingA
mov ebx, eax
push 0
push 0
push 0
push 0xf001f
push ebx
call sub.KERNEL32.dll_MapViewOfFile
mov dword [0x4cb44c], eax
mov eax, dword [0x4cb44c]
xor edx, edx
mov dword [eax], edx
push ebx
call sub.KERNEL32.dll_CloseHandle
cmp dword [0x4cb44c], 0
je 0x41df04
mov eax, dword [0x4cb44c]
call fcn.0041de34
mov ebx, eax
jmp 0x41df06
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41df28
lea eax, [ebp - 0x10]
mov edx, 4
call fcn.0040352c
ret

Function at 0x41e6f0
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffeb0
push ebx
xor eax, eax
mov dword [ebp - 0x150], eax
xor eax, eax
push ebp
push 0x41e795
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
lea eax, [ebp - 0x150]
mov edx, dword [ebp + 8]
mov edx, dword [edx + 8]
call fcn.00403700
mov eax, dword [ebp - 0x150]
lea edx, [ebp - 0x14c]
xor ecx, ecx
call fcn.0041cb9c
mov ebx, eax
test bl, bl
je 0x41e77c
mov eax, dword [ebp - 0x140]
push eax
call sub.KERNEL32.dll_CloseHandle
push 0x64
mov eax, dword [ebp - 0x12c]
push eax
call sub.KERNEL32.dll_WaitForSingleObject
push 0
mov eax, dword [ebp - 0x12c]
push eax
call sub.KERNEL32.dll_TerminateThread
mov eax, dword [ebp - 0x144]
push eax
call sub.KERNEL32.dll_CloseHandle
mov eax, dword [ebp - 0x12c]
push eax
call sub.KERNEL32.dll_CloseHandle
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41e79c
lea eax, [ebp - 0x150]
call fcn.00403508
ret
Function at 0x41e9c0
Capabilities:
Get token privileges

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
xor eax, eax
push ebp
push 0x41ebaa
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x4cb458], 0
jne 0x41eb8f
lea eax, [ebp - 4]
push eax
push 0x28
call sub.KERNEL32.dll_GetCurrentProcess
push eax
call sub.ADVAPI32.dll_OpenProcessToken
test eax, eax
je 0x41eb88
xor eax, eax
push ebp
push 0x41eb81
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebp - 8], eax
lea eax, [ebp - 8]
push eax
push 0
push 0
push 3
mov eax, dword [ebp - 4]
push eax
call sub.ADVAPI32.dll_GetTokenInformation
cmp dword [ebp - 8], 0
je 0x41eb6a
mov eax, dword [ebp - 8]
add eax, eax
push eax
push 0x40
call sub.KERNEL32.dll_LocalAlloc
mov ebx, eax
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 8]
add eax, eax
push eax
push ebx
push 3
mov eax, dword [ebp - 4]
push eax
call sub.ADVAPI32.dll_GetTokenInformation
test eax, eax
je 0x41eb64
lea eax, [ebp - 0x10]
push eax
lea edx, [ebp - 0x24]
mov eax, dword [0x4cad88]
call fcn.00406224
mov eax, dword [ebp - 0x24]
call fcn.00403998
push eax
push 0
call sub.ADVAPI32.dll_LookupPrivilegeValueA
test eax, eax
jne 0x41ea98
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 0x28]
mov eax, dword [0x4cad8c]
call fcn.00406224
mov eax, dword [ebp - 0x28]
call fcn.00403998
push eax
push 0
call sub.ADVAPI32.dll_LookupPrivilegeValueA
test eax, eax
jne 0x41eacb
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0
lea eax, [ebp - 0x20]
push eax
lea edx, [ebp - 0x2c]
mov eax, dword [0x4cad90]
call fcn.00406224
mov eax, dword [ebp - 0x2c]
call fcn.00403998
push eax
push 0
call sub.ADVAPI32.dll_LookupPrivilegeValueA
test eax, eax
jne 0x41eafe
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
mov esi, dword [ebx]
dec esi
test esi, esi
jl 0x41eb50
inc esi
xor ecx, ecx
lea edi, [ecx + ecx*2]
mov eax, dword [ebx + edi*4 + 4]
mov edx, dword [ebx + edi*4 + 8]
cmp edx, dword [ebp - 0xc]
jne 0x41eb1b
cmp eax, dword [ebp - 0x10]
je 0x41eb4c
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + eax*4 + 8]
mov eax, dword [ebx + eax*4 + 4]
cmp edx, dword [ebp - 0x14]
jne 0x41eb30
cmp eax, dword [ebp - 0x18]
je 0x41eb4c
lea eax, [ecx + ecx*2]
mov edx, dword [ebx + eax*4 + 8]
mov eax, dword [ebx + eax*4 + 4]
cmp edx, dword [ebp - 0x1c]
jne 0x41eb45
cmp eax, dword [ebp - 0x20]
je 0x41eb4c
or dword [ebx + edi*4 + 0xc], 2
inc ecx
dec esi
jne 0x41eb08
push 0
push 0
mov eax, dword [ebp - 8]
push eax
push ebx
push 0
mov eax, dword [ebp - 4]
push eax
call sub.ADVAPI32.dll_AdjustTokenPrivileges
push ebx
call sub.KERNEL32.dll_LocalFree
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41eb88
mov eax, dword [ebp - 4]
push eax
call sub.KERNEL32.dll_CloseHandle
ret
mov byte [0x4cb458], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x41ebb1
lea eax, [ebp - 0x2c]
mov edx, 3
call fcn.0040352c
ret
Function at 0x420f30
Capabilities:
Terminate process

Disassembly:
push 0x30
mov eax, 0x49fdfa
call fcn.0048a2c9
and dword [ebp - 4], 0
lea eax, [ebp - 0x3c]
push eax
call fcn.00421272
push str.msiexec.exe
lea ebx, [ebp - 0x3c]
mov byte [ebp - 4], 1
call fcn.00450c90
pop ecx
test eax, eax
jne 0x420feb
push ecx
mov eax, esp
mov dword [ebp - 0x14], esp
push str.DoMsiTrackerStop:_no_msiexec.exe_currently_running
push eax
call fcn.00452370
pop ecx
pop ecx
call fcn.004208e1
pop ecx
push ecx
mov eax, esp
mov dword [ebp - 0x14], esp
push str.DoMsiTrackerStop:_uninjecting_services.exe
push eax
call fcn.00452370
pop ecx
pop ecx
call fcn.004208e1
pop ecx
push 0
push dword [ebp + 8]
push str.services.exe
call fcn.00420c48
add esp, 8
mov esi, eax
mov eax, esp
mov dword [ebp - 0x14], esp
push esi
push str.DoMsiTrackerStop:_uninject_services.exe_returned:__d
push eax
call fcn.00452370
add esp, 0xc
call fcn.004208e1
pop ecx
test esi, esi
jne 0x421099
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 4], 0
call fcn.0043205c
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.0042001a
mov eax, esi
call fcn.0048a3a1
ret
mov esi, dword [ebp - 0x30]
cmp esi, dword [ebp - 0x2c]
jbe 0x420ff8
call fcn.00485682
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], esi
mov esi, dword [ebp - 0x2c]
cmp dword [ebp - 0x30], esi
jbe 0x42100e
call fcn.00485682
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x42101a
cmp eax, dword [ebp - 0x3c]
je 0x42101f
call fcn.00485682
cmp dword [ebp - 0x18], esi
je 0x420f7c
lea esi, [ebp - 0x1c]
call fcn.00432104
push dword [eax]
push 0
push 1
call dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edi, eax
call fcn.00432104
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push dword [eax]
test edi, edi
je 0x421075
push str.DoMsiTrackerStop:_killing_msiexec.exe_PID__d
push ecx
call fcn.00452370
add esp, 0xc
call fcn.004208e1
pop ecx
push 0
push edi
call dword [sym.imp.KERNEL32.dll_TerminateProcess]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x421089
push str.DoMsiTrackerStop:_cant_open_msiexec.exe_PID__d
push ecx
call fcn.00452370
add esp, 0xc
call fcn.004208e1
pop ecx
lea edi, [ebp - 0x24]
lea esi, [ebp - 0x1c]
call fcn.004212aa
jmp 0x421001
push 0x12
pop esi
jmp 0x420fcb
Function at 0x422a4a
Capabilities:
Get system information on windows

Disassembly:
push 4
mov eax, 0x49ef5f
call fcn.0048a2c9
mov edi, dword [ebp + 8]
xor esi, esi
mov ecx, edi
mov dword [ebp - 4], esi
call fcn.0042048a
push 4
mov byte [ebp - 4], 1
lea ebx, [edi + 0x74]
call fcn.00476b6e
pop ecx
cmp eax, esi
je 0x422a7c
mov dword [eax], ebx
jmp 0x422a7e
xor eax, eax
mov dword [ebx], eax
mov dword [ebx + 0xc], esi
mov dword [ebx + 0x10], esi
mov dword [ebx + 0x14], esi
lea eax, [ebp + 0xc]
push eax
mov ecx, edi
mov byte [ebp - 4], 3
call fcn.0042274e
mov eax, dword [ebp + 0x10]
or dword [edi + 4], 0xffffffff
or dword [edi + 8], 0xffffffff
mov dword [edi + 0x18], eax
lea eax, [edi + 0x4c]
push eax
mov dword [edi + 0x10], esi
mov dword [edi + 0x14], esi
mov dword [edi + 0x20], esi
mov dword [edi + 0x24], esi
mov dword [edi + 0x28], esi
mov dword [edi + 0x2c], esi
mov dword [edi + 0x30], esi
mov dword [edi + 0x38], esi
mov dword [edi + 0x3c], esi
mov dword [edi + 0x40], esi
mov dword [edi + 0x44], esi
mov dword [edi + 0x8c], esi
mov dword [edi + 0x48], esi
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ecx, dword [edi + 0x68]
xor edx, edx
mov eax, 0x400000
div ecx
push dword [ebp + 0x14]
imul eax, ecx
mov dword [edi + 0x70], eax
call fcn.00464980
mov ecx, dword [ebp + 0xc]
add ecx, 0xfffffff0
call fcn.0042001a
mov eax, edi
call fcn.0048a3a1
ret 0x10
Function at 0x422b6e
Capabilities:
Set file attributes

Disassembly:
push 0xc
mov eax, 0x4a0f19
call fcn.0048a2c9
push dword [ebp + 0x10]
lea ecx, [ebp - 0x10]
call fcn.004211c4
and dword [ebp - 4], 0
push 0x5c
push ecx
lea eax, [ebp - 0x10]
mov dword [ebp - 0x18], esp
mov ecx, esp
push eax
call fcn.00421355
lea eax, [ebp - 0x14]
push eax
call fcn.004529b0
add esp, 8
mov dword [ebp - 0x18], esp
mov esi, esp
push ecx
lea eax, [ebp - 0x14]
mov dword [ebp - 0x18], esp
mov ecx, esp
push eax
mov byte [ebp - 4], 1
call fcn.00421355
push esi
call fcn.00467680
pop ecx
pop ecx
call fcn.00454a90
cmp dword [ebp + 0x18], 0
mov edi, dword [sym.imp.KERNEL32.dll_SetFileAttributesW]
pop ecx
mov ebx, eax
jne 0x422c89
push ecx
lea eax, [ebp - 0x10]
mov dword [ebp + 0x18], esp
mov ecx, esp
push eax
call fcn.00421355
lea esi, [ebp + 0x18]
call fcn.00467330
pop ecx
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 2
push dword [eax]
mov eax, dword [ebp + 8]
call fcn.00463e70
pop ecx
mov byte [ebp - 4], 1
mov ecx, dword [ebp + 0x18]
add ecx, 0xfffffff0
mov esi, eax
call fcn.0042001a
cmp esi, 0x200
jne 0x422c9e
push 0
push ecx
lea eax, [ebp - 0x10]
mov dword [ebp + 0x18], esp
mov ecx, esp
push eax
call fcn.00421355
lea eax, [ebp + 0x18]
push eax
call fcn.00467680
pop ecx
pop ecx
push dword [eax]
call edi
mov ecx, dword [ebp + 0x18]
add ecx, 0xfffffff0
call fcn.0042001a
push ecx
lea eax, [ebp - 0x10]
mov dword [ebp + 0x18], esp
mov ecx, esp
push eax
call fcn.00421355
lea esi, [ebp + 0x18]
call fcn.00467330
pop ecx
mov edx, dword [ebp + 0xc]
mov byte [ebp - 4], 3
push dword [eax]
mov eax, dword [ebp + 8]
call fcn.00463e70
pop ecx
mov byte [ebp - 4], 1
mov ecx, dword [ebp + 0x18]
add ecx, 0xfffffff0
mov esi, eax
call fcn.0042001a
jmp 0x422c9e
push dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
call fcn.00463eb0
pop ecx
pop ecx
mov esi, eax
test esi, esi
jne 0x422ce3
cmp dword [ebp + 0x14], esi
je 0x422cd3
push dword [ebp + 0x14]
lea eax, [ebp - 0x10]
push ecx
mov dword [ebp + 0x18], esp
mov ecx, esp
push eax
call fcn.00421355
lea eax, [ebp + 0x18]
push eax
call fcn.00467680
pop ecx
pop ecx
push dword [eax]
call edi
mov ecx, dword [ebp + 0x18]
add ecx, 0xfffffff0
call fcn.0042001a
test ebx, ebx
jne 0x422ce3
push 1
push dword [ebp - 0x14]
call fcn.0045df50
pop ecx
pop ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.0042001a
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.0042001a
mov eax, esi
call fcn.0048a3a1
ret
Function at 0x4235e2
Capabilities:
Get file size
Read file on windows

Disassembly:
push 0x14
mov eax, 0x4a0ac5
call fcn.0048a2c9
push dword [ebp + 0xc]
xor ebx, ebx
lea ecx, [ebp - 0x14]
mov byte [ebp - 0xd], bl
call fcn.004211c4
push str.VirtApp.ini
lea ecx, [ebp - 0x14]
mov dword [ebp - 4], ebx
call fcn.00423aeb
push ebx
push 0x80
push 3
push ebx
push 1
push SysReAllocStringLen
push dword [ebp - 0x14]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov edi, eax
cmp edi, 0xffffffff
je 0x423681
push ebx
push edi
mov dword [ebp - 0x1c], ebx
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
lea eax, [esi + 2]
push 1
push eax
call fcn.00485dc3
pop ecx
pop ecx
push ebx
lea ecx, [ebp - 0x1c]
push ecx
push esi
push eax
push edi
mov dword [ebp - 0x18], eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov ecx, dword [ebp + 8]
shr esi, 1
push esi
push dword [ebp - 0x18]
call fcn.00422d01
pop ecx
pop ecx
test al, al
je 0x423678
mov byte [ebp - 0xd], 1
push dword [ebp - 0x18]
call fcn.004856b3
pop ecx
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.0042001a
mov al, byte [ebp - 0xd]
call fcn.0048a3a1
ret

Function at 0x423d52
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push 0x10
mov eax, 0x4a02cd
call fcn.0048a2c9
lea eax, [ebp + 8]
xor ebx, ebx
push eax
mov ecx, 0x4c893c
mov dword [ebp - 4], ebx
call fcn.0042274e
lea eax, [ebp + 8]
mov esi, 0x4c8748
push eax
mov ecx, esi
call fcn.0042274e
push 1
push ecx
mov dword [ebp - 0x14], esp
mov ecx, esp
push esi
call fcn.00421355
lea edi, [ebp - 0x14]
call fcn.00452280
pop ecx
pop ecx
push eax
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.0042274e
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x14]
add ecx, 0xfffffff0
call fcn.0042001a
push 1
lea eax, [ebp - 0x14]
push eax
mov ecx, esi
call fcn.00423a11
mov edi, 0x4aa0a4
push edi
mov ecx, eax
mov byte [ebp - 4], 2
call fcn.00422668
test eax, eax
mov byte [ebp - 4], bl
mov ecx, dword [ebp - 0x14]
setne byte [ebp - 0xd]
add ecx, 0xfffffff0
call fcn.0042001a
cmp byte [ebp - 0xd], bl
je 0x423df2
push edi
mov ecx, esi
call fcn.00423aeb
mov esi, dword [0x4c8748]
call fcn.00454ae0
push dword [0x4c8748]
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x423e3f
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
push str.Diff_Init:_Cannot_create_TempDir
call fcn.004211c4
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push 0x4b1750
mov byte [ebp - 4], 3
call fcn.004211c4
push 3
mov byte [ebp - 4], bl
call fcn.004565a0
add esp, 0xc
push 0x4c8770
call fcn.0042459b
mov esi, 0x4a94b0
push esi
mov ecx, 0x4c874c
call fcn.0042149d
push esi
mov ecx, 0x4c8754
call fcn.0042149d
push ecx
mov ecx, esp
mov dword [ebp - 0x18], esp
push esi
call fcn.004211c4
push 0x4c8788
call fcn.00424add
call fcn.004406c0
call fcn.004356b0
mov ecx, dword [ebp + 8]
add ecx, 0xfffffff0
call fcn.0042001a
xor eax, eax
inc eax
call fcn.0048a3a1
ret
Function at 0x4257d4
Capabilities:
Find taskbar

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x38
xor eax, eax
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x24], ecx
lea edi, [ebp - 0x20]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
mov dword [ebp - 0x14], ecx
lea edi, [ebp - 0x10]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
mov dword [ebp - 0x34], ecx
xor eax, eax
lea edi, [ebp - 0x30]
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov ebx, dword [sym.imp.USER32.dll_GetWindowRect]
lea ecx, [ebp - 0x24]
push ecx
push eax
call ebx
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 8]
call ebx
mov esi, dword [ebp - 0x1c]
mov edi, dword [ebp - 0x10]
sub esi, dword [ebp - 0xc]
sub edi, dword [ebp - 8]
sub esi, dword [ebp - 0x24]
sub edi, dword [ebp - 0x20]
add esi, dword [ebp - 0x14]
add edi, dword [ebp - 0x18]
push 0
push str.Shell_TrayWnd
call dword [sym.imp.USER32.dll_FindWindowW]
test eax, eax
je 0x42586a
lea ecx, [ebp - 0x34]
push ecx
push eax
call ebx
mov eax, dword [ebp - 0x30]
mov ecx, dword [ebp - 0x34]
test eax, eax
jg 0x42585c
test ecx, ecx
jle 0x42586a
jmp 0x425861
sub eax, dword [ebp - 0x28]
add edi, eax
test ecx, ecx
jle 0x42586a
sub ecx, dword [ebp - 0x2c]
add esi, ecx
mov eax, dword [ebp - 8]
sub eax, dword [ebp - 0x10]
push 1
push eax
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x14]
push eax
push edi
push esi
push dword [ebp + 8]
call dword [sym.imp.USER32.dll_MoveWindow]
pop edi
pop esi
pop ebx
leave
ret
Function at 0x4259c7
Capabilities:
Create directory
Create thread

Disassembly:
push 0x30
mov eax, 0x49f837
call fcn.0048a2c9
xor esi, esi
push esi
push ecx
mov ecx, esp
mov dword [ebp - 0x14], esp
mov ebx, str.Cameyo
push ebx
mov dword [ebp - 0x18], esi
call fcn.004211c4
lea eax, [ebp - 0x10]
push eax
call fcn.00451bd0
pop ecx
pop ecx
push dword [eax]
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ecx, dword [ebp - 0x10]
add ecx, 0xfffffff0
call fcn.0042001a
push 0x10
call fcn.00476b6e
mov edi, eax
pop ecx
cmp edi, esi
je 0x425a2e
lea ecx, [edi + 8]
call fcn.0042048a
lea ecx, [edi + 0xc]
call fcn.0042048a
mov dword [0x4c86f0], edi
jmp 0x425a34
mov dword [0x4c86f0], esi
push ecx
mov edi, esp
mov dword [ebp - 0x14], esp
push ecx
mov ecx, esp
mov dword [ebp - 0x1c], esp
push 0x4aa0a4
call fcn.004211c4
push ecx
mov dword [ebp - 4], esi
mov ecx, esp
mov dword [ebp - 0x20], esp
push str.Troubleshoot.log
call fcn.004211c4
push ecx
mov eax, esp
mov dword [ebp - 0x14], esp
push ecx
mov dword [ebp - 0x14], esp
mov ecx, esp
push ebx
mov byte [ebp - 4], 1
mov dword [ebp - 0x14], eax
call fcn.004211c4
mov eax, dword [ebp - 0x14]
push eax
call fcn.00451bd0
or dword [ebp - 4], 0xffffffff
pop ecx
pop ecx
call fcn.00452020
add esp, 0xc
call fcn.004253ec
lea eax, [ebp - 0x18]
push eax
push esi
push dword [ebp + 8]
push 0x4256f4
push esi
push esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edi, dword [sym.imp.USER32.dll_GetMessageW]
jmp 0x425ac3
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
push esi
push esi
push esi
lea eax, [ebp - 0x3c]
push eax
call edi
test eax, eax
jg 0x425aaf
mov eax, dword [ebp - 0x34]
call fcn.0048a3a1
ret 4