joyce8/EMBER2024-capa huggingface dataset:
Function at 0x40a1e0
Capabilities:
Read file on windows

Disassembly:
push ecx
push esi
mov esi, ecx
mov eax, dword [esi + 0xf8]
test eax, eax
je 0x40a2a1
push edi
push 0x2000
mov dword [esp + 0xc], 0
mov dword [esi + 0x318], 0x2000
call fcn.0043326c
mov ecx, dword [esi + 0x318]
mov edx, dword [esi + 0xfc]
add esp, 4
push 0
mov edi, eax
lea eax, [esp + 0xc]
push eax
push ecx
push edi
push edx
call dword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
mov eax, dword [esp + 8]
je 0x40a280
test eax, eax
jne 0x40a280
mov eax, dword [esi + 0x30c]
push eax
mov ecx, esi
call fcn.00409c80
lea ecx, [esi + 0x208]
push ecx
push str.._vncClient.cpp:_tfile_download_complete:__s_n
push 1
push 0x44ff14
call fcn.00401e70
mov edx, dword [esi + 0xfc]
add esp, 0x10
push edx
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop edi
mov dword [esi + 0xf8], 0
pop esi
pop ecx
ret
push edi
push eax
mov ecx, esi
call fcn.00409d10
push edi
call fcn.004336b7
mov eax, dword [0x4507ec]
push 0
push esi
push eax
call fcn.004227f0
add esp, 0x10
pop edi
pop esi
pop ecx
ret

Function at 0x40cbe0
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x43f0fb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, ecx
push edi
lea ecx, [esi + 0x3c]
mov dword [esp + 8], esi
call fcn.004326f0
xor edi, edi
lea ecx, [esi + 0x4f8]
mov dword [esp + 0x14], edi
call fcn.00419790
mov ecx, dword [esp + 0xc]
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x4bc], edi
mov dword [esi + 0x4d4], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x38], edi
mov dword [esi], edi
mov dword [esi + 0x4d8], edi
mov dword [esi + 0x4e4], edi
mov dword [esi + 0x4e8], edi
mov dword [esi + 0x4dc], edi
mov dword [esi + 0x4e0], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
mov dword [esi + 0x4ec], edi
mov dword [esi + 0x4fc], edi
mov dword [esi + 0x2c], edi
mov dword [esi + 0x18], edi
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret
Function at 0x40cbf6
Capabilities:
Access peb ldr_data
Get ntdll base address

Disassembly:
push 0xffffffffffffffff
push 0x43f0fb
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push esi
mov esi, ecx
push edi
lea ecx, [esi + 0x3c]
mov dword [esp + 8], esi
call fcn.004326f0
xor edi, edi
lea ecx, [esi + 0x4f8]
mov dword [esp + 0x14], edi
call fcn.00419790
mov ecx, dword [esp + 0xc]
mov dword [esi + 8], edi
mov dword [esi + 0xc], edi
mov dword [esi + 0x10], edi
mov dword [esi + 0x14], edi
mov dword [esi + 0x1c], edi
mov dword [esi + 0x4bc], edi
mov dword [esi + 0x4d4], edi
mov dword [esi + 0x34], edi
mov dword [esi + 0x30], edi
mov dword [esi + 0x38], edi
mov dword [esi], edi
mov dword [esi + 0x4d8], edi
mov dword [esi + 0x4e4], edi
mov dword [esi + 0x4e8], edi
mov dword [esi + 0x4dc], edi
mov dword [esi + 0x4e0], edi
mov dword [esi + 0x20], edi
mov dword [esi + 0x24], edi
mov dword [esi + 0x28], edi
mov dword [esi + 0x4ec], edi
mov dword [esi + 0x4fc], edi
mov dword [esi + 0x2c], edi
mov dword [esi + 0x18], edi
pop edi
mov eax, esi
pop esi
mov dword fs:[0], ecx
add esp, 0x10
ret
Function at 0x40d8d0
Capabilities:
Access peb ldr_data

Disassembly:
push 0xffffffffffffffff
push 0x43f138
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 8
push ebx
push ebp
mov ebp, ecx
push esi
lea esi, [ebp + 0x3c]
mov ecx, esi
mov dword [esp + 0xc], esi
call fcn.00432710
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebp + 0x34]
push eax
push ecx
push edx
call dword [sym.imp.GDI32.dll_CreateCompatibleBitmap]
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x10], ebx
jne 0x40d93e
mov ecx, esi
mov dword [esp + 0x1c], 0xffffffff
call fcn.00432720
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret 0x10
mov eax, dword [ebp + 0x30]
push edi
mov edi, dword [sym.imp.GDI32.dll_SelectObject]
push ebx
push eax
call edi
mov esi, eax
test esi, esi
jne 0x40d981
push ebx
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], 0xffffffff
call fcn.00432720
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
mov ecx, dword [esp + 8]
mov dword fs:[0], ecx
add esp, 0x14
ret 0x10
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebp + 0x30]
push 2
push 0
push 0
push 0
push 0
push ecx
push 0
push 0
push edx
call dword [sym.imp.USER32.dll_DrawIconEx]
mov eax, dword [ebp + 0x30]
push esi
push eax
call edi
push 0x42c
push 1
call fcn.0043412a
mov edx, dword [esp + 0x3c]
mov ebx, eax
lea esi, [ebp + 0x68]
mov ecx, 0x10b
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
mov dword [ebx + 4], ecx
imul ecx, edx
shl ecx, 2
mov esi, ecx
mov eax, edx
neg eax
mov dword [ebx + 8], eax
shr ecx, 2
add esp, 8
xor eax, eax
rep stosd dword es:[edi], eax
push 0
mov ecx, esi
and ecx, 3
push ebx
rep stosb byte es:[edi], al
mov ecx, dword [esp + 0x30]
mov edi, dword [esp + 0x1c]
push ecx
push edx
mov edx, dword [ebp + 0x30]
push 0
push edi
push edx
call dword [sym.imp.GDI32.dll_GetDIBits]
push ebx
mov esi, eax
call fcn.00433646
add esp, 4
push edi
call dword [sym.imp.GDI32.dll_DeleteObject]
mov ecx, dword [esp + 0x10]
xor eax, eax
test esi, esi
setne al
mov dword [esp + 0x20], 0xffffffff
mov esi, eax
call fcn.00432720
mov ecx, dword [esp + 0x18]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x14
ret 0x10

Function at 0x40db20
Capabilities:
Open clipboard
Write clipboard data

Disassembly:
mov eax, dword [ecx + 0xc]
push eax
call dword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x40db85
call dword [sym.imp.USER32.dll_EmptyClipboard]
test eax, eax
je 0x40db85
push edi
mov edi, dword [esp + 8]
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x40db42
sub eax, edx
push esi
lea ecx, [eax + eax + 1]
push ecx
push 0x2002
call dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov esi, eax
test esi, esi
je 0x40db83
push esi
call dword [sym.imp.KERNEL32.dll_GlobalLock]
push edi
push eax
call fcn.0040da80
add esp, 8
push esi
call dword [sym.imp.KERNEL32.dll_GlobalUnlock]
push esi
push 1
call dword [sym.imp.USER32.dll_SetClipboardData]
pop esi
pop edi
call dword [sym.imp.USER32.dll_CloseClipboard]
ret 4
Function at 0x410bc0
Capabilities:
Terminate process

Disassembly:
push ebx
xor edx, edx
xor bl, bl
cmp eax, 8
push ebp
mov ebp, dword [esp + 0xc]
je 0x410bfe
cmp eax, 0x10
jne 0x410bda
movzx eax, word [esi]
pop ebp
pop ebx
ret
cmp eax, 0x20
jne 0x410be4
mov eax, dword [esi]
pop ebp
pop ebx
ret
push eax
push str.getBgColour:_bpp__d__n
push 0x44ef30
call fcn.00434b5f
add esp, 0xc
push 1
call fcn.00434b1f
push edi
xor eax, eax
mov ecx, 0x100
mov edi, 0x44ff70
rep stosd dword es:[edi], eax
xor ecx, ecx
test ebp, ebp
jle 0x410c3d
movzx eax, byte [ecx + esi]
cmp eax, 0x100
jge 0x410c44
mov edi, dword [eax*4 + 0x44ff70]
inc edi
mov dword [eax*4 + 0x44ff70], edi
mov eax, edi
cmp eax, edx
jle 0x410c38
mov bl, byte [ecx + esi]
mov edx, eax
inc ecx
cmp ecx, ebp
jl 0x410c13
pop edi
pop ebp
movzx eax, bl
pop ebx
ret
push eax
push str.getBgColour
push str._s:_unusual_colour___d_n
push 0x44ef30
call fcn.00434b5f
add esp, 0x10
push 1
call fcn.00434b1f
int3

Function at 0x413210
Capabilities:
Terminate process

Disassembly:
mov eax, dword [esp + 0xc]
push ebx
push esi
xor esi, esi
xor bl, bl
cmp eax, 8
je 0x413256
cmp eax, 0x10
jne 0x41322e
mov eax, dword [esp + 0xc]
movzx eax, word [eax]
pop esi
pop ebx
ret
cmp eax, 0x20
jne 0x41323c
mov ecx, dword [esp + 0xc]
mov eax, dword [ecx]
pop esi
pop ebx
ret
push eax
push str.getBgColour:_bpp__d__n
push 0x44ef30
call fcn.00434b5f
add esp, 0xc
push 1
call fcn.00434b1f
push ebp
push edi
xor eax, eax
mov ecx, 0x100
mov edi, 0x450380
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0x18]
xor ecx, ecx
test edi, edi
jle 0x41329e
mov edx, dword [esp + 0x14]
movzx eax, byte [ecx + edx]
cmp eax, 0x100
jge 0x4132a6
mov ebp, dword [eax*4 + 0x450380]
inc ebp
mov dword [eax*4 + 0x450380], ebp
mov eax, ebp
cmp eax, esi
jle 0x413299
mov bl, byte [ecx + edx]
mov esi, eax
inc ecx
cmp ecx, edi
jl 0x413274
pop edi
pop ebp
pop esi
movzx eax, bl
pop ebx
ret
push eax
push str.getBgColour
push str._s:_unusual_colour___d_n
push 0x44ef30
call fcn.00434b5f
add esp, 0x10
push 1
call fcn.00434b1f
int3
Function at 0x4197a0
Capabilities:
Check mutex on windows

Disassembly:
push str.WinVNC_Win32_Instance_Mutex
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
test eax, eax
jne 0x4197b4
ret
call dword [sym.imp.KERNEL32.dll_GetLastError]
xor ecx, ecx
cmp eax, 0xb7
setne cl
mov eax, ecx
ret

Function at 0x4197f0
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
push ecx
push esi
mov esi, ecx
mov eax, dword [esi]
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, ah
js 0x419855
mov ecx, dword [esi + 0xc]
test ecx, ecx
push ebx
mov bl, byte [esi]
push edi
mov edi, dword [esi + 4]
mov byte [esp + 0xc], bl
je 0x41981d
mov edx, dword [ecx]
push 1
call dword [edx + 0x204]
push 0
push edi
movzx eax, bl
push 0
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call dword [sym.imp.USER32.dll_keybd_event]
mov edx, dword [esi]
push edx
push str.fake__d_down_n
push 9
push 0x44ff14
call fcn.00401e70
add esp, 0x10
pop edi
mov byte [esi + 8], 1
pop ebx
pop esi
pop ecx
ret

Function at 0x419860
Capabilities:
Log keystrokes
Log keystrokes via polling

Disassembly:
push ecx
push esi
mov esi, ecx
mov eax, dword [esi]
push eax
call dword [sym.imp.USER32.dll_GetAsyncKeyState]
test ah, ah
jns 0x4198c8
mov ecx, dword [esi + 0xc]
push ebx
mov bl, byte [esi]
push edi
mov edi, dword [esi + 4]
or edi, 2
test ecx, ecx
mov byte [esp + 0xc], bl
je 0x419890
mov edx, dword [ecx]
push 1
call dword [edx + 0x204]
push 0
push edi
movzx eax, bl
push 0
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call dword [sym.imp.USER32.dll_keybd_event]
mov edx, dword [esi]
push edx
push str.fake__d_up_n
push 9
push 0x44ff14
call fcn.00401e70
add esp, 0x10
pop edi
mov byte [esi + 9], 1
pop ebx
pop esi
pop ecx
ret

Function at 0x4198d0
Capabilities:
Log keystrokes

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
mov al, byte [esi + 8]
test al, al
push edi
je 0x419931
mov edi, dword [esi + 4]
mov ecx, dword [esi + 0xc]
mov bl, byte [esi]
or edi, 2
test ecx, ecx
mov byte [esp + 0xc], bl
je 0x4198fa
mov eax, dword [ecx]
push 1
call dword [eax + 0x204]
push 0
push edi
movzx ecx, bl
push 0
push ecx
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
mov edx, dword [esp + 0x14]
push eax
push edx
call dword [sym.imp.USER32.dll_keybd_event]
mov eax, dword [esi]
push eax
push str.fake__d_up_n
push 9
push 0x44ff14
call fcn.00401e70
add esp, 0x10
pop edi
pop esi
pop ebx
pop ecx
ret
mov al, byte [esi + 9]
test al, al
je 0x419984
mov ecx, dword [esi + 0xc]
test ecx, ecx
mov bl, byte [esi]
mov edi, dword [esi + 4]
mov byte [esp + 0xc], bl
je 0x419952
mov edx, dword [ecx]
push 1
call dword [edx + 0x204]
push 0
push edi
movzx eax, bl
push 0
push eax
call dword [sym.imp.USER32.dll_MapVirtualKeyA]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call dword [sym.imp.USER32.dll_keybd_event]
mov edx, dword [esi]
push edx
push str.fake__d_down_n
push 9
push 0x44ff14
call fcn.00401e70
add esp, 0x10
pop edi
pop esi
pop ebx
pop ecx
ret
Function at 0x41b490
Capabilities:
Get hostname
Resolve dns

Disassembly:
sub esp, 0x108
push 0x100
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.WSOCK32.dll_gethostname]
test eax, eax
je 0x41b4ce
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x10c]
push ecx
push str.Host_name_unavailable
push edx
call fcn.004334d0
add esp, 0xc
add esp, 0x108
ret
push ebp
lea eax, [esp + 0xc]
push eax
call dword [sym.imp.WSOCK32.dll_gethostbyname]
mov ebp, eax
test ebp, ebp
jne 0x41b505
mov ecx, dword [esp + 0x114]
mov edx, dword [esp + 0x110]
push ecx
push str.IP_address_unavailable
push edx
call fcn.004334d0
add esp, 0xc
pop ebp
add esp, 0x108
ret
push edi
mov edi, dword [esp + 0x114]
mov byte [edi], 0
mov eax, dword [ebp + 0xc]
cmp dword [eax], 0
je 0x41b5d6
push ebx
push esi
xor ebx, ebx
xor esi, esi
cmp word [ebp + 0xa], si
jle 0x41b57d
jmp 0x41b530
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebx + ecx]
movzx eax, byte [edx + esi]
push eax
lea ecx, [esp + 0x14]
push 0x444b04
push ecx
call fcn.00433854
mov eax, edi
add esp, 0xc
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41b552
sub eax, edx
mov edx, dword [esp + 0x120]
sub edx, eax
dec edx
push edx
lea eax, [esp + 0x14]
push eax
push edi
call fcn.00434fe0
movsx ecx, word [ebp + 0xa]
add esp, 0xc
inc esi
cmp esi, ecx
jl 0x41b530
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41b582
sub eax, edx
mov byte [edi + eax - 1], cl
mov edx, dword [ebp + 0xc]
mov eax, dword [ebx + edx + 4]
test eax, eax
je 0x41b5c2
mov eax, edi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x41b5a0
mov ecx, dword [esp + 0x120]
sub eax, edx
sub ecx, eax
dec ecx
push ecx
push 0x444b00
push edi
call fcn.00434fe0
add esp, 0xc
mov edx, dword [ebp + 0xc]
mov eax, dword [ebx + edx + 4]
add ebx, 4
test eax, eax
jne 0x41b520
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x108
ret

Function at 0x41cd30
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 8
mov eax, dword [esp + 0xc]
test eax, eax
push esi
mov esi, 4
mov dword [esp + 4], esi
mov dword [esp + 8], esi
je 0x41cd70
lea ecx, [esp + 8]
push ecx
lea edx, [esp + 0x14]
push edx
mov edx, dword [esp + 0x1c]
lea ecx, [esp + 0xc]
push ecx
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x41cd70
cmp dword [esp + 4], esi
je 0x41cd7b
mov eax, dword [esp + 0x18]
pop esi
add esp, 8
ret 0xc
cmp dword [esp + 8], esi
mov eax, dword [esp + 0x18]
jne 0x41cd89
mov eax, dword [esp + 0x10]
pop esi
add esp, 8
ret 0xc

Function at 0x41cd90
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 0x10
mov eax, dword [esp + 0x14]
test eax, eax
mov dword [esp + 4], 3
mov dword [esp], 8
je 0x41cdd0
lea ecx, [esp]
push ecx
lea edx, [esp + 0xc]
push edx
mov edx, dword [esp + 0x24]
lea ecx, [esp + 0xc]
push ecx
push 0
push edx
push eax
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x41cdd0
cmp dword [esp], 8
jle 0x41cdd8
xor eax, eax
add esp, 0x10
ret 0xc
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov dword [eax], ecx
mov dword [eax + 4], edx
mov eax, 1
add esp, 0x10
ret 0xc
Function at 0x41ce00
Capabilities:
Query or enumerate registry value

Disassembly:
sub esp, 8
push esi
push edi
mov edi, dword [esp + 0x14]
test edi, edi
mov esi, 1
mov dword [esp + 8], esi
mov dword [esp + 0xc], 0
jne 0x41ce28
pop edi
xor eax, eax
pop esi
add esp, 8
ret 8
push ebx
mov ebx, dword [esp + 0x1c]
push ebp
mov ebp, dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea eax, [esp + 0x14]
push eax
push 0
lea ecx, [esp + 0x18]
push ecx
push 0
push ebx
push edi
call ebp
test eax, eax
jne 0x41ce88
cmp dword [esp + 0x10], esi
jne 0x41ce88
mov edx, dword [esp + 0x14]
push edx
call fcn.0043326c
mov esi, eax
add esp, 4
test esi, esi
je 0x41ce88
lea eax, [esp + 0x14]
push eax
push esi
lea ecx, [esp + 0x18]
push ecx
push 0
push ebx
push edi
call ebp
test eax, eax
jne 0x41ce7f
cmp dword [esp + 0x10], 1
je 0x41ce94
push esi
call fcn.004336b7
add esp, 4
pop ebp
pop ebx
pop edi
xor eax, eax
pop esi
add esp, 8
ret 8
pop ebp
pop ebx
pop edi
mov eax, esi
pop esi
add esp, 8
ret 8
Function at 0x41d470
Capabilities:
Check os version

Disassembly:
sub esp, 0x94
push esi
lea eax, [esp + 4]
push eax
mov dword [esp + 8], 0x94
mov esi, 0x320
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
je 0x41d54d
mov eax, dword [esp + 0x14]
dec eax
je 0x41d50b
dec eax
je 0x41d4b0
mov esi, 0x320
mov eax, esi
pop esi
add esp, 0x94
ret
mov eax, dword [esp + 8]
add eax, 0xfffffffd
cmp eax, 3
ja case.default.0x41d4bc
jmp dword [eax*4 + 0x41d558]
mov esi, 0x547
mov eax, esi
pop esi
add esp, 0x94
ret
mov esi, 0x578
mov eax, esi
pop esi
add esp, 0x94
ret
mov esi, dword [esp + 0xc]
neg esi
sbb esi, esi
and esi, 0xa
add esi, 0x7d0
mov eax, esi
pop esi
add esp, 0x94
ret
mov esi, 0x7db
mov eax, esi
pop esi
add esp, 0x94
ret
mov eax, dword [esp + 0xc]
test eax, eax
je 0x41d548
cmp eax, 0xa
je 0x41d539
xor ecx, ecx
cmp eax, 0x5a
sete cl
dec ecx
and ecx, 0xffffff39
add ecx, 0x3e7
mov esi, ecx
mov eax, esi
pop esi
add esp, 0x94
ret
mov esi, 0x3d4
mov eax, esi
pop esi
add esp, 0x94
ret
mov esi, 0x3b6
mov eax, esi
pop esi
add esp, 0x94
ret
Function at 0x422ce0
Capabilities:
Get graphical window text

Disassembly:
sub esp, 0x200
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x214]
push 0xff
lea eax, [esp + 0x14]
push edi
push eax
call fcn.004334d0
mov eax, edi
add esp, 0xc
mov byte [esp + 0x10f], 0
xor esi, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x422d13
sub eax, edx
test eax, eax
jle 0x422d45
movsx ecx, byte [esp + esi + 0x10]
push ecx
call fcn.004340ce
mov byte [esp + esi + 0x14], al
mov eax, edi
add esp, 4
inc esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x422d38
sub eax, edx
cmp esi, eax
jl 0x422d20
call dword [sym.imp.USER32.dll_GetForegroundWindow]
mov esi, eax
test esi, esi
je 0x422e00
mov ebp, dword [sym.imp.USER32.dll_GetWindowTextA]
jmp 0x422d60
push 0x100
lea edx, [esp + 0x114]
push edx
push esi
call ebp
mov ebx, eax
xor edi, edi
test ebx, ebx
jle 0x422d9d
jmp 0x422d80
movsx eax, byte [esp + edi + 0x110]
push eax
call fcn.004340ce
add esp, 4
mov byte [esp + edi + 0x110], al
inc edi
cmp edi, ebx
jl 0x422d80
push 0xfffffffffffffff0
push esi
call dword [sym.imp.USER32.dll_GetWindowLongA]
test eax, 0x10000000
je 0x422dc6
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x114]
push edx
call fcn.00435120
add esp, 8
test eax, eax
jne 0x422dd7
push 2
push esi
call dword [sym.imp.USER32.dll_GetWindow]
mov esi, eax
test esi, esi
jne 0x422d60
jmp 0x422e00
push esi
call dword [sym.imp.USER32.dll_IsIconic]
test eax, eax
je 0x422df5
push 0
push 0xf120
push 0x112
push esi
call dword [sym.imp.USER32.dll_SendMessageA]
push esi
call dword [sym.imp.USER32.dll_SetForegroundWindow]
test esi, esi
jne 0x422e15
mov eax, dword [str.WinVNC]
push 0x30
push eax
push str.Unable_to_find_a_window_with_the_specified_title.
push 0
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x200
ret
Function at 0x423a40
Capabilities:
Access the windows event log

Disassembly:
sub esp, 0x108
push esi
call dword [sym.imp.KERNEL32.dll_GetLastError]
push str.winvnc
push 0
mov dword [0x450c30], eax
call dword [sym.imp.ADVAPI32.dll_RegisterEventSourceA]
mov esi, eax
mov eax, dword [0x450c30]
push eax
push str.winvnc
lea ecx, [esp + 0x14]
push str._.200s_error:__d
push ecx
call fcn.00433854
mov eax, dword [esp + 0x120]
add esp, 0x10
test esi, esi
lea edx, [esp + 0xc]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
je 0x423abe
push 0
call dword [sym.imp.USER32.dll_MessageBeep]
push 0
lea ecx, [esp + 8]
push ecx
push 0
push 2
push 0
push 0
push 0
push 1
push esi
call dword [sym.imp.ADVAPI32.dll_ReportEventA]
push esi
call dword [sym.imp.ADVAPI32.dll_DeregisterEventSource]
pop esi
add esp, 0x108
ret

Function at 0x423ad0
Capabilities:
Get session user name

Disassembly:
push ecx
mov eax, dword [0x450c24]
cmp eax, 2
jne 0x423b61
mov ecx, dword [0x450c38]
test ecx, ecx
je 0x423b61
call dword [sym.imp.USER32.dll_GetProcessWindowStation]
test eax, eax
je 0x423bd0
lea ecx, [esp]
push ecx
push 0
push 0
push 4
push eax
call dword [sym.imp.USER32.dll_GetUserObjectInformationA]
mov eax, dword [esp]
test eax, eax
jne 0x423b39
call dword [sym.imp.ADVAPI32.dll_RevertToSelf]
mov eax, dword [esp + 0xc]
test eax, eax
mov dword [0x450c2c], 0
jbe 0x423bd0
mov edx, dword [esp + 8]
mov byte [edx], 0
mov eax, 1
pop ecx
ret
mov eax, dword [0x450c2c]
test eax, eax
jne 0x423b5c
mov eax, dword [esp + 0xc]
test eax, eax
jbe 0x423bd0
mov eax, dword [esp + 8]
mov byte [eax], 0
mov eax, 1
pop ecx
ret
mov eax, dword [0x450c24]
test eax, eax
jbe 0x423bd0
cmp eax, 2
ja 0x423bd0
push ebx
mov ebx, dword [esp + 0xc]
push esi
mov esi, dword [esp + 0x14]
lea ecx, [esp + 8]
push ecx
push ebx
mov dword [esp + 0x10], esi
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
test eax, eax
jne 0x423bc7
push edi
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 0x4dd
jne 0x423ba9
test esi, esi
jbe 0x423bc0
pop edi
pop esi
mov byte [ebx], 0
mov eax, 1
pop ebx
pop ecx
ret
call edi
push eax
push str.._vncService.cpp:_tGetUserName___failed__error_d_n
push 0
push 0x44ff14
call fcn.00401e70
add esp, 0x10
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret
pop esi
mov eax, 1
pop ebx
pop ecx
ret
xor eax, eax
pop ecx
ret

Function at 0x424380
Capabilities:
Initialize winsock library

Disassembly:
sub esp, 0x190
push esi
lea eax, [esp + 4]
push eax
push 2
mov esi, ecx
call dword [sym.imp.WSOCK32.dll_WSAStartup]
test eax, eax
mov eax, esi
je 0x4243aa
mov dword [esi], 0
pop esi
add esp, 0x190
ret
mov cx, word [esp + 4]
mov dword [esi], 0xffffffff
mov word [0x450c40], cx
pop esi
add esp, 0x190
ret
Function at 0x424480
Capabilities:
Connect socket
Resolve dns
Set socket configuration

Disassembly:
sub esp, 0x10
push edi
mov edi, ecx
mov eax, dword [edi + 4]
test eax, eax
jge 0x424496
xor eax, eax
pop edi
add esp, 0x10
ret 8
xor eax, eax
mov dword [esp + 4], eax
push esi
mov esi, dword [esp + 0x1c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
push esi
mov dword [esp + 0x18], eax
mov word [esp + 0xc], 2
call dword [sym.imp.WSOCK32.dll_inet_addr]
cmp eax, 0xffffffff
mov dword [esp + 0xc], eax
jne 0x4244e8
push esi
call dword [sym.imp.WSOCK32.dll_gethostbyname]
test eax, eax
je 0x4244d8
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx]
test eax, eax
jne 0x4244e2
pop esi
xor eax, eax
pop edi
add esp, 0x10
ret 8
mov edx, dword [eax]
mov dword [esp + 0xc], edx
mov eax, dword [esp + 0x20]
push eax
call dword [sym.imp.WSOCK32.dll_htons]
mov edx, dword [edi + 4]
push 0x10
lea ecx, [esp + 0xc]
push ecx
push edx
mov word [esp + 0x16], ax
call dword [sym.imp.WSOCK32.dll_connect]
test eax, eax
jne 0x4244d8
mov ecx, dword [edi + 4]
lea eax, [esp + 0x1c]
push eax
push 0x8004667e
push ecx
mov dword [esp + 0x28], 1
call dword [sym.imp.WSOCK32.dll_ioctlsocket]
neg eax
sbb eax, eax
neg eax
pop esi
dec eax
pop edi
add esp, 0x10
ret 8

Function at 0x424560
Capabilities:
Set socket configuration

Disassembly:
push 0xffffffffffffffff
push 0x43f7ab
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc
mov eax, dword [ecx + 4]
test eax, eax
mov dword [esp], 1
jge 0x424597
xor eax, eax
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret
push edi
push 0
push 0
push eax
call dword [sym.imp.WSOCK32.dll_accept]
mov edi, eax
test edi, edi
jge 0x4245bb
xor eax, eax
pop edi
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret
push esi
push 0x28
call fcn.00433248
mov esi, eax
add esp, 4
mov dword [esp + 0x10], esi
test esi, esi
mov dword [esp + 0x1c], 0
je 0x4245f6
lea ecx, [esi + 0x10]
mov dword [esi], 0x446d30
call fcn.004326f0
mov dword [esi + 4], 0xffffffff
mov dword [esi + 0xc], 0
jmp 0x4245f8
xor esi, esi
test esi, esi
mov dword [esp + 0x1c], 0xffffffff
je 0x424656
push 4
lea eax, [esp + 0xc]
push eax
push 1
push 6
push edi
mov dword [esi + 4], edi
call dword [sym.imp.WSOCK32.dll_setsockopt]
lea ecx, [esp + 0xc]
push ecx
mov dword [esp + 0x10], 1
mov edx, dword [esi + 4]
push 0x8004667e
push edx
call dword [sym.imp.WSOCK32.dll_ioctlsocket]
test eax, eax
je 0x424643
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax]
xor esi, esi
mov eax, esi
pop esi
pop edi
mov ecx, dword [esp + 0xc]
mov dword fs:[0], ecx
add esp, 0x18
ret
push 2
push edi
call dword [sym.imp.WSOCK32.dll_shutdown]
push edi
call dword [sym.imp.WSOCK32.dll_closesocket]
mov ecx, dword [esp + 0x14]
pop esi
xor eax, eax
pop edi
mov dword fs:[0], ecx
add esp, 0x18
ret