joyce8/EMBER2024-capa huggingface dataset:
Function at 0x422c34
Capabilities:
Resume thread

Disassembly:
push ebx
push esi
mov ebx, eax
mov eax, dword [ebx + 4]
push eax
call sub.kernel32.dll_ResumeThread
mov esi, eax
test esi, esi
setge dl
mov eax, ebx
call fcn.00422a60
dec esi
jne 0x422c56
mov byte [ebx + 0xe], 0
pop esi
pop ebx
ret

Function at 0x423db0
Capabilities:
Allocate or change rwx memory

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
lea ebx, [ebp - 0xc]
mov esi, 0x4d488c
cmp dword [esi], 0
jne 0x423e56
push 0x40
push 0x1000
push 0x1000
push 0
call sub.kernel32.dll_VirtualAlloc_1
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov edx, dword [0x4d4888]
mov dword [eax], edx
mov eax, dword [ebp - 8]
lea edx, [eax + 4]
mov eax, 0x4ce5c8
mov ecx, 2
call fcn.00402d4c
mov edx, 0x423d88
mov eax, dword [ebp - 8]
add eax, 5
call fcn.00423da8
mov edx, dword [ebp - 8]
mov dword [edx + 6], eax
mov eax, dword [ebp - 8]
add eax, 0xa
mov dword [ebx], eax
mov eax, dword [ebx]
mov byte [eax], 0xe8
mov eax, dword [ebp - 8]
lea edx, [eax + 4]
mov eax, dword [ebx]
call fcn.00423da8
mov edx, dword [ebx]
mov dword [edx + 1], eax
mov eax, dword [ebx]
mov edx, dword [esi]
mov dword [eax + 5], edx
mov eax, dword [ebx]
mov dword [esi], eax
add dword [ebx], 0xd
mov eax, dword [ebx]
sub eax, dword [ebp - 8]
cmp eax, 0xffc
jl 0x423e1d
mov eax, dword [ebp - 8]
mov dword [0x4d4888], eax
mov eax, dword [esi]
mov dword [ebp - 4], eax
mov eax, dword [esi]
mov dword [ebx], eax
mov eax, dword [ebx]
mov eax, dword [eax + 5]
mov dword [esi], eax
mov eax, dword [ebx]
mov edx, dword [ebp + 8]
mov dword [eax + 5], edx
mov edx, dword [ebp + 0xc]
mov dword [eax + 9], edx
mov eax, dword [ebp - 4]
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8

Function at 0x4248f4
Capabilities:
Capture microphone audio

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4249c9
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 8], 0xffffffff
xor eax, eax
push ebp
push 0x4249b8
push dword fs:[eax]
mov dword fs:[eax], esp
mov word [ebp - 0x22], 1
mov word [ebp - 0x20], 1
mov word [ebp - 0x14], 0x10
movzx eax, word [ebp - 0x20]
movzx edx, word [ebp - 0x14]
imul edx
shr eax, 3
mov word [ebp - 0x16], ax
mov dword [ebp - 0x1e], 0x3e80
movzx eax, word [ebp - 0x16]
imul dword [ebp - 0x1e]
mov dword [ebp - 0x1a], eax
mov word [ebp - 0x12], 0
push 0
push 0
push 0
lea eax, [ebp - 0x22]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0xc]
push eax
call sub.winmm.dll_waveInOpen
test eax, eax
jne 0x424992
push 0xa0000000
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp - 0xc]
push eax
call sub.winmm.dll_mixerGetID
test eax, eax
jne 0x424992
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4249bf
cmp dword [ebp - 0xc], 0
je 0x4249b7
mov eax, dword [ebp - 0xc]
push eax
call sub.winmm.dll_waveInReset
mov eax, dword [ebp - 0xc]
push eax
call sub.winmm.dll_waveInClose
ret
Function at 0x428460
Capabilities:
Query or enumerate registry key

Disassembly:
push ebx
push esi
mov ebx, edx
mov esi, eax
mov eax, ebx
xor ecx, ecx
mov edx, 0x1c
call fcn.004036c0
lea eax, [ebx + 0x14]
push eax
push 0
lea eax, [ebx + 0x10]
push eax
lea eax, [ebx + 0xc]
push eax
lea eax, [ebx + 8]
push eax
push 0
lea eax, [ebx + 4]
push eax
push ebx
push 0
push 0
push 0
mov eax, dword [esi + 4]
push eax
call sub.advapi32.dll_RegQueryInfoKeyA
test eax, eax
sete al
mov edx, dword [0x4d3f38]
cmp byte [edx + 0xc], 0
je 0x4284c4
mov edx, dword [0x4d3f24]
cmp dword [edx], 2
jne 0x4284c4
mov edx, dword [ebx + 4]
add dword [ebx + 4], edx
mov edx, dword [ebx + 0xc]
add dword [ebx + 0xc], edx
pop esi
pop ebx
ret

Function at 0x4284c8
Capabilities:
Query or enumerate registry key

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffd4
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 4], edx
mov edi, eax
xor eax, eax
push ebp
push 0x428580
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x44]
lea edx, [ebp - 0x28]
mov eax, edi
call fcn.00428460
test al, al
je 0x428562
mov ecx, dword [ebp - 0x24]
inc ecx
lea eax, [ebp - 0xc]
xor edx, edx
call fcn.00405134
mov ebx, dword [ebp - 0x28]
dec ebx
test ebx, ebx
jl 0x428562
inc ebx
xor esi, esi
mov eax, dword [ebp - 0x24]
inc eax
mov dword [ebp - 8], eax
push 0
push 0
push 0
push 0
lea eax, [ebp - 8]
push eax
mov eax, dword [ebp - 0xc]
call fcn.00405504
push eax
push esi
mov eax, dword [edi + 4]
push eax
call sub.advapi32.dll_RegEnumKeyExA
mov eax, dword [ebp - 0xc]
call fcn.00405504
mov edx, eax
lea eax, [ebp - 0x2c]
call fcn.0040523c
mov edx, dword [ebp - 0x2c]
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc esi
dec ebx
jne 0x42851b
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x428587
lea eax, [ebp - 0x2c]
call fcn.00405044
lea eax, [ebp - 0xc]
call fcn.00405044
ret

Function at 0x428740
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov dword [ebp - 4], ecx
mov edi, edx
mov ebx, eax
mov al, byte [ebp + 8]
call fcn.00428008
mov esi, eax
mov eax, dword [ebp + 0xc]
push eax
mov eax, dword [ebp - 4]
push eax
push esi
push 0
mov eax, edi
call fcn.00405504
push eax
mov eax, dword [ebx + 4]
push eax
call sub.advapi32.dll_RegSetValueExA
test eax, eax
je 0x42879e
mov dword [ebp - 0xc], edi
mov byte [ebp - 8], 0xb
lea eax, [ebp - 0xc]
push eax
push 0
mov ecx, dword [0x4d3b9c]
mov dl, 1
mov eax, dword [0x427f00]
call fcn.0040defc
call fcn.004049b4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x4287a8
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov ebx, eax
xor eax, eax
mov dword [ebp - 4], eax
lea eax, [ebp + 0xc]
push eax
push edi
lea eax, [ebp - 4]
push eax
push 0
mov eax, esi
call fcn.00405504
push eax
mov eax, dword [ebx + 4]
push eax
call sub.advapi32.dll_RegQueryValueExA_1
test eax, eax
je 0x428800
mov dword [ebp - 0xc], esi
mov byte [ebp - 8], 0xb
lea eax, [ebp - 0xc]
push eax
push 0
mov ecx, dword [0x4d3f44]
mov dl, 1
mov eax, dword [0x427f00]
call fcn.0040defc
call fcn.004049b4
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp - 4]
call fcn.00428038
mov edx, dword [ebp + 8]
mov byte [edx], al
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
Function at 0x4353ec
Capabilities:
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push ecx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [eax], 0x67452301
mov eax, dword [ebp - 4]
mov dword [eax + 4], 0xefcdab89
mov eax, dword [ebp - 4]
mov dword [eax + 8], 0x98badcfe
mov eax, dword [ebp - 4]
mov dword [eax + 0xc], 0x10325476
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x10], edx
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x14], edx
mov eax, dword [ebp - 4]
add eax, 0x18
mov edx, 0x40
call fcn.0043493c
pop ecx
pop ebp
ret

Function at 0x4358c4
Capabilities:
Get session user name

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
xor eax, eax
push ebp
push 0x4359da
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 1], 0
mov eax, dword [0x4d3f24]
cmp dword [eax], 2
jne 0x4359b1
xor eax, eax
push ebp
push 0x4359a7
push dword fs:[eax]
mov dword fs:[eax], esp
cmp byte [0x4d5758], 0
je 0x43591b
mov byte [ebp - 1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4359b1
mov dword [ebp - 0xc], 0xff
mov eax, dword [ebp - 0xc]
push eax
lea eax, [ebp - 8]
mov ecx, 1
mov edx, dword [0x4358a0]
call fcn.00406528
add esp, 4
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_GetUserNameA
lea eax, [ebp - 0x14]
mov edx, dword [ebp - 8]
call fcn.0040523c
mov eax, dword [ebp - 0x14]
lea edx, [ebp - 0x10]
call fcn.0040983c
mov eax, dword [ebp - 0x10]
push eax
lea eax, [ebp - 0x1c]
call fcn.00435734
mov eax, dword [ebp - 0x1c]
lea edx, [ebp - 0x18]
call fcn.0040983c
mov edx, dword [ebp - 0x18]
pop eax
call fcn.00405450
jne 0x435985
mov byte [ebp - 1], 1
push 0
lea eax, [ebp - 8]
mov ecx, 1
mov edx, dword [0x4358a0]
call fcn.00406528
add esp, 4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4359b1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4359e1
lea eax, [ebp - 0x1c]
mov edx, 4
call fcn.00405068
lea eax, [ebp - 8]
mov edx, dword [0x4358a0]
call fcn.00406654
ret

Function at 0x4359ec
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee8
push ebx
xor edx, edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x435b02
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x18]
call fcn.00405044
push 0
push 0
lea eax, [ebp - 0x10]
push eax

Function at 0x436578
Capabilities:
Get local ipv4 addresses
Get socket information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov dword [ebp - 0xc], 0x10
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x1c]
push eax
mov eax, dword [ebp - 4]
push eax
call sub.wsock32.dll_getsockname
test eax, eax
jne 0x4365b4
push dword [ebp - 0x18]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
mov eax, dword [ebp - 8]
call fcn.0040523c
jmp 0x4365c1
mov eax, dword [ebp - 8]
mov edx, 0x4365d0
call fcn.00405098
mov esp, ebp
pop ebp
ret
Function at 0x4365d8
Capabilities:
Get hostname
Resolve dns

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffac
push ebx
push esi
push edi
xor edx, edx
mov dword [ebp - 0x54], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4366c1
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
push ebp
push 0x4366a1
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00405044
push 0x40
lea eax, [ebp - 0x50]
push eax
call sub.wsock32.dll_gethostname
lea eax, [ebp - 0x50]
push eax
call sub.wsock32.dll_gethostbyname
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x436634
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4366ab
mov eax, dword [ebp - 8]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0xc], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
call fcn.00405044
jmp 0x43668b
cmp dword [ebp - 0x10], 0
jle 0x436662
mov eax, dword [ebp - 4]
mov edx, 0x4366d8
call fcn.0040530c
mov eax, dword [ebp - 4]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
mov eax, dword [eax + edx*4]
push dword [eax]
call sub.wsock32.dll_inet_ntoa
lea edx, [ebp - 0x54]
call fcn.0040ad88
mov edx, dword [ebp - 0x54]
mov eax, dword [ebp - 4]
call fcn.0040530c
mov eax, dword [ebp - 4]
inc dword [ebp - 0x10]
mov eax, dword [ebp - 0xc]
mov edx, dword [ebp - 0x10]
cmp dword [eax + edx*4], 0
jne 0x43664c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4366ab
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4366c8
lea eax, [ebp - 0x54]
call fcn.00405044
ret
Function at 0x436794
Capabilities:
Create tcp socket
Create udp socket

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff978
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x688], ecx
mov dword [ebp - 0x684], ecx
mov dword [ebp - 0x680], ecx
mov dword [ebp - 0x67c], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x34], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4369aa
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
call fcn.00405044
mov eax, dword [ebp - 8]
call fcn.00405044
mov byte [ebp - 9], 0
push 0
push 1
push 2
call sub.wsock32.dll_socket
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0xffffffff
je 0x43697f
xor eax, eax
push ebp
push 0x43696c
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x41a9a8]
call fcn.004041e4
mov dword [ebp - 0x28], eax
mov dl, 1
mov eax, dword [0x41a9a8]
call fcn.004041e4
mov dword [ebp - 0x2c], eax
mov dl, 0x2c
mov eax, dword [ebp - 0x28]
call fcn.0041e288
mov dl, 0x2c
mov eax, dword [ebp - 0x2c]
call fcn.0041e288
lea eax, [ebp - 0x18]
mov dword [ebp - 0x20], eax
push 0
push 0
mov eax, dword [ebp - 0x20]
push eax
push 0x400
lea eax, [ebp - 0x678]
push eax
push 0
push 0
push 0x4004747f
mov eax, dword [ebp - 0x10]
push eax
call sub.WS2_32.DLL_WSAIoctl
inc eax
je 0x436903
mov eax, dword [ebp - 0x18]
mov ecx, 0x4c
cdq
idiv ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
dec eax
test eax, eax
jl 0x4368ff
inc eax
mov dword [ebp - 0x38], eax
mov dword [ebp - 0x24], 0
imul eax, dword [ebp - 0x24], 0x13
mov eax, dword [ebp + eax*4 - 0x678]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
and eax, 4
cmp eax, 4
je 0x4368f7
imul eax, dword [ebp - 0x24], 0x13
push dword [ebp + eax*4 - 0x670]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
lea eax, [ebp - 0x30]
call fcn.0040523c
mov edx, dword [ebp - 0x30]
mov eax, dword [ebp - 0x28]
mov ecx, dword [eax]
call dword [ecx + 0x38]
imul eax, dword [ebp - 0x24], 0x13
push dword [ebp + eax*4 - 0x640]
call sub.wsock32.dll_inet_ntoa
mov edx, eax
lea eax, [ebp - 0x34]
call fcn.0040523c
mov edx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x2c]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc dword [ebp - 0x24]
dec dword [ebp - 0x38]
jne 0x436894
mov byte [ebp - 9], 1
lea edx, [ebp - 0x680]
mov eax, dword [ebp - 0x28]
call fcn.0041d758
mov edx, dword [ebp - 0x680]
mov eax, dword [ebp - 4]
call fcn.00405098
lea edx, [ebp - 0x684]
mov eax, dword [ebp - 0x2c]
call fcn.0041d758
cmp dword [ebp - 0x684], 0
je 0x436952
lea edx, [ebp - 0x688]
mov eax, dword [ebp - 0x2c]
call fcn.0041d758
mov edx, dword [ebp - 0x688]
mov eax, dword [ebp - 8]
call fcn.00405098
mov eax, dword [ebp - 0x28]
call fcn.00404214
mov eax, dword [ebp - 0x2c]
call fcn.00404214
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x436976
mov eax, dword [ebp - 0x10]
push eax
call sub.wsock32.dll_closesocket
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4369b1
lea eax, [ebp - 0x688]
mov edx, 4
call fcn.00405068
lea eax, [ebp - 0x34]
mov edx, 2
call fcn.00405068
ret
Function at 0x4377ec
Capabilities:
Get hostname

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffbc
push ebx
push esi
push edi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00405044
xor eax, eax
push ebp
push 0x437836
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x40
lea eax, [ebp - 0x44]
push eax
call sub.wsock32.dll_gethostname
inc eax
je 0x43782c
mov eax, dword [ebp - 4]
lea edx, [ebp - 0x44]
mov ecx, 0x40
call fcn.004052b4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x437848
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x438b4c
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
mov ebx, ecx
and ebx, 7
shr ecx, 3
je 0x438b8f
mov esi, dword [edx]
xor dword [eax], esi
mov esi, dword [edx + 4]
xor dword [eax + 4], esi
mov esi, dword [edx + 8]
xor dword [eax + 8], esi
mov esi, dword [edx + 0xc]
xor dword [eax + 0xc], esi
mov esi, dword [edx + 0x10]
xor dword [eax + 0x10], esi
mov esi, dword [edx + 0x14]
xor dword [eax + 0x14], esi
mov esi, dword [edx + 0x18]
xor dword [eax + 0x18], esi
mov esi, dword [edx + 0x1c]
xor dword [eax + 0x1c], esi
add edx, 0x20
add eax, 0x20
dec ecx
jne 0x438b58
jmp dword [ebx*4 + 0x438b96]

Function at 0x438c1c
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee8
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
cmp dword [ebp - 0xc], 0
jle 0x438c3d
cmp dword [ebp - 0xc], 0x100
jle 0x438c53
mov ecx, 0x438d0c
mov dl, 1
mov eax, dword [0x408bc8]
call fcn.0040de04
call fcn.004049b4
xor eax, eax
mov dword [ebp - 0x10], eax
mov al, byte [ebp - 0x10]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
mov eax, dword [ebp - 0x10]
cdq
idiv dword [ebp - 0xc]
add edx, dword [ebp - 8]
mov al, byte [edx]
mov edx, dword [ebp - 0x10]
mov byte [ebp + edx - 0x115], al
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x100
jne 0x438c58
xor eax, eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
movzx eax, byte [eax + edx]
add eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
movzx edx, byte [ebp + edx - 0x115]
add eax, edx
and eax, 0xff
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x10]
mov al, byte [eax + edx]
mov byte [ebp - 0x15], al
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
mov al, byte [eax + edx]
mov edx, dword [ebp - 4]
mov ecx, dword [ebp - 0x10]
mov byte [edx + ecx], al
mov eax, dword [ebp - 4]
mov edx, dword [ebp - 0x14]
mov cl, byte [ebp - 0x15]
mov byte [eax + edx], cl
inc dword [ebp - 0x10]
cmp dword [ebp - 0x10], 0x100
jne 0x438c90
mov edx, dword [ebp - 4]
add edx, 0x100
mov eax, dword [ebp - 4]
mov ecx, pe_nt_image_headers32
call fcn.00402d4c
mov esp, ebp
pop ebp
ret
Function at 0x438d40
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov byte [ebp - 0xe], 0
mov byte [ebp - 0xf], 0
mov eax, dword [ebp + 8]
dec eax
test eax, eax
jl 0x438e00
inc eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0
mov al, byte [ebp - 0xe]
inc eax
and al, 0xff
mov byte [ebp - 0xe], al
xor eax, eax
mov al, byte [ebp - 0xe]
mov edx, dword [ebp - 4]
mov al, byte [edx + eax]
add al, byte [ebp - 0xf]
and al, 0xff
mov byte [ebp - 0xf], al
xor eax, eax
mov al, byte [ebp - 0xe]
mov edx, dword [ebp - 4]
mov al, byte [edx + eax]
mov byte [ebp - 0xd], al
xor eax, eax
mov al, byte [ebp - 0xf]
mov edx, dword [ebp - 4]
mov al, byte [edx + eax]
xor edx, edx
mov dl, byte [ebp - 0xe]
mov ecx, dword [ebp - 4]
mov byte [ecx + edx], al
xor eax, eax
mov al, byte [ebp - 0xf]
mov edx, dword [ebp - 4]
mov cl, byte [ebp - 0xd]
mov byte [edx + eax], cl
xor eax, eax
mov al, byte [ebp - 0xe]
mov edx, dword [ebp - 4]
mov al, byte [edx + eax]
xor edx, edx
mov dl, byte [ebp - 0xf]
mov ecx, dword [ebp - 4]
add al, byte [ecx + edx]
and al, 0xff
mov byte [ebp - 0xd], al
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 0x14]
mov al, byte [eax + edx]
xor edx, edx
mov dl, byte [ebp - 0xd]
mov ecx, dword [ebp - 4]
xor al, byte [ecx + edx]
mov edx, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x14]
mov byte [edx + ecx], al
inc dword [ebp - 0x14]
dec dword [ebp - 0x18]
jne 0x438d6e
mov esp, ebp
pop ebp
ret 4

Function at 0x43b16c
Capabilities:
Send data
Send data on socket

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], 0xffffffff
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x84]
call fcn.00427eb8
xor eax, eax
push ebp
push 0x43b210
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 0xc]
mov dword [ebp - 0x18], eax
push 0
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [ebp - 0xc]
sub eax, dword [ebp - 0x18]
mov edx, dword [ebp - 8]
lea eax, [edx + eax]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x14]
push eax
call sub.wsock32.dll_send
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
cmp eax, dword [ebp - 0x18]
jl 0x43b1d5
xor eax, eax
mov dword [ebp - 0x10], eax
jmp 0x43b1f4
cmp dword [ebp - 0x14], 0
jg 0x43b1e5
call sub.wsock32.dll_WSAGetLastError
mov dword [ebp - 0x10], eax
jmp 0x43b1f4
mov eax, dword [ebp - 0x14]
sub dword [ebp - 0x18], eax
push 0
call sub.kernel32.dll_Sleep_1
jmp 0x43b1a4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x43b217
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x84]
call fcn.00427ec0
ret
Function at 0x43c6e8
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
push esi
push edi
mov ebx, eax
push ebp
push ecx
mov esi, dword [ebx + 0x24]
mov edi, dword [ebx + 0x34]
sub edi, dword [ebx + 0x6c]
sub edi, dword [ebx + 0x64]
test edi, edi
jne 0x43c712
cmp dword [ebx + 0x64], 0
jne 0x43c712
cmp dword [ebx + 0x6c], 0
jne 0x43c712
mov edi, esi
jmp 0x43c799
cmp edi, 0xffffffff
jne 0x43c71a
dec edi
jmp 0x43c799
mov eax, dword [ebx + 0x24]
sub eax, 0x106
add eax, esi
cmp eax, dword [ebx + 0x64]
ja 0x43c799
push esi
mov eax, dword [ebx + 0x30]
mov edx, eax
mov ebp, esi
add edx, ebp
push edx
push eax
call fcn.0043b478
add esp, 0xc
sub dword [ebx + 0x68], esi
sub dword [ebx + 0x64], esi
sub dword [ebx + 0x54], ebp
mov eax, dword [ebx + 0x44]
mov edx, eax
add edx, edx
add edx, dword [ebx + 0x3c]
sub edx, 2
movzx ecx, word [edx]
mov dword [esp], ecx
cmp esi, dword [esp]
ja 0x43c767
mov cx, word [esp]
sub cx, si
jmp 0x43c769
xor ecx, ecx
mov word [edx], cx
dec eax
jne 0x43c750
mov eax, esi
mov edx, eax
add edx, edx
add edx, dword [ebx + 0x38]
sub edx, 2
movzx ecx, word [edx]
mov dword [esp], ecx
cmp esi, dword [esp]
ja 0x43c78f
mov cx, word [esp]
sub cx, si
jmp 0x43c791
xor ecx, ecx
mov word [edx], cx
dec eax
jne 0x43c778
add edi, esi
mov ebp, dword [ebx]
cmp dword [ebp + 4], 0
je 0x43c7f6
mov edx, dword [ebx + 0x30]
mov ecx, edi
add edx, dword [ebx + 0x64]
mov eax, ebp
add edx, dword [ebx + 0x6c]
call fcn.0043c484
add dword [ebx + 0x6c], eax
cmp dword [ebx + 0x6c], 3
jb 0x43c7e1
mov eax, dword [ebx + 0x30]
mov edx, dword [ebx + 0x64]
movzx eax, byte [eax + edx]
mov dword [ebx + 0x40], eax
mov ecx, dword [ebx + 0x50]
shl eax, cl
mov edx, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x64]
movzx edx, byte [edx + ecx + 1]
xor eax, edx
and eax, dword [ebx + 0x4c]
mov dword [ebx + 0x40], eax
cmp dword [ebx + 0x6c], 0x106
jae 0x43c7f6
mov eax, dword [ebx]
cmp dword [eax + 4], 0
jne 0x43c6f2
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0x442e34
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
xor edx, edx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x20], edx
mov dword [ebp - 0xc], edx
mov dword [ebp - 0x18], edx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x442ff7
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4c]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
cmp byte [eax + 0x14], 0
jne 0x442ed9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x26c]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x268]
cmp eax, 0x15f90
jbe 0x442ed9
push 0x44300c
lea eax, [ebp - 0xc]
push eax
push 0x443038
mov eax, dword [ebp - 8]
push dword [eax + 0x54]
push 0x443038
lea eax, [ebp - 0x18]
mov edx, 3
call fcn.004053c4
mov eax, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x10], 0xb
lea edx, [ebp - 0x14]
xor ecx, ecx
mov eax, 0x443044
call fcn.0040b2a0
mov edx, dword [ebp - 0xc]
mov eax, dword [ebp - 8]
add eax, 0x18
mov ecx, 0x443070
call fcn.004374a0
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
cmp byte [eax + 0x14], 1
jne 0x442fc6
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
cmp byte [eax + 0x15], 1
jne 0x442fc6
mov eax, dword [ebp - 4]
cmp byte [eax + 0x270], 0
jne 0x442f4f
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x26c]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x268]
cmp eax, 0xea60
jbe 0x442f4f
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
cmp byte [eax + 0x16], 0
je 0x442f35
mov eax, dword [ebp - 8]
mov eax, dword [eax + 4]
mov edx, dword [eax]
call dword [edx + 8]
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x268], eax
mov eax, dword [ebp - 4]
mov byte [eax + 0x270], 1
jmp 0x442fc6
mov eax, dword [ebp - 4]
cmp byte [eax + 0x270], 1
jne 0x442fc6
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x26c]
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x268]
cmp eax, 0x7530
jbe 0x442fc6
push 0x443098
lea eax, [ebp - 0x1c]
push eax
push 0x443038
mov eax, dword [ebp - 8]
push dword [eax + 0x54]
push 0x443038
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.004053c4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x14], eax
mov byte [ebp - 0x10], 0xb
lea edx, [ebp - 0x14]
mov eax, 0x443044
xor ecx, ecx
call fcn.0040b2a0
mov edx, dword [ebp - 0x1c]
mov ecx, 0x443070
mov eax, dword [ebp - 8]
add eax, 0x18
call fcn.004374a0
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x26c], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x442ffe
lea eax, [ebp - 0x20]
mov edx, 3
call fcn.00405068
lea eax, [ebp - 0xc]
call fcn.00405044
ret