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

Disassembly:
sub esp, 0x290
mov eax, dword [0x569638]
xor eax, esp
mov dword [esp + 0x28c], eax
push ebx
push esi
push 0x80
lea eax, [esp + 0x14]
push 0
push eax
call fcn.004fb000
push 0x80
lea ebx, [esp + 0x20]
mov ecx, edi
call fcn.00514e80
lea eax, [esp + 0x1a0]
mov edx, edi
mov ecx, eax
add esp, 0x10
mov esi, 0x104
sub edx, ecx
lea esp, [esp]
lea ecx, [esi + 0x7ffffefa]
test ecx, ecx
je 0x515fbb
mov cl, byte [edx + eax]
test cl, cl
je 0x515fbb
mov byte [eax], cl
inc eax
sub esi, 1
jne 0x515fa0
jmp 0x515fbf
test esi, esi
jne 0x515fc0
dec eax
lea edx, [esp + 0x10]
push edx
mov byte [eax], 0
push 0x104
lea eax, [esp + 0x198]
push eax
call fcn.00514d90
push 0xff
lea ecx, [esp + 0x95]
push 0
push ecx
mov dword [esp + 0x18], 1
mov byte [esp + 0x9c], 0
call fcn.004fb000
add esp, 0xc
lea edx, [esp + 8]
push edx
lea eax, [esp + 0x94]
push eax
lea ecx, [esp + 0x14]
push ecx
push 0x53fbf4
push str.Software360SafeLiveup
push reloc.OLEAUT32.dll_SysReAllocString
mov dword [esp + 0x20], 0x100
call dword [sym.imp.SHLWAPI.dll_SHGetValueA]
mov esi, dword [sym.imp.SHLWAPI.dll_SHSetValueA]
test eax, eax
jne 0x51609b
mov ecx, edi
lea eax, [esp + 0x90]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x516063
test dl, dl
je 0x51605f
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x516063
add eax, 2
add ecx, 2
test dl, dl
jne 0x516043
xor eax, eax
jmp 0x516068
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x51609b
lea eax, [esp + 0x90]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x516076
sub eax, edx
push eax
lea edx, [esp + 0x94]
push edx
push 1
push str.mid_old
push str.Software360SafeLiveup
push reloc.OLEAUT32.dll_SysReAllocString
call esi
lea eax, [esp + 0x190]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x5160a5
sub eax, edx
push eax
lea eax, [esp + 0x194]
push eax
push 1
push 0x53fbf4
push str.Software360SafeLiveup
push reloc.OLEAUT32.dll_SysReAllocString
call esi
mov ecx, dword [esp + 0x294]
pop esi
pop ebx
xor ecx, esp
call fcn.004f398f
add esp, 0x290
ret
Function at 0x404a03
Capabilities:
Link many functions at runtime

Disassembly:
push ebx
push ecx
push ebp
push esi
push edi
mov esi, esp
sub esp, 0x44
mov eax, esp
mov edx, eax
add edx, 0x44
mov dword [eax], 0
add eax, 4
cmp eax, edx
jne 0x404a14
push str.psapi.dll
call sub.KERNEL32.DLL_LoadLibraryA
mov dword [esp], eax
cmp dword [esp], 0
je 0x404b14
push str.EnumProcesses
push dword [esp + 4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 4], eax
push str.EnumProcessModules
push dword [esp + 4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 8], eax
push str.GetModuleBaseNameA
push dword [esp + 4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 0xc], eax
push str.GetModuleFileNameExA
push dword [esp + 4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 0x10], eax
push str.EnumDeviceDrivers
push dword [esp + 4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 0x14], eax
push str.GetDeviceDriverBaseNameA
push dword [esp + 4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 0x18], eax
push str.GetDeviceDriverFileNameA
push dword [esp + 4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 0x1c], eax
push str.GetProcessMemoryInfo
push dword [esp + 4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 0x20], eax
push str.EmptyWorkingSet
push dword [esp + 4]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [0x415268], eax
push 0x1000
push 0
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [esp + 0x24], eax
push 0x1000
push 0
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [esp + 0x28], eax
push 0x1000
push 0
call sub.KERNEL32.DLL_GlobalAlloc
mov dword [esp + 0x2c], eax
push 0x4120d3
call sub.KERNEL32.DLL_LoadLibraryA
mov dword [esp + 0x30], eax
cmp dword [esp + 0x30], 0
je 0x404b71
push str.CreateToolhelp32Snapshot
push dword [esp + 0x34]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 0x34], eax
push str.Thread32First
push dword [esp + 0x34]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 0x38], eax
push str.Thread32Next
push dword [esp + 0x34]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 0x3c], eax
push str.OpenThread
push dword [esp + 0x34]
call sub.KERNEL32.DLL_GetProcAddress
mov dword [esp + 0x40], eax
xor eax, eax
add esp, 0x44
pop edi
pop esi
pop ebp
pop ecx
pop ebx
ret
Function at 0x406ee9
Capabilities:
Timestomp file

Disassembly:
push ebx
push ecx
push ebp
push esi
push edi
push dword [esp + 0x20]
pop dword [0x4122e8]
mov esi, esp
sub esp, 0x3c
mov eax, esp
mov edx, eax
add edx, 0x3c
mov dword [eax], 0
add eax, 4
cmp eax, edx
jne 0x406f04
mov edx, dword [esi + 0x18]
lea ecx, [esp]
call fcn.0040bcd1
mov edx, dword [esi + 0x1c]
lea ecx, [esp + 4]
call fcn.0040bcd1
lea eax, [esp + 8]
lea eax, [esp + 0x10]
lea eax, [esp + 0x18]
lea eax, [esp + 0x20]
push dword [esp]
push 0
call fcn.00410b7a
mov dword [esp + 0x30], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x3c]
call sub.KERNEL32.DLL_GetFileTime
push 0
push 0
push 3
push 0
push 3
push 0x40000000
push dword [esp + 0x1c]
call sub.KERNEL32.DLL_CreateFileA
mov dword [esp + 0x34], eax
lea eax, [esp + 0x18]
push eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x10]
push eax
push dword [esp + 0x40]
call sub.KERNEL32.DLL_SetFileTime
push dword [esp + 0x34]
call sub.KERNEL32.DLL_CloseHandle
push 0
call fcn.004109e9
mov edx, dword [esp + 0x38]
push dword [0x4122e8]
call fcn.0040bd10
pop eax
jmp 0x406fd1
mov edx, dword [esp]
call fcn.0040bd30
mov edx, dword [esp + 4]
call fcn.0040bd30
mov edx, dword [esp + 0x38]
call fcn.0040bd30
add esp, 0x3c
pop edi
pop esi
pop ebp
pop ecx
pop ebx
ret 8

Function at 0x406ffb
Capabilities:
Set registry value

Disassembly:
push ebx
push ecx
push ebp
push esi
push edi
mov esi, esp
sub esp, 0x1c
mov eax, esp
mov edx, eax
add edx, 0x1c
mov dword [eax], 0
add eax, 4
cmp eax, edx
jne 0x40700c
mov eax, dword [esi + 0x18]
mov dword [esp], eax
mov edx, dword [esi + 0x1c]
lea ecx, [esp + 4]
call fcn.0040bcd1
mov edx, dword [esi + 0x20]
lea ecx, [esp + 8]
call fcn.0040bcd1
mov edx, dword [esi + 0x24]
lea ecx, [esp + 0xc]
call fcn.0040bcd1
mov dword [esp + 0x10], 0xffffffff
lea eax, [esp + 0x14]
push eax
push dword [esp + 8]
push dword [esp + 8]
call sub.ADVAPI32.dll_RegCreateKeyA
mov ebx, eax
cmp ebx, 0
jne 0x4070a9
mov eax, dword [esp + 0xc]
call fcn.0040b507
mov dword [esp + 0x18], eax
push dword [esp + 0x18]
mov eax, dword [esp + 0x10]
push eax
push 1
push 0
push dword [esp + 0x18]
push dword [esp + 0x28]
call sub.ADVAPI32.dll_RegSetValueExA
mov ebx, eax
cmp ebx, 0
jne 0x4070a0
mov dword [esp + 0x10], 1
push dword [esp + 0x14]
call sub.ADVAPI32.dll_RegCloseKey
mov eax, dword [esp + 0x10]
jmp 0x4070b1
mov edx, dword [esp + 8]
call fcn.0040bd30
mov edx, dword [esp + 4]
call fcn.0040bd30
mov edx, dword [esp + 0xc]
call fcn.0040bd30
add esp, 0x1c
pop edi
pop esi
pop ebp
pop ecx
pop ebx
ret 0x10
Function at 0x40bf10
Capabilities:
Create http request
Read data from internet
Receive data

Disassembly:
push ebx
push ecx
push ebp
push esi
push edi
push dword [esp + 0x20]
pop dword [0x4122e8]
mov esi, esp
sub esp, 0x24
mov eax, esp
mov edx, eax
add edx, 0x24
mov dword [eax], 0
add eax, 4
cmp eax, edx
jne 0x40bf2b
mov edx, dword [esi + 0x18]
lea ecx, [esp]
call fcn.0040bcd1
mov eax, dword [esi + 0x1c]
mov byte [esp + 4], al
mov byte [esp + 5], 1
mov dword [esp + 6], 0x80000000
mov dword [esp + 0xa], 0
mov dword [esp + 0xe], 0
mov dword [esp + 0x12], 0
push dword [0x4122e8]
mov eax, 0x800
call fcn.0040b75b
lea ecx, [esp + 0x1a]
pop edx
call fcn.0040bc64
mov edx, 0x4122f0
lea ecx, [esp + 0x1a]
call fcn.0040bcb0
push 0
push 0
push 0
movsx eax, byte [esp + 0x10]
push eax
push str.Opera_6.01
call sub.WININET.dll_InternetOpenA
mov dword [esp + 0xa], eax
push 0
push dword [esp + 0xa]
push 0
push 0
push dword [esp + 0x10]
push dword [esp + 0x1e]
call sub.WININET.dll_InternetOpenUrlA
mov dword [esp + 0xe], eax
mov eax, 1
call fcn.004161c0
lea eax, [esp + 0x12]
push eax
mov eax, dword [esp + 0x1a]
call fcn.0040b507
push eax
mov eax, dword [esp + 0x1e]
push eax
push dword [esp + 0x1a]
call sub.WININET.dll_InternetReadFile
mov ebx, dword [esp + 0x12]
cmp ebx, 0
jne 0x40c015
mov byte [esp + 5], 0
jmp 0x40c042
mov edx, dword [esp + 0x1a]
push dword [0x4122e8]
call fcn.0040bd10
push dword [0x4122e8]
push dword [esp + 0x1a]
mov eax, dword [esp + 0x22]
call fcn.0040b4ca
pop eax
lea ecx, [esp + 0x1e]
pop edx
call fcn.0040bc64
mov ebx, dword [esp + 0x1e]
add ebx, dword [esp + 0x12]
mov dword [esp + 0x1e], ebx
movsx ebx, byte [esp + 5]
cmp ebx, 0
jne 0x40bfde
push dword [esp + 0xe]
call sub.WININET.dll_InternetCloseHandle
push dword [esp + 0xa]
call sub.WININET.dll_InternetCloseHandle
mov edx, dword [esp + 0x1a]
push dword [0x4122e8]
call fcn.0040bd10
pop eax
jmp 0x40c084
mov edx, dword [esp + 0x16]
call fcn.0040bd30
mov edx, dword [esp + 0x1a]
call fcn.0040bd30
mov edx, dword [esp]
call fcn.0040bd30
add esp, 0x24
pop edi
pop esi
pop ebp
pop ecx
pop ebx
ret 8

Function at 0x40c0b0
Capabilities:
Get common file path

Disassembly:
push ebx
push ecx
push ebp
push esi
push edi
push dword [esp + 0x18]
pop dword [0x4122e8]
mov esi, esp
sub esp, 4
mov eax, esp
mov edx, eax
add edx, 4
mov dword [eax], 0
add eax, 4
cmp eax, edx
jne 0x40c0cb
push dword [0x4122e8]
mov eax, 0x1f4
call fcn.0040b75b
lea ecx, [esp + 4]
pop edx
call fcn.0040bc64
mov eax, dword [esp]
push eax
push 0x226
call sub.KERNEL32.DLL_GetCurrentDirectoryA
mov edx, dword [esp]
push dword [0x4122e8]
call fcn.0040bd10
pop eax
jmp 0x40c119
mov edx, dword [esp]
call fcn.0040bd30
add esp, 4
pop edi
pop esi
pop ebp
pop ecx
pop ebx
ret
Function at 0x40e49e
Capabilities:
Enumerate gui resources

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
cmp dword [ebp + 8], 0
je 0x40e4b8
push dword [ebp + 8]
push 0x40e430
call sub.USER32.dll_EnumWindows
jmp 0x40e4ef
mov edi, dword [0x414240]
jmp 0x40e4eb
mov esi, dword [edi]
call sub.KERNEL32.DLL_GetCurrentThreadId
cmp dword [edi + 8], eax
jne 0x40e4e9
push 1
push dword [edi + 0xc]
call sub.USER32.dll_EnableWindow
mov eax, edi
add eax, 8
push eax
push 0x414240
call fcn.00410e50
add esp, 8
mov edi, esi
or edi, edi
jne 0x40e4c0
pop edi
pop esi
pop ebp
ret 4

Function at 0x40e650
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x244
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
xor ebx, ebx
or esi, esi
je 0x40e728
mov dword [ebp - 0x40], esi
push esi
call sub.CRTDLL.dll_strlen
pop ecx
lea edi, [eax + esi - 1]
jmp 0x40e67a
dec edi
cmp edi, esi
jbe 0x40e683
cmp byte [edi], 0x5c
jne 0x40e679
cmp edi, esi
jbe 0x40e6b9
mov byte [edi], 0
push esi
lea eax, [ebp - 0x240]
push eax
call sub.CRTDLL.dll_strcpy
push 0x414256
lea eax, [ebp - 0x240]
push eax
call sub.CRTDLL.dll_strcat
add esp, 0x10
lea eax, [ebp - 0x240]
mov dword [ebp - 0x40], eax
mov byte [edi], 0x5c
jmp 0x40e6bd
and dword [ebp - 0x40], 0
mov eax, dword [ebp + 0x10]
or eax, eax
je 0x40e6cc
cmp byte [eax], 0
je 0x40e6cc
mov dword [ebp - 0x40], eax
xor edi, edi
inc edi
test byte [ebp + 0x14], 2
je 0x40e6d7
xor edi, edi
mov dword [ebp - 0x3c], 0x3c
mov dword [ebp - 0x38], 0x40
mov dword [ebp - 0x20], edi
lea eax, str.Open
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x2c], esi
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x3c]
push eax
call sub.SHELL32.DLL_ShellExecuteExA
mov ebx, eax
or eax, eax
je 0x40e728
cmp dword [ebp - 4], 0
je 0x40e728
test byte [ebp + 0x14], 1
je 0x40e725
push 0xffffffffffffffff
push dword [ebp - 4]
call sub.KERNEL32.DLL_WaitForSingleObject
mov ebx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
pop ebx
leave
ret 0x10
Function at 0x40fa90
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov esi, dword [ebp + 8]
push 9
call sub.USER32.dll_GetKeyState
mov ebx, eax
movsx ebx, bx
test bl, 0x80
je 0x40fb0a
push 0x11
call sub.USER32.dll_GetKeyState
mov ebx, eax
movsx ebx, bx
test bl, 0x80
jne 0x40fb0a
push 0x10
call sub.USER32.dll_GetKeyState
mov ebx, eax
movsx ebx, bx
test bl, 0x80
jne 0x40fb0a
push 0x12
call sub.USER32.dll_GetKeyState
mov ebx, eax
movsx ebx, bx
test bl, 0x80
jne 0x40fb0a
call sub.USER32.dll_GetFocus
push 5
lea ebx, [ebp - 5]
push ebx
push eax
call sub.USER32.dll_GetClassNameA
push 4
push str.Rich
lea eax, [ebp - 5]
push eax
call sub.CRTDLL.dll_strncmp
add esp, 0xc
or eax, eax
jne 0x40fb0a
jmp 0x40fb50
mov edi, dword [0x415c68]
jmp 0x40fb1e
cmp dword [edi + 8], esi
jne 0x40fb1c
mov eax, dword [edi + 0x14]
jmp 0x40fb50
mov edi, dword [edi]
or edi, edi
jne 0x40fb12
jmp 0x40fb46
mov ebx, edi
shl ebx, 4
mov edx, dword [0x415c24]
cmp dword [edx + ebx], esi
jne 0x40fb45
mov ebx, edi
shl ebx, 4
mov edx, dword [0x415c24]
mov eax, dword [ebx + edx + 0xc]
jmp 0x40fb50
inc edi
cmp edi, dword [0x415c20]
jl 0x40fb24
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret 4
Function at 0x10001000
Capabilities:
Check for time delay via gettickcount

Disassembly:
sub esp, 0xc
mov eax, dword [0x1001f454]
xor eax, esp
mov dword [esp + 8], eax
cmp dword [esp + 0x14], 1
push ebp
mov ebp, dword [sym.imp.KERNEL32.dll_GetLastError]
jne 0x100010bd
push ebx
push esi
push edi
call ebp
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x100207c0], eax
call edi
call edi
mov ebx, eax
push ebx
call fcn.10006126
add esp, 4
mov esi, 0xf4240
call fcn.10006138
call fcn.10006138
call fcn.10006138
sub esi, 1
jne 0x10001044
mov esi, 0xf4240
lea ecx, [ecx]
call fcn.10006138
mov dword [esp + 0x10], eax
fild dword [esp + 0x10]
fstp dword [esp + 0x10]
fldz
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x44
jnp 0x10001091
call fcn.10006138
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fdiv dword [esp + 0x10]
jmp 0x1000109e
call fcn.10006138
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fstp dword [esp + 0x10]
fldz
fcomp dword [esp + 0x10]
fnstsw ax
call fcn.10006138
sub esi, 1
jne 0x10001060
call edi
cmp eax, ebx
jbe 0x100010b4
pop edi
pop esi
pop ebx
mov eax, dword [esp + 0x14]
mov dword [0x100207c4], eax
call ebp
mov dword [0x100207c0], eax
call ebp
mov ecx, dword [esp + 0xc]
pop ebp
mov dword [0x100207c0], eax
xor ecx, esp
mov eax, 1
call fcn.100061de
add esp, 0xc
ret 0xc
Function at 0x10005150
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
sub esp, 0x104
mov eax, dword [0x1001f454]
xor eax, esp
mov dword [esp + 0x100], eax
push ebx
push esi
push edi
push 0xff
xor esi, esi
lea eax, [esp + 0x11]
push esi
push eax
mov byte [esp + 0x18], 0
call fcn.100062d0
mov ebx, dword [esp + 0x120]
mov eax, ebx
add esp, 0xc
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10005190
sub eax, edx
mov edi, eax
xor ecx, ecx
lea ecx, [ecx]
xor edx, edx
mov eax, ecx
div edi
mov byte [ecx + 0x100213e8], cl
inc ecx
cmp ecx, 0x100
mov dl, byte [edx + ebx]
mov byte [esp + ecx + 0xb], dl
jl 0x100051a0
xor eax, eax
mov edi, edi
mov cl, byte [eax + 0x100213e8]
movsx edx, byte [esp + eax + 0xc]
movzx edi, cl
add edx, esi
add edi, edx
mov esi, edi
and esi, 0x800000ff
jns 0x100051e4
dec esi
or esi, 0xffffff00
inc esi
mov dl, byte [esi + 0x100213e8]
mov byte [eax + 0x100213e8], dl
inc eax
cmp eax, 0x100
mov byte [esi + 0x100213e8], cl
jl 0x100051c0
mov ecx, dword [esp + 0x10c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100061de
add esp, 0x104
ret

Function at 0x10005320
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x24
mov eax, dword [0x1001f454]
xor eax, esp
mov dword [esp + 0x20], eax
xor eax, eax
push ebx
push esi
mov dword [esp + 9], eax
mov dword [esp + 0xd], eax
mov dword [esp + 0x19], eax
mov dword [esp + 0x1d], eax
mov dword [esp + 0x11], eax
push edi
mov dword [esp + 0x25], eax
mov dl, 0x73
mov edi, ecx
mov cl, 0x65
mov byte [esp + 0x19], al
mov al, 0x6f
mov bl, 0x53
push str.User32.dll
mov byte [esp + 0x10], bl
mov byte [esp + 0x12], 0x6e
mov byte [esp + 0x15], cl
mov byte [esp + 0x13], 0x64
mov byte [esp + 0x14], 0x4d
mov byte [esp + 0x1b], 0x41
mov byte [esp + 0x17], dl
mov byte [esp + 0x11], cl
mov byte [esp + 0x16], dl
mov byte [esp + 0x18], 0x61
mov byte [esp + 0x19], 0x67
mov byte [esp + 0x1a], cl
mov byte [esp + 0x26], 0x43
mov byte [esp + 0x27], al
mov byte [esp + 0x25], dl
mov byte [esp + 0x21], cl
mov byte [esp + 0x28], 0x6c
mov byte [esp + 0x23], bl
mov byte [esp + 0x22], 0x74
mov byte [esp + 0x20], 0x47
mov byte [esp + 0x29], al
mov byte [esp + 0x2a], 0x72
mov byte [esp + 0x24], 0x79
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov esi, eax
test esi, esi
je 0x100053f2
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
lea eax, [esp + 0xc]
push eax
push esi
call ebx
lea ecx, [esp + 0x1c]
push ecx
push esi
mov dword [0x100214ec], eax
call ebx
mov dword [0x100214e8], eax
mov ecx, dword [esp + 0x2c]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.100061de
add esp, 0x24
ret
Function at 0x10005460
Capabilities:
Get file size
Read file on windows

Disassembly:
sub esp, 0x1c
cmp dword [0x100214ec], 0
je 0x1000554f
mov eax, dword [esp + 0x24]
push ebx
push esi
push eax
call fcn.10007beb
add esp, 4
push 0xf
mov ebx, eax
mov dword [esp + 0xc], 0
call dword [0x100214e8]
push eax
push 0
push 0x443
push ebx
call dword [0x100214ec]
push 0x7fffffff
push 0
push 0x435
push ebx
call dword [0x100214ec]
mov ecx, dword [esp + 0x28]
push 0
push 0
push 3
push 0
push 1
push 0x80000000
push ecx
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov esi, eax
cmp esi, 0xffffffff
je 0x10005540
push edi
push 0
push esi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov edi, eax
push edi
call fcn.10006085
add esp, 4
push 0
lea edx, [esp + 0x10]
push edx
push edi
push eax
push esi
mov dword [esp + 0x24], eax
call dword [sym.imp.KERNEL32.dll_ReadFile]
mov eax, dword [esp + 0xc]
lea edx, [esp + 0x1c]
push edx
push 2
push 0x449
lea ecx, [esp + 0x1c]
push ebx
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0x10005420
call dword [0x100214ec]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov eax, dword [esp + 0xc]
push eax
call fcn.10006763
add esp, 4
pop esi
pop ebx
add esp, 0x1c
ret

Function at 0x100061de
Capabilities:
Terminate process

Disassembly:
cmp ecx, dword [0x1001f454]
jne 0x100061e8
repz ret
jmp fcn.1000be5a
Function at 0x10015fbf
Capabilities:
Link many functions at runtime

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
push edi
call fcn.1000ad33
and dword [ebp - 4], 0
cmp dword [0x10022008], 0
mov ebx, eax
jne 0x10016070
push str.USER32.DLL
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov edi, eax
test edi, edi
je 0x10016121
mov esi, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push str.MessageBoxA
push edi
call esi
test eax, eax
je 0x10016121
push eax
call fcn.1000acc1
mov dword [esp], str.GetActiveWindow
push edi
mov dword [0x10022008], eax
call esi
push eax
call fcn.1000acc1
mov dword [esp], str.GetLastActivePopup
push edi
mov dword [0x1002200c], eax
call esi
push eax
call fcn.1000acc1
mov dword [esp], str.GetUserObjectInformationA
push edi
mov dword [0x10022010], eax
call esi
push eax
call fcn.1000acc1
pop ecx
mov dword [0x10022018], eax
test eax, eax
je 0x10016070
push str.GetProcessWindowStation
push edi
call esi
push eax
call fcn.1000acc1
pop ecx
mov dword [0x10022014], eax
mov eax, dword [0x10022014]
cmp eax, ebx
je 0x100160c8
cmp dword [0x10022018], ebx
je 0x100160c8
push eax
call fcn.1000ad3c
push dword [0x10022018]
mov esi, eax
call fcn.1000ad3c
pop ecx
pop ecx
mov edi, eax
test esi, esi
je 0x100160c8
test edi, edi
je 0x100160c8
call esi
test eax, eax
je 0x100160bf
lea ecx, [ebp - 8]
push ecx
push 0xc
lea ecx, [ebp - 0x14]
push ecx
push 1
push eax
call edi
test eax, eax
je 0x100160bf
test byte [ebp - 0xc], 1
jne 0x100160c8
or dword [ebp + 0x10], 0x200000
jmp 0x10016101
mov eax, dword [0x1002200c]
cmp eax, ebx
je 0x10016101
push eax
call fcn.1000ad3c
pop ecx
test eax, eax
je 0x10016101
call eax
mov dword [ebp - 4], eax
test eax, eax
je 0x10016101
mov eax, dword [0x10022010]
cmp eax, ebx
je 0x10016101
push eax
call fcn.1000ad3c
pop ecx
test eax, eax
je 0x10016101
push dword [ebp - 4]
call eax
mov dword [ebp - 4], eax
push dword [0x10022008]
call fcn.1000ad3c
pop ecx
test eax, eax
je 0x10016121
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push dword [ebp - 4]
call eax
jmp 0x10016123
xor eax, eax
pop edi
pop esi
pop ebx
leave
ret
Function at 0x54cc92
Capabilities:
Write file on windows

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0xc]
push esi
push edi
xor esi, esi
xor edi, edi
cmp ebx, dword [edi*8 + 0x5982f0]
je 0x54ccad
inc edi
cmp edi, 0x17
jb 0x54cc9e
cmp edi, 0x17
jae 0x54ce2d
push ebp
push 3
call fcn.0054ef70
cmp eax, 1
pop ecx
je 0x54cdf9
push 3
call fcn.0054ef70
test eax, eax
pop ecx
jne 0x54cce1
cmp dword [0x597fc0], 1
je 0x54cdf9
cmp ebx, 0xfc
je 0x54ce2c
push str.Runtime_Error__n_nProgram:
mov ebx, 0x314
push ebx
mov ebp, 0x599868
push ebp
call fcn.0054ef0b
add esp, 0xc
test eax, eax
je 0x54cd17
push esi
push esi
push esi
push esi
push esi
call fcn.0054be15
add esp, 0x14
push 0x104
mov esi, 0x599881
push esi
push 0
mov byte [0x599985], 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
test eax, eax
jne 0x54cd5b
push str._program_name_unknown_
push 0x2fb
push esi
call fcn.0054ef0b
add esp, 0xc
test eax, eax
je 0x54cd5b
xor eax, eax
push eax
push eax
push eax
push eax
push eax
call fcn.0054be15
add esp, 0x14
push esi
call fcn.0054ee80
inc eax
cmp eax, 0x3c
pop ecx
jbe 0x54cda0
push esi
call fcn.0054ee80
sub esi, 0x3b
add eax, esi
push 3
mov ecx, 0x599b7c
push 0x570b5c
sub ecx, eax
push ecx
push eax
call fcn.0054edcb
add esp, 0x14
test eax, eax
je 0x54cda0
xor esi, esi
push esi
push esi
push esi
push esi
push esi
call fcn.0054be15
add esp, 0x14
jmp 0x54cda2
xor esi, esi
push 0x588078
push ebx
push ebp
call fcn.0054ed5a
add esp, 0xc
test eax, eax
je 0x54cdc2
push esi
push esi
push esi
push esi
push esi
call fcn.0054be15
add esp, 0x14
push dword [edi*8 + 0x5982f4]
push ebx
push ebp
call fcn.0054ed5a
add esp, 0xc
test eax, eax
je 0x54cde4
push esi
push esi
push esi
push esi
push esi
call fcn.0054be15
add esp, 0x14
push 0x12010
push str.Microsoft_Visual_C_Runtime_Library
push ebp
call fcn.0054eb9d
add esp, 0xc
jmp 0x54ce2c
push 0xfffffffffffffff4
call dword [sym.imp.KERNEL32.dll_GetStdHandle]
mov ebp, eax
cmp ebp, esi
je 0x54ce2c
cmp ebp, 0xffffffff
je 0x54ce2c
push 0
lea eax, [esp + 0x14]
push eax
lea esi, [edi*8 + 0x5982f4]
push dword [esi]
call fcn.0054ee80
pop ecx
push eax
push dword [esi]
push ebp
call dword [sym.imp.KERNEL32.dll_WriteFile]
pop ebp
pop edi
pop esi
pop ebx
pop ecx
ret

Function at 0x403d61
Capabilities:
Encode data using xor

Disassembly:
push eax
push ebx
mov eax, 0x499
mov ecx, 0x404498
mov bl, byte [ecx]
sub bl, 0xf2
rol bl, 2
sub bl, cl
ror bl, 1
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d6d
mov eax, 0x261d
mov ecx, 0x403764
mov bl, byte [ecx]
rol bl, 7
ror bl, 2
sub bl, cl
xor bl, 0x91
mov byte [ecx], bl
dec ecx
dec eax
jne 0x403d8a
pop ebx
pop eax
add ecx, 0x2c1a
jmp ecx