joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4fb0e8
Capabilities:
Allocate or change rwx memory
Find taskbar
Get system information on windows

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffffa4
mov dword [esp], eax
mov eax, dword [esp]
xor ecx, ecx
mov edx, 0x10
call fcn.00403330
lea eax, [esp + 0x38]
push eax
call sub.kernel32.dll_GetSystemInfo
call sub.user32.dll_GetDesktopWindow
test eax, eax
je 0x4fb2d4
push 0
push 0x4fb2dc
push 0
push eax
call sub.user32.dll_FindWindowExA
test eax, eax
je 0x4fb2d4
push 0
push 0x4fb2ec
push 0
push eax
call sub.user32.dll_FindWindowExA
test eax, eax
je 0x4fb2d4
push 0
push 0x4fb2fc
push 0
push eax
call sub.user32.dll_FindWindowExA
test eax, eax
je 0x4fb2d4
push 0
push 0x4fb30c
push 0
push eax
call sub.user32.dll_FindWindowExA
mov ebp, eax
test ebp, ebp
je 0x4fb2d4
push 0
push 0
push 0x418
push ebp
call sub.user32.dll_SendMessageA
mov dword [esp + 4], eax
cmp dword [esp + 4], 1
jl 0x4fb2d4
xor eax, eax
mov dword [esp + 8], eax
lea eax, [esp + 8]
push eax
push ebp
call sub.user32.dll_GetWindowThreadProcessId
cmp dword [esp + 8], 0
je 0x4fb2d4
mov eax, dword [esp + 8]
push eax
push 0
push 0x1f0fff
call sub.kernel32.dll_OpenProcess
mov edi, eax
test edi, edi
je 0x4fb2d4
push 0x40
push 0x1000
push 0x1000
push 0
push edi
call sub.kernel32.dll_VirtualAllocEx
mov esi, eax
test esi, esi
je 0x4fb2d4
or ebx, 0xffffffff
cmp ebx, dword [esp + 4]
jge 0x4fb2c0
inc ebx
push esi
push ebx
push 0x417
push ebp
call sub.user32.dll_SendMessageA
test eax, eax
je 0x4fb2b6
lea eax, [esp + 0xc]
push eax
push 0x18
lea eax, [esp + 0x1c]
push eax
push esi
push edi
call sub.kernel32.dll_ReadProcessMemory
test eax, eax
je 0x4fb2b6
test byte [esp + 0x1d], 0xd
jne 0x4fb2b6
mov al, byte [esp + 0x1c]
and al, 8
cmp al, 8
je 0x4fb2b6
lea eax, [esp + 0xc]
push eax
push 4
lea eax, [esp + 0x18]
push eax
mov eax, dword [esp + 0x2c]
push eax
push edi
call sub.kernel32.dll_ReadProcessMemory
test eax, eax
je 0x4fb2b6
cmp dword [esp + 0xc], 0
je 0x4fb2b6
mov eax, dword [0x570430]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
cmp eax, dword [esp + 0x10]
jne 0x4fb2b6
push esi
push ebx
push 0x41d
push ebp
call sub.user32.dll_SendMessageA
test eax, eax
je 0x4fb292
lea eax, [esp + 0xc]
push eax
push 0x10
mov eax, dword [esp + 8]
push eax
push esi
push edi
call sub.kernel32.dll_ReadProcessMemory
cmp dword [esp + 0xc], 0
je 0x4fb2c0
lea eax, [esp + 0x28]
push eax
push ebp
call sub.user32.dll_GetWindowRect
mov eax, dword [esp]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
call fcn.00406ed8
jmp 0x4fb2c0
cmp ebx, dword [esp + 4]
jl 0x4fb1f6
push 0x8000
push 0
push esi
push edi
call sub.kernel32.dll_VirtualFreeEx
push edi
call sub.kernel32.dll_CloseHandle_1
add esp, 0x5c
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x4fcc10
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebx
push esi
mov esi, eax
call sub.kernel32.dll_GetTickCount
mov ebx, eax
mov eax, dword [0x570430]
mov eax, dword [eax]
call fcn.00468e58
call sub.kernel32.dll_GetTickCount
sub eax, ebx
cmp eax, esi
jb 0x4fcc1b
pop esi
pop ebx
ret
Function at 0x4fd17c
Capabilities:
Get file system object information

Disassembly:
push ebx
push esi
add esp, 0xfffffe9c
mov esi, edx
mov ebx, eax
xor eax, eax
mov dword [esp], eax
mov eax, ebx
call fcn.00409b58
test al, al
je 0x4fd203
lea eax, [esp + 4]
xor ecx, ecx
mov edx, 0x160
call fcn.00403330
or esi, 0x100
test esi, esi
jns 0x4fd1b7
call fcn.00403ae4
push esi
push 0x160
lea eax, [esp + 0xc]
push eax
push 0
mov eax, ebx
call fcn.00404e58
push eax
call sub.shell32.dll_SHGetFileInfoA
test eax, eax
je 0x4fd203
mov dl, 1
mov eax, dword [0x425484]
call fcn.0042d054
mov dword [esp], eax
mov edx, dword [esp + 4]
mov eax, dword [esp]
call fcn.0042d460
mov eax, dword [esp]
mov edx, dword [eax]
call dword [edx + 0x1c]
test al, al
je 0x4fd203
mov eax, esp
call fcn.0040f1f4
mov eax, dword [esp]
add esp, 0x164
pop esi
pop ebx
ret
Function at 0x507b50
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
mov edi, ecx
mov esi, edx
mov ebx, eax
mov ebp, 0x572360
test esi, esi
jne 0x507b6a
xor eax, eax
jmp 0x507c6c
cmp dword [ebp], 0
jne 0x507b75
call fcn.00507ae0
xor ebx, 0xffffffff
cmp edi, 8
jb 0x507c45
mov eax, ebx
xor al, byte [esi]
and eax, 0xff
mov edx, dword [ebp]
mov eax, dword [edx + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
mov eax, ebx
xor al, byte [esi]
and eax, 0xff
mov edx, dword [ebp]
mov eax, dword [edx + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
mov eax, ebx
xor al, byte [esi]
and eax, 0xff
mov edx, dword [ebp]
mov eax, dword [edx + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
mov eax, ebx
xor al, byte [esi]
and eax, 0xff
mov edx, dword [ebp]
mov eax, dword [edx + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
mov eax, ebx
xor al, byte [esi]
and eax, 0xff
mov edx, dword [ebp]
mov eax, dword [edx + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
mov eax, ebx
xor al, byte [esi]
and eax, 0xff
mov edx, dword [ebp]
mov eax, dword [edx + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
mov eax, ebx
xor al, byte [esi]
and eax, 0xff
mov edx, dword [ebp]
mov eax, dword [edx + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
mov eax, ebx
xor al, byte [esi]
and eax, 0xff
mov edx, dword [ebp]
mov eax, dword [edx + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
sub edi, 8
cmp edi, 8
jae 0x507b81
test edi, edi
jbe 0x507c67
xor eax, eax
mov al, byte [esi]
xor eax, ebx
and eax, 0xff
mov edx, dword [ebp]
mov eax, dword [edx + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
dec edi
test edi, edi
ja 0x507c49
mov eax, ebx
xor eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x511b5c
Capabilities:
Get common file path
Terminate process

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0x511c6b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, 0x64
call fcn.004027e4
mov ebx, eax
push ebx
push 0x64
call sub.kernel32.dll_GetTempPathA
mov eax, 0x57237c
mov edx, ebx
call fcn.00404b90
mov eax, ebx
call fcn.00402804
call fcn.00510f40
test al, al
jne 0x511bad
jmp sub.kernel32.dll_ExitProcess_1
xor eax, eax
push ebp
push 0x511c49
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x20
lea edx, [ebp - 8]
mov eax, dword [0x570430]
mov eax, dword [eax]
call fcn.00469614
mov ecx, dword [ebp - 8]
mov dl, 1
mov eax, dword [0x41a204]
call fcn.0041eddc
mov dword [0x572374], eax
push 0
push 0x50
mov eax, dword [0x572374]
call fcn.0041e948
lea edx, [ebp - 4]
mov ecx, 4
mov eax, dword [0x572374]
call fcn.0041eb54
mov eax, dword [ebp - 4]
cdq
push edx
push eax
mov eax, dword [0x572374]
call fcn.0041e948
lea edx, [ebp - 4]
mov ecx, 4
mov eax, dword [0x572374]
call fcn.0041eb54
cmp dword [ebp - 4], 0x22322
sete byte [0x572378]
cmp dword [ebp - 4], 0x111111
jne 0x511c3d
mov bl, 1
jmp 0x511c3f
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x511c55
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x511c72
lea eax, [ebp - 8]
call fcn.00404998
ret
Function at 0x51774c
Capabilities:
Check os version

Disassembly:
add esp, 0xffffff6c
cmp byte [0x572574], 0
je 0x517765
mov eax, 6
jmp 0x517821
mov dword [esp], 0x94
push esp
call sub.kernel32.dll_GetVersionExA
test eax, eax
je 0x51781c
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
mov ecx, dword [esp + 0x10]
dec ecx
je 0x5177d1
dec ecx
jne 0x517815
cmp eax, 4
jg 0x51779f
mov eax, 4
jmp 0x517821
cmp eax, 5
jne 0x5177af
test edx, edx
jne 0x5177af
mov eax, 5
jmp 0x517821
cmp eax, 5
jne 0x5177be
dec edx
jne 0x5177be
mov eax, 6
jmp 0x517821
cmp eax, 5
jle 0x5177ca
mov eax, 7
jmp 0x517821
mov eax, 0xf423f
jmp 0x517821
cmp eax, 4
jne 0x5177de
test edx, edx
jne 0x5177de
xor eax, eax
jmp 0x517821
cmp eax, 4
jne 0x5177fd
cmp edx, 0xa
jne 0x5177fd
cmp byte [esp + 0x15], 0x41
jne 0x5177f6
mov eax, 2
jmp 0x517821
mov eax, 1
jmp 0x517821
cmp eax, 4
jne 0x51780e
cmp edx, 0x5a
jne 0x51780e
mov eax, 3
jmp 0x517821
mov eax, 0xf423f
jmp 0x517821
mov eax, 0xf423f
jmp 0x517821
mov eax, 0xf423f
add esp, 0x94
ret

Function at 0x530868
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, eax
cmp ebx, 0xff
jle 0x53088a
push ebx
call sub.user32.dll_GetAsyncKeyState
movzx eax, ax
shr eax, 0xf
and eax, 1
cmp eax, 1
sete al
pop ebx
ret
cmp byte [ebx + 0x57270c], 0
jne 0x5308ca
push ebx
call sub.user32.dll_GetAsyncKeyState
movsx eax, ax
mov edx, eax
and edx, 1
cmp edx, 1
jne 0x5308af
mov byte [ebx + 0x57270c], 1
jmp 0x5308ca
shr eax, 0xf
and eax, 1
cmp eax, 1
jne 0x5308c3
mov byte [ebx + 0x57270c], 1
jmp 0x5308ca
mov byte [ebx + 0x57270c], 2
cmp byte [ebx + 0x57270c], 1
sete al
pop ebx
ret

Function at 0x5308d8
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov eax, 0x57270c
mov edx, pe_nt_image_headers32
call fcn.00407c3c
xor ebx, ebx
push ebx
call sub.user32.dll_GetAsyncKeyState
inc ebx
cmp ebx, 0x100
jne 0x5308ea
pop ebx
ret

Function at 0x531764
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov bl, byte [0x53179c]
push 0x10
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x53177a
or bl, 1
push 0x11
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x531789
or bl, 4
push 0x12
call sub.user32.dll_GetAsyncKeyState
test ax, ax
jge 0x531798
or bl, 2
mov eax, ebx
pop ebx
ret

Function at 0x532ba8
Capabilities:
Hide graphical window

Disassembly:
mov eax, dword [0x570430]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_IsWindowVisible
test eax, eax
je 0x532bce
push 0
mov eax, dword [0x570430]
mov eax, dword [eax]
mov eax, dword [eax + 0x30]
push eax
call sub.user32.dll_ShowWindow
ret
Function at 0x53432c
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
lea eax, [ebp - 0x2c]
push eax
call sub.kernel32.dll_GetSystemInfo
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 8]
dec ecx
js 0x53437d
lea eax, [ebp - 0x2c]
cmp word [eax + 0x20], 3
je 0x534364
mov eax, dword [edx + ecx*4]
bswap eax
shr eax, 8
mov dword [edx + ecx*4], eax
dec ecx
jns 0x534354
jmp 0x53437d
push ebx
xor ebx, ebx
mov eax, dword [edx + ecx*4]
mov bh, al
mov bl, ah
shr eax, 0x10
shl ebx, 8
mov bl, al
mov dword [edx + ecx*4], ebx
dec ecx
jns 0x534365
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x554530
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebx
push esi
mov ebx, eax
cmp byte [ebx + 0x237], 0
je 0x554562
movzx eax, word [ebx + 0x232]
push eax
call sub.kernel32.dll_GetTickCount
sub eax, dword [ebx + 0x2c0]
push eax
movzx eax, word [ebx + 0x230]
push eax
call sub.kernel32.dll_MulDiv
mov esi, eax
jmp 0x554569
movzx esi, word [ebx + 0x230]
call sub.kernel32.dll_GetTickCount
mov dword [ebx + 0x2c0], eax
cmp byte [ebx + 0x235], 0
je 0x5545a7
mov al, byte [ebx + 0x234]
xor edx, edx
mov dl, al
cmp esi, edx
jge 0x55459c
mov edx, esi
push edx
mov edx, eax
pop eax
sub dl, al
mov eax, ebx
call fcn.00553450
jmp 0x5545d2
xor edx, edx
mov eax, ebx
call fcn.00553450
jmp 0x5545d2
mov al, byte [ebx + 0x234]
xor edx, edx
mov dl, al
mov ecx, 0x64
sub ecx, esi
cmp edx, ecx
jge 0x5545c9
mov edx, esi
add dl, al
mov eax, ebx
call fcn.00553450
jmp 0x5545d2
mov dl, 0x64
mov eax, ebx
call fcn.00553450
cmp byte [ebx + 0x235], 0
je 0x5545e4
cmp byte [ebx + 0x234], 0
jne 0x5545fb
cmp byte [ebx + 0x235], 0
jne 0x5545f6
cmp byte [ebx + 0x234], 0x64
jne 0x5545fb
xor eax, eax
pop esi
pop ebx
ret
mov al, 1
pop esi
pop ebx
ret
Function at 0x5586d4
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff68
push ebx
xor eax, eax
mov dword [ebp - 0x98], eax
xor eax, eax
push ebp
push 0x55881a
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x56fd1c], 0
jne 0x5587fb
mov byte [0x56fd1c], 1
mov dword [ebp - 0x94], 0x94
lea eax, [ebp - 0x94]
push eax
call sub.kernel32.dll_GetVersionExA
mov eax, dword [ebp - 0x84]
sub eax, 1
jb 0x558733
je 0x55873f
dec eax
je 0x558799
jmp 0x5587f4
mov byte [0x579830], 1
jmp 0x5587fb
cmp dword [ebp - 0x90], 4
jne 0x558775
cmp dword [ebp - 0x8c], 0
jne 0x558775
cmp dword [ebp - 0x88], 0x3e8
jbe 0x558769
mov byte [0x579830], 3
jmp 0x5587fb
mov byte [0x579830], 2
jmp 0x5587fb
cmp dword [ebp - 0x90], 4
jne 0x558790
cmp dword [ebp - 0x8c], 0xa
jne 0x558790
mov byte [0x579830], 4
jmp 0x5587fb
mov byte [0x579830], 0
jmp 0x5587fb
mov eax, dword [ebp - 0x90]
sub eax, 4
jb 0x5587ab
je 0x5587b4
dec eax
je 0x5587eb
jmp 0x5587fb
mov byte [0x579830], 5
jmp 0x5587fb
lea eax, [ebp - 0x98]
lea edx, [ebp - 0x80]
mov ecx, 0x80
call fcn.00404c08
mov eax, dword [ebp - 0x98]
mov edx, 0x558830
call fcn.00404da4
jne 0x5587e2
mov byte [0x579830], 7
jmp 0x5587fb
mov byte [0x579830], 6
jmp 0x5587fb
mov byte [0x579830], 8
jmp 0x5587fb
mov byte [0x579830], 0
mov bl, byte [0x579830]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x558821
lea eax, [ebp - 0x98]
call fcn.00404998
ret
Function at 0x558990
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe80
push ebx
xor edx, edx
mov dword [ebp - 0x178], edx
mov dword [ebp - 0x17c], edx
mov dword [ebp - 0x180], edx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404e48
xor eax, eax
push ebp
push 0x558b2b
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x2000
push 0x160
lea eax, [ebp - 0x168]
push eax
push 0
mov eax, dword [ebp - 4]
call fcn.00404e58
push eax
call sub.shell32.dll_SHGetFileInfoA
mov ebx, eax
lea eax, [ebp - 0x16c]
mov edx, ebx
and edx, 0xff
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x16c]
lea eax, [ebp - 0x170]
call fcn.00403214
lea eax, [ebp - 0x174]
mov edx, ebx
and edx, 0xff00
shr edx, 8
mov byte [eax + 1], dl
mov byte [eax], 1
lea edx, [ebp - 0x174]
lea eax, [ebp - 0x170]
mov cl, 2
call fcn.004031e4
lea edx, [ebp - 0x170]
lea eax, [ebp - 8]
call fcn.00404bfc
mov eax, dword [ebp - 8]
mov edx, 0x558b44
call fcn.00404da4
jne 0x558a60
mov bl, 1
jmp 0x558b00
mov eax, dword [ebp - 8]
mov edx, 0x558b50
call fcn.00404da4
jne 0x558a76
mov bl, 2
jmp 0x558b00
mov eax, dword [ebp - 8]
mov edx, 0x558b5c
call fcn.00404da4
jne 0x558a95
mov eax, ebx
call fcn.00407c1c
test ax, ax
jne 0x558a95
mov bl, 3
jmp 0x558b00
mov eax, dword [ebp - 8]
mov edx, 0x558b5c
call fcn.00404da4
jne 0x558ab4
mov eax, ebx
call fcn.00407c1c
test ax, ax
jbe 0x558ab4
mov bl, 4
jmp 0x558b00
lea edx, [ebp - 0x178]
mov eax, 0x558b68
call fcn.00409180
mov eax, dword [ebp - 0x178]
push eax
lea edx, [ebp - 0x180]
mov eax, dword [ebp - 4]
call fcn.00409d98
mov eax, dword [ebp - 0x180]
lea edx, [ebp - 0x17c]
call fcn.00409180
mov eax, dword [ebp - 0x17c]
pop edx
call fcn.00409108
test eax, eax
jne 0x558afe
mov bl, 1
jmp 0x558b00
xor ebx, ebx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x558b32
lea eax, [ebp - 0x180]
mov edx, 3
call fcn.004049bc
lea eax, [ebp - 8]
mov edx, 2
call fcn.004049bc
ret
Function at 0x559ebc
Capabilities:
Hash data with md5

Disassembly:
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
xor edx, edx
mov dword [eax + 0x10], edx
xor edx, edx
mov dword [eax + 0x14], edx
add eax, 0x18
mov edx, 0x40
call fcn.00407c3c
ret

Function at 0x559fe4
Capabilities:
Get file size
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff94
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404e48
xor eax, eax
push ebp
push 0x55a132
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x6c]
call fcn.00559ebc
push 0
push 0x8000080
push 3
push 0
push 3
push 0x80000000
mov eax, dword [ebp - 4]
call fcn.00404e58
push eax
call sub.kernel32.dll_CreateFileA_1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0x55a111
xor eax, eax
push ebp
push 0x55a10a
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
push 2
push 0
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CreateFileMappingA
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x55a0f3
xor eax, eax
push ebp
push 0x55a0ec
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
push 4
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_MapViewOfFile
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x55a0d5
xor eax, eax
push ebp
push 0x55a0ce
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_GetFileSize_1
mov ecx, eax
lea eax, [ebp - 0x6c]
mov edx, dword [ebp - 0x14]
call fcn.00559ef0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55a0d5
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_UnmapViewOfFile
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55a0f3
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_CloseHandle_1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55a111
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle_1
ret
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x6c]
call fcn.00559f70
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55a139
lea eax, [ebp - 4]
call fcn.00404998
ret

Function at 0x55a39c
Capabilities:
Stop service

Disassembly:
push ebx
add esp, 0xffffffe4
mov ebx, eax
push esp
push 1
mov eax, dword [ebx + 8]
push eax
call sub.advapi32.dll_ControlService
cmp eax, 1
sbb eax, eax
inc eax
add esp, 0x1c
pop ebx
ret

Function at 0x55a3bc
Capabilities:
Query service status

Disassembly:
add esp, 0xffffffe4
push esp
mov eax, dword [eax + 8]
push eax
call sub.advapi32.dll_QueryServiceStatus
mov eax, dword [esp + 4]
add esp, 0x1c
ret
Function at 0x55a828
Capabilities:
Get file version info

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd0
push ebx
push esi
push edi
mov esi, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00404e48
xor eax, eax
push ebp
push 0x55a928
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 4]
call fcn.00404e58
mov edi, eax
push edi
call sub.version.dll_GetFileVersionInfoSizeA
mov ebx, eax
test ebx, ebx
jbe 0x55a912
mov eax, ebx
call fcn.004027e4
mov dword [ebp - 0xc], eax
xor eax, eax
push ebp
push 0x55a90b
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
push eax
push ebx
push 0
push edi
call sub.version.dll_GetFileVersionInfoA
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0x10]
push eax
push 0x55a938
mov eax, dword [ebp - 0xc]
push eax
call sub.version.dll_VerQueryValueA
mov ebx, dword [ebp - 0x10]
push esi
mov eax, dword [ebx + 8]
call fcn.00407c1c
movzx eax, ax
mov dword [ebp - 0x30], eax
mov byte [ebp - 0x2c], 0
movzx eax, word [ebx + 8]
mov dword [ebp - 0x28], eax
mov byte [ebp - 0x24], 0
mov eax, dword [ebx + 0xc]
call fcn.00407c1c
movzx eax, ax
mov dword [ebp - 0x20], eax
mov byte [ebp - 0x1c], 0
movzx eax, word [ebx + 0xc]
mov dword [ebp - 0x18], eax
mov byte [ebp - 0x14], 0
lea edx, [ebp - 0x30]
mov ecx, 3
mov eax, 0x55a944
call fcn.0040a5b0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55a912
mov eax, dword [ebp - 0xc]
call fcn.00402804
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55a92f
lea eax, [ebp - 4]
call fcn.00404998
ret

Function at 0x55c534
Capabilities:
Create http request
Read data from internet
Receive data

Disassembly:
push ebx
push esi
push edi
add esp, 0xffffffec
mov edi, eax
mov eax, edi
call fcn.00404998
push 0
push 0
push 0
push 0
push 0x55c5cc
call sub.wininet.dll_InternetOpenA
mov ebx, eax
test ebx, ebx
je 0x55c5c2
push 0
push 0x80000000
push 0
push 0
push 0x55c5d4
push ebx
call sub.wininet.dll_InternetOpenUrlA
mov esi, eax
test esi, esi
je 0x55c5bc
lea eax, [esp + 4]
xor ecx, ecx
mov edx, 0x10
call fcn.00403330
push esp
push 0xf
lea eax, [esp + 0xc]
push eax
push esi
call sub.wininet.dll_InternetReadFile
test eax, eax
je 0x55c5b6
lea eax, [esp + 4]
push eax
call sub.wsock32.dll_inet_addr
inc eax
je 0x55c5b6
mov eax, edi
lea edx, [esp + 4]
mov ecx, 0x10
call fcn.00404c08
push esi
call sub.wininet.dll_InternetCloseHandle
push ebx
call sub.wininet.dll_InternetCloseHandle
add esp, 0x14
pop edi
pop esi
pop ebx
ret
Function at 0x55c5f8
Capabilities:
Get hostname
Initialize winsock library
Resolve dns

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe58
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x1a8], ebx
mov dword [ebp - 0x1a4], ebx
mov edi, ecx
mov ebx, edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x55c768
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 5], 0
lea eax, [ebp - 0x1a0]
push eax
push 0x101
call sub.wsock32.dll_WSAStartup
test eax, eax
je 0x55c651
mov eax, edi
mov edx, 0x55c784
call fcn.004049ec
jmp 0x55c74a
mov eax, ebx
call fcn.00404998
mov eax, 0x65
call fcn.004027e4
mov dword [ebp - 0x10], eax
push 0x65
mov esi, dword [ebp - 0x10]
push esi
call sub.wsock32.dll_gethostname
test eax, eax
jne 0x55c6fa
lea edx, [ebp - 0x1a4]
mov eax, esi
call fcn.0040a0c0
mov edx, dword [ebp - 0x1a4]
mov eax, dword [ebp - 4]
call fcn.004049ec
push esi
call sub.wsock32.dll_gethostbyname
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
movsx esi, word [eax + 0xa]
dec esi
test esi, esi
jl 0x55c6e3
inc esi
xor edi, edi
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
movzx eax, byte [eax + edi]
lea edx, [ebp - 0x1a8]
call fcn.004094f8
lea eax, [ebp - 0x1a8]
mov edx, 0x55c7a8
call fcn.00404c60
mov edx, dword [ebp - 0x1a8]
mov eax, ebx
call fcn.00404c60
inc edi
dec esi
jne 0x55c6ab
mov eax, dword [ebx]
call fcn.00404c58
mov edx, eax
dec edx
mov eax, ebx
call fcn.00404fe4
mov byte [ebp - 5], 1
jmp 0x55c738
call sub.wsock32.dll_WSAGetLastError
sub eax, 0x2734
je 0x55c72c
sub eax, 0xe
je 0x55c71e
sub eax, 0x2b
jne 0x55c738
mov eax, edi
mov edx, 0x55c7b4
call fcn.004049ec
jmp 0x55c738
mov eax, edi
mov edx, 0x55c7d0
call fcn.004049ec
jmp 0x55c738
mov eax, edi
mov edx, 0x55c7e4
call fcn.004049ec
mov edx, 0x65
mov eax, dword [ebp - 0x10]
call fcn.00402804
call sub.wsock32.dll_WSACleanup
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x55c76f
lea eax, [ebp - 0x1a8]
mov edx, 2
call fcn.004049bc
ret