joyce8/EMBER2024-capa huggingface dataset:
Function at 0x45cdad
Capabilities:
Encode data using xor

Disassembly:
cmp ebp, dword [ecx - 0x4f]
mov esp, dword [ebx - 0x48fb2f31]
into
outsd dx, dword [esi]
rcl eax, 0xbb
and ebx, ebp
hlt
mov byte [0x4467f354], al
push esp
inc esp
push ebx
cmpsb byte [esi], byte es:[edi]
scasd eax, dword es:[edi]
adc al, 0xf0
jae 0x45cd71
sbb dword ds:[eax + 0x44], 0xffffff9e
add byte [edi - 0x3c844c3d], bh
jnp 0x45cd18
out dx, al
xchg dword [edx], edi
lodsd eax, dword [esi]
loopne 0x45cde2
inc esp
fstp st(0)
xor ah, byte [edi + 0x32de4fdd]
test dword [ebx], 0xe9312df9
and edi, 0x78
mov dl, 0x93
xchg edi, eax
cmc
jge 0x45cd5f
mov dl, 0xe
mov ebp, 0xc898195a
pop es
mov cl, 0xb7
sub ah, ah
inc edx
pop eax
invalid
push cs
xchg ebx, eax
fcmovnbe st(0), st(0)
jno 0x45cdab
jp 0x45cd60
mov ax, 0x9e9f
sub dword [ecx + ecx + 0x20], eax
cmc
sub al, 0x29
push ecx
repz ret
arpl word [edi + 0x72], di
rcr byte [0xc5f5308c], 0x23
aas
jecxz 0x45cdfd
outsb dx, byte [esi]
sbb byte [esi - 0x2ce6e1ae], cl
mov ss, word [edx + 0x1e]
sbb ebx, edx
jecxz 0x45ce23
ja 0x45cdd3
and edx, dword [0xf283d899]
push edx
cmp dword [eax - 0x4491c91], ecx
dec edx
and ah, al
push cs
cli
salc
inc byte [edi]
cmp al, byte [esp + ebp*4]
jecxz 0x45ce6a
cmc
add eax, 0x2a51b7f5
idiv edx
xchg ecx, eax
loopne 0x45cde5
sar dword [edi + ebx - 0x1e], 1
int 0x52
ret 0xf163
insb byte es:[edi], dx
add eax, 0xddc2a2ee
test dword [ebp - 0x576e9b7e], ebx
cmp dword [ebx + edx*2 - 0x4cc53c28], 0xf9fb52c7
stc
dec ebx
and dword [esi], edi
pop ebp
cld
jmp 0x45ce9b
ja 0x45ceb8
dec ecx
inc ecx
pop es
stosd dword es:[edi], eax
neg byte [eax - 0x7c3ebf06]
pop ebx
pop ecx
invalid
jb 0x45ce39
add byte [ebp + 0x22c1370b], bh
push 0xa690ec0
adc byte [edx - 0x3b0cfbe9], dl
pop ds
mov byte [0xbdfa0977], al
in al, 0xad
and byte [eax + 0x22], al
ror dword [edi + 0x5fe3113c], cl
sbb ebx, dword [eax + 0x43]
adc eax, 0x11d0a091
insb byte es:[edi], dx
xor dword [ebx + 0x62984338], eax
xchg ecx, eax
mov al, byte [ecx + 0x3c]
sal byte [edx - 0x2d], cl
xor dl, byte [0xf3f16fa2]
mov word cs:[ecx - 0x204981d], ss
or al, 0xfd
mov dword [0x43478344], eax
jb 0x45cea8
and dl, bl
invalid
outsd dx, dword [esi]
push ebx
or bh, byte [ebx + 0x58ff797f]
mov edi, 0xe72313fe
xor dl, byte [eax + ebp*4 - 0x18]
jnp 0x45cf01
jno 0x45cef9
std
into
in al, 0x74
mov dl, 0x43
invalid

Function at 0x430000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
call 0x43000c
nop
nop
nop
nop
nop
pop eax
add eax, 0x403d6f
nop
nop
sub eax, 0x403d15
nop
nop
nop
mov ebx, dword [eax]
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
xor dword [ebx], edx
nop
nop
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
nop
nop
jl 0x430030
nop
add eax, 0xc
nop
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
jne 0x43001e
nop
nop
nop
nop
nop
popal
nop
jmp fcn.00401219
Function at 0x10001130
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x804
mov eax, dword [0x10017008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push 0x800
lea eax, [ebp - 0x804]
mov edi, edx
push 0
push eax
mov esi, ecx
call fcn.10005760
add esp, 0xc
lea eax, [ebp - 0x804]
test edi, edi
je 0x1000117f
push dword [ebp + 8]
push edi
push esi
push str.Observer:__s:_s:error_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x14
jmp 0x1000118f
push esi
push str.Observer:__s
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea eax, [ebp - 0x804]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.10004267
mov esp, ebp
pop ebp
ret

Function at 0x100011b0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa0c
mov eax, dword [0x10017008]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
push edi
push str.XGKernel.dll
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov esi, eax
test esi, esi
jne 0x10001232
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x800
mov esi, eax
lea eax, [ebp - 0xa0c]
push 0
push eax
call fcn.10005760
push esi
push str.XGKernel.dll
push str.Failed_Call_GetModuleHandle
lea eax, [ebp - 0xa0c]
push str.Observer:__s:_s:error_d
push eax
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0x20
lea eax, [ebp - 0xa0c]
push eax
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
pop edi
xor eax, eax
pop esi
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.10004267
mov esp, ebp
pop ebp
ret
push 0x208
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.10005760
add esp, 0xc
lea eax, [ebp - 0x20c]
push 0x104
push eax
push esi
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
jne 0x1000128a
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x800
mov esi, eax
lea eax, [ebp - 0xa0c]
push 0
push eax
call fcn.10005760
push esi
push str.XGKernel.dll
push str.Failed_Call_GetModuleFileNameW
jmp 0x100011fe
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
test eax, eax
jne 0x100012c8
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x800
mov esi, eax
lea eax, [ebp - 0xa0c]
push 0
push eax
call fcn.10005760
push esi
lea eax, [ebp - 0x20c]
push eax
push str.Failed_Call_PathRemoveFileSpec
jmp 0x100011fe
push str.ObserverHelp.exe
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x10001309
call dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x800
mov esi, eax
lea eax, [ebp - 0xa0c]
push 0
push eax
call fcn.10005760
push esi
push str.ObserverHelp.exe
push str.Failed_Call_PathAppend
jmp 0x100011fe
lea eax, [ebp - 0x20c]
mov ecx, edi
push eax
call fcn.10001ce0
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
xor ecx, ebp
pop esi
call fcn.10004267
mov esp, ebp
pop ebp
ret
Function at 0x100018b0
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1000f8fb
mov eax, dword fs:[0]
push eax
sub esp, 0xe60
mov eax, dword [0x10017008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
push 0x208
push 0
lea eax, [ebp - 0x628]
push eax
call fcn.10005760
add esp, 0xc
push 0x208
push 0
lea ecx, [ebp - 0x420]
push ecx
call fcn.10005760
add esp, 0xc
push 0x208
push 0
lea edx, [ebp - 0x218]
push edx
call fcn.10005760
add esp, 0xc
push 0x104
lea eax, [ebp - 0x218]
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
push 0x104
lea ecx, [ebp - 0x420]
push ecx
lea edx, [ebp - 0x218]
push edx
call dword [sym.imp.KERNEL32.dll_GetLongPathNameW]
test eax, eax
jne 0x100019a9
lea eax, [ebp - 0x218]
push eax
push 0x10014d54
lea ecx, [ebp - 0x420]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
push 0x800
push 0
lea edx, [ebp - 0xe28]
push edx
call fcn.10005760
add esp, 0xc
lea eax, [ebp - 0x218]
push eax
push str.failed_get_long_path_for__s
lea ecx, [ebp - 0xe28]
push ecx
call dword [sym.imp.USER32.dll_wsprintfW]
add esp, 0xc
lea edx, [ebp - 0xe28]
push edx
call dword [sym.imp.KERNEL32.dll_OutputDebugStringW]
lea eax, [ebp - 0x420]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
mov dword [ebp - 0xe30], eax
mov ecx, dword [ebp - 0xe30]
push ecx
push 0x104
lea edx, [ebp - 0x628]
push edx
call fcn.10007b7f
add esp, 0xc
lea eax, [ebp - 0x628]
push eax
lea ecx, [ebp - 0xe6c]
call fcn.10001d80
mov dword [ebp - 0xe34], eax
mov ecx, dword [ebp - 0xe34]
mov dword [ebp - 0xe38], ecx
mov dword [ebp - 4], 0
push str.explorer.exe
lea ecx, [ebp - 0xe54]
call fcn.10001d80
mov dword [ebp - 0xe3c], eax
mov edx, dword [ebp - 0xe38]
push edx
mov ecx, dword [ebp - 0xe3c]
call fcn.10003320
mov byte [ebp - 0xe29], al
mov byte [ebp - 4], 1
lea ecx, [ebp - 0xe54]
call fcn.10002080
mov dword [ebp - 4], 2
lea ecx, [ebp - 0xe6c]
call fcn.10002080
mov dword [ebp - 4], 0xffffffff
movzx eax, byte [ebp - 0xe29]
test eax, eax
je 0x10001a6a
mov eax, 1
jmp 0x10001a6c
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10004267
mov esp, ebp
pop ebp
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
Function at 0x432000
Capabilities:
Encode data using xor
Packed with generic packer

Disassembly:
pushal
nop
nop
nop
nop
nop
mov eax, section..rsrc
nop
nop
mov ebx, 0x40c7d0
nop
mov ecx, 0x58b0413b
nop
test eax, eax
nop
nop
nop
nop
nop
nop
nop
je 0x43204e
xor dword [eax], ecx
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
inc eax
nop
nop
nop
nop
nop
nop
cmp eax, ebx
nop
jne 0x432024
nop
nop
nop
nop
mov eax, section..data
mov ebx, 0x42f314
nop
mov ecx, 0x4b1151b9
nop
nop
test eax, eax
nop
nop
nop
nop
je 0x432084
nop
nop
nop
nop
nop
nop
nop
xor dword [eax], ecx
nop
nop
add eax, 4
nop
nop
nop
nop
nop
cmp eax, ebx
nop
nop
jne 0x43206c
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219
Function at 0x401000
Capabilities:
Allocate thread local storage

Disassembly:
push 0x14
push 0
push 0x415070
call sub.MSVCRT.dll_memset
add esp, 0xc
push 0
call sub.KERNEL32.dll_GetModuleHandleW
mov dword [0x415074], eax
push 0
push 0x1000
push 0
call sub.KERNEL32.dll_HeapCreate
mov dword [0x415070], eax
call fcn.004021ce
call fcn.00409620
call fcn.00408de5
call fcn.00408d70
call fcn.00408ab0
call fcn.00406bec
call fcn.00406490
call fcn.00405cc9
call fcn.0040546a
call fcn.00404fab
call fcn.00404c62
call fcn.00404b15
call fcn.0040453f
call fcn.00403f69
call fcn.00402d50
call fcn.00402283
mov eax, str.2D_Drawing_Test
push eax
push 0xc8
push 0x12c
push 0xc8
push 0x64
push 0
call fcn.004030bc
and eax, eax
je 0x401247
push 0xc8
call fcn.00404b86
push eax
push 0x12c
call fcn.00404baa
push eax
push 0
call fcn.00405181
and eax, eax
je 0x401206
push 0
call fcn.00405197
push eax
call fcn.00404c96
and eax, eax
je 0x401206
push 0xff
push 0
push 0
call fcn.00404cfb
push eax
push 0x32
push 0x64
push 0x64
call fcn.00404d10
push 0
push 0xff
push 0
call fcn.00404cfb
push eax
push 0x14
push 0x14
push 0x14
push 0x96
call fcn.00404d6a
push 0
push 0
push 0xff
call fcn.00404cfb
push eax
call fcn.00404dad
mov dword [0x41507c], 0
jmp 0x401178
mov eax, 0x14
cmp eax, dword [0x41507c]
jl 0x4011ae
push 0
push 0xc8
mov ebx, dword [0x41507c]
shl ebx, 3
add ebx, 0xa
push ebx
push 0xa
call fcn.00404dbf
inc dword [0x41507c]
jno 0x401178
push 1
call fcn.00404e0f
push 0x9b
push 0x9b
push 0
call fcn.00404cfb
push eax
call fcn.00404e1f
push 0xff
push 0xff
push 0xff
call fcn.00404cfb
push eax
call fcn.00404dad
mov eax, str.Hello__this_is_a_test
push eax
push 0x32
push 0xa
call fcn.00404e31
call fcn.00404eb3
push 0
call fcn.00405362
push eax
push 0
push 0
push 0
push 0
push 0
call fcn.004028cf
call fcn.0040326d
mov dword [0x415080], eax
mov ebx, dword [0x415080]
cmp ebx, 0x333c
jne 0x40122f
jmp 0x401249
push 0
call 0x401268
call fcn.00409670
push dword [0x415070]
call sub.KERNEL32.dll_HeapDestroy
call sub.KERNEL32.dll_ExitProcess
call fcn.0040222d
call fcn.00402ca3
call fcn.00402d2d
call fcn.00403f4b
call fcn.00404b04
call fcn.00404f9f
call fcn.00405cbc
call fcn.00408ad0
call fcn.00408e73
call fcn.00408e7f
call fcn.00408d60
ret
Function at 0x403c2e
Capabilities:
Log keystrokes via polling

Disassembly:
sub esp, 0x28
push ebx
push ebp
push esi
push edi
xor edi, edi
call dword [sym.imp.USER32.dll_GetFocus]
mov ebp, dword [esp + 0x3c]
mov ebx, eax
and dword [esp + 0x10], edi
push str.PB_WindowID
push ebp
call dword [sym.imp.USER32.dll_GetPropW]
mov esi, eax
push 9
pop eax
test esi, esi
je 0x403cc6
lea eax, [esp + 0x14]
push eax
push ebp
call dword [sym.imp.USER32.dll_GetWindowThreadProcessId]
test eax, eax
je 0x403cc3
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [esp + 0x14], eax
jne 0x403cc3
lea eax, [esi - 1]
push eax
push dword [0x41529c]
call fcn.00408ee9
mov edi, eax
mov dword [esp + 0x10], 1
xor eax, eax
push 9
cmp dword [edi + 0x10], eax
jle 0x403cc5
mov edx, dword [edi + 4]
xor ecx, ecx
pop esi
cmp word [ecx + edx + 2], si
jne 0x403cba
mov esi, 0xfa01
push 9
cmp word [ecx + edx + 4], si
je 0x403dad
pop esi
inc eax
add ecx, 6
cmp eax, dword [edi + 0x10]
jl 0x403ca0
push 9
pop eax
mov esi, dword [sym.imp.USER32.dll_GetKeyState]
test ebx, ebx
je 0x403d6c
push eax
call esi
test al, al
jns 0x403d6c
push 0x11
call esi
test al, al
js 0x403d6c
push 0x10
call esi
test al, al
js 0x403d6c
push 0x12
call esi
test al, al
js 0x403d6c
push 0x10
lea eax, [esp + 0x1c]
push eax
push ebx
call dword [sym.imp.USER32.dll_GetClassNameW]
cmp dword [esp + 0x10], 0
jne 0x403d6c
push 5
lea eax, [esp + 0x1c]
push str.RichE
push eax
call sub.MSVCRT.dll_wcsncmp
add esp, 0xc
test eax, eax
je 0x403d40
push 4
lea eax, [esp + 0x1c]
push str.RICHE
push eax
call sub.MSVCRT.dll_wcsncmp
add esp, 0xc
test eax, eax
jne 0x403d57
push 0
push 0
push 0x44e
push ebx
call dword [sym.imp.USER32.dll_SendMessageW]
test eax, 0x800
je 0x403db7
lea eax, [esp + 0x18]
push str.Scintilla
push eax
call sub.MSVCRT.dll_wcscmp
pop ecx
pop ecx
test eax, eax
je 0x403db7
test ebp, ebp
je 0x403d90
push 0x11
call esi
test al, al
js 0x403d88
push 0x10
call esi
test al, al
js 0x403d88
push 0x12
call esi
test al, al
jns 0x403d90
push 1
push ebp
call fcn.00403dc3
test ebx, ebx
je 0x403da4
push str.PB_Hotkey
push ebx
call dword [sym.imp.USER32.dll_GetPropW]
test eax, eax
jne 0x403db7
test edi, edi
je 0x403db7
mov eax, dword [edi + 8]
jmp 0x403db9
and dword [esp + 0x14], 0
jmp 0x403cc5
xor eax, eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4

Function at 0x404c96
Capabilities:
Set thread local storage value

Disassembly:
push ebx
push esi
mov esi, dword [esp + 0xc]
xor ebx, ebx
push edi
mov edi, ebx
test esi, esi
je 0x404cf3
push esi
call dword [esi + 0x58]
mov ecx, dword [esi + 0x80]
mov edi, eax
mov dword [esi + 0x94], ecx
mov ecx, dword [esi + 0x84]
mov dword [esi + 0x98], ecx
test edi, edi
jne 0x404cf3
mov eax, dword [esi + 0x70]
test eax, eax
je 0x404cd2
push ebx
push esi
call eax
push esi
push ebx
push dword [0x415070]
call dword [sym.imp.KERNEL32.dll_HeapFree]
push ebx
push dword [0x4152dc]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
mov dword [0x4152e0], ebx
mov eax, edi
pop edi
pop esi
pop ebx
ret 4
Function at 0x406b80
Capabilities:
Write file on windows

Disassembly:
push esi
mov esi, dword [esp + 0x10]
push edi
mov edi, dword [esp + 0xc]
mov eax, dword [edi]
test eax, eax
je 0x406bb2
push 0
lea ecx, [esp + 0x10]
push ecx
push esi
push dword [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x406bad
cmp dword [esp + 0xc], esi
je 0x406bc9
pop edi
xor eax, eax
pop esi
ret
mov eax, dword [edi + 4]
add eax, dword [edi + 8]
push esi
push dword [esp + 0x14]
push eax
call sub.MSVCRT.dll_memcpy
add esp, 0xc
add dword [edi + 8], esi
pop edi
mov eax, 1
pop esi
ret

Function at 0x409ea9
Capabilities:
Set thread local storage value

Disassembly:
push esi
push 0x184
push 8
push dword [0x415070]
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
push esi
push dword [0x4152dc]
call dword [sym.imp.KERNEL32.dll_TlsSetValue]
push dword [esp + 8]
mov dword [0x4152e0], esi
and dword [esi + 0xa8], 0
or dword [esi + 0xac], 0xffffffff
or dword [esi + 0xb0], 0xffffffff
push esi
mov dword [esi + 0xa4], 0xffffff
mov dword [esi + 0x74], 2
mov dword [esi + 0x78], 0x3f
call fcn.0040cadc
mov dword [esi + 0x58], 0x40aabc
mov eax, esi
mov dword [esi + 0x5c], 0x40ab08
mov dword [esi + 0x10], fcn.0040a65d
mov dword [esi + 0x30], 0x40a54f
mov dword [esi + 0x64], 0x40ab92
mov dword [esi + 0x60], 0x40ab4a
mov dword [esi + 0x34], 0x40a1ff
mov dword [esi + 0x24], 0x40a1d6
mov dword [esi + 0x28], 0x40a1ab
mov dword [esi + 0x2c], 0x40a0fd
mov dword [esi + 0x44], 0x40a8c2
pop esi
ret 4
Function at 0x40fda6
Capabilities:
Encode data using xor

Disassembly:
push ecx
push ecx
mov edx, dword [esp + 0x2c]
push esi
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0xd4]
mov dword [esp + 4], eax
test edx, edx
je 0x40fe5c
imul eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
imul ecx, dword [esp + 0x28]
push ebx
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x1c]
neg eax
add ecx, dword [esp + 0x18]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x28]
push ebp
push edi
lea edi, [ecx + eax*4]
mov eax, dword [esp + 0x28]
mov ecx, dword [esi + 0xcc]
mov ebp, edi
imul ecx, ebx
add ecx, dword [esi + 0xc8]
add ecx, eax
cmp dword [esp + 0x38], 0
jle 0x40fe3c
mov edx, dword [esp + 0x38]
mov esi, dword [esp + 0x10]
mov al, byte [ebp + 2]
xor byte [ecx + 2], al
mov al, byte [ebp + 1]
xor byte [ecx + 1], al
mov al, byte [ebp]
lea ebp, [ebp + 4]
xor byte [ecx], al
add ecx, esi
dec edx
jne 0x40fe17
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
dec edx
inc ebx
cmp dword [esi + 0xe8], 0
mov dword [esp + 0x3c], edx
jne 0x40fe51
add edi, dword [esp + 0x14]
jmp 0x40fe55
add edi, dword [esp + 0x24]
test edx, edx
jne 0x40fdf5
pop edi
pop ebp
pop ebx
pop esi
pop ecx
pop ecx
ret 0x24

Function at 0x410167
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ecx
push ecx
imul edx, dword [esp + 0x28], 3
push ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 8], edx
test ebx, ebx
je 0x410241
imul eax, dword [esp + 0x1c], 3
mov ecx, dword [esp + 0x18]
push ebp
mov ebp, dword [esp + 0x24]
neg ecx
push esi
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x20]
imul eax, dword [esp + 0x30]
push edi
imul edi, dword [esp + 0x30], 3
mov dword [esp + 0x10], ecx
add eax, dword [esp + 0x20]
add edi, eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x38], edi
mov esi, dword [eax + 0xcc]
imul esi, ebp
mov dword [esp + 0x34], edi
add esi, dword [eax + 0xc8]
add esi, dword [esp + 0x28]
test edx, edx
jle 0x410217
mov ebp, dword [esp + 0x34]
mov ebx, 0xff
sub ebx, dword [esp + 0x40]
mov edi, edx
movzx eax, byte [esi]
movzx ecx, byte [ebp]
imul ecx, dword [esp + 0x40]
imul eax, ebx
add eax, ecx
mov ecx, 0xff
cdq
idiv ecx
inc ebp
mov byte [esi], al
inc esi
dec edi
jne 0x4101df
mov edi, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x2c]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
dec ebx
inc ebp
cmp dword [eax + 0xe8], 0
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x2c], ebp
jne 0x41022e
add edi, ecx
jmp 0x410232
add edi, dword [esp + 0x24]
mov dword [esp + 0x38], edi
test ebx, ebx
jne 0x4101b5
pop edi
pop esi
pop ebp
pop ebx
pop ecx
pop ecx
ret 0x28
Function at 0x410861
Capabilities:
Encode data using xor

Disassembly:
push ecx
push ecx
push esi
mov esi, dword [esp + 0x30]
push edi
mov edi, dword [esp + 0x14]
mov eax, dword [edi + 0xd4]
mov dword [esp + 8], eax
test esi, esi
je 0x410916
imul eax, dword [esp + 0x20]
imul edx, dword [esp + 0x28], 3
push ebx
mov ebx, dword [esp + 0x28]
push ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x24]
neg eax
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
imul eax, dword [esp + 0x34]
add eax, dword [esp + 0x20]
add edx, eax
mov eax, dword [esp + 0x28]
mov ecx, dword [edi + 0xcc]
mov ebp, edx
imul ecx, ebx
add ecx, dword [edi + 0xc8]
add ecx, eax
cmp dword [esp + 0x38], 0
jle 0x4108f7
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x10]
mov al, byte [ebp + 2]
xor byte [ecx + 2], al
mov al, byte [ebp + 1]
xor byte [ecx + 1], al
mov al, byte [ebp]
lea ebp, [ebp + 3]
xor byte [ecx], al
add ecx, edi
dec esi
jne 0x4108d2
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x28]
dec esi
inc ebx
cmp dword [edi + 0xe8], 0
mov dword [esp + 0x3c], esi
jne 0x41090c
add edx, dword [esp + 0x14]
jmp 0x410910
add edx, dword [esp + 0x24]
test esi, esi
jne 0x4108b0
pop ebp
pop ebx
pop edi
pop esi
pop ecx
pop ecx
ret 0x24
Function at 0x433005
Capabilities:
Encode data using xor

Disassembly:
pushal
call 0x43300c
nop
nop
nop
pop eax
nop
nop
add eax, 0x40a063
nop
nop
sub eax, 0x40a009
nop
nop
nop
mov ebx, dword [eax]
nop
nop
mov ecx, dword [eax + 4]
nop
nop
nop
nop
mov edx, dword [eax + 8]
nop
xor dword [ebx], edx
nop
nop
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
nop
cmp ebx, ecx
nop
nop
nop
jl 0x433030
nop
nop
nop
add eax, 0xc
nop
nop
cmp dword [eax], 0
nop
nop
nop
nop
nop
nop
nop
jne 0x43301e
popal
nop
nop
nop
nop
nop
jmp 0x431219
Function at 0x401170
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Create tcp socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 4], 0xffffffff
push 6
push 1
push 2
call dword [sym.imp.WS2_32.dll_socket]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
je 0x4011d6
mov eax, 2
mov word [ebp - 0x14], ax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x10], ecx
movzx edx, word [ebp + 0xc]
push edx
call dword [sym.imp.WS2_32.dll_htons]
mov word [ebp - 0x12], ax
push 0x10
lea eax, [ebp - 0x14]
push eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.WS2_32.dll_connect]
cmp eax, 0xffffffff
jne 0x4011d6
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.WS2_32.dll_closesocket]
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret

Function at 0x401360
Capabilities:
Get common file path
Get disk information
Get hostname
Get session user name

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x118
mov dword [ebp - 4], 0
lea eax, [ebp - 0x118]
push eax
push 0x105
call dword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
jbe 0x40145e
mov ecx, 1
imul ecx, ecx, 3
mov byte [ebp + ecx - 0x118], 0
push 0
push 0
push 0
push 0
lea edx, [ebp - 4]
push edx
push 0
push 0
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
test eax, eax
jne 0x40145e
mov dword [ebp - 0x10], 0x105
mov dword [ebp - 4], 1
lea ecx, [ebp - 0x10]
push ecx
lea edx, [ebp - 0x118]
push edx
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
test eax, eax
je 0x40140f
lea eax, [ebp - 0x118]
mov dword [ebp - 0xc], eax
jmp 0x4013f6
mov ecx, dword [ebp - 0xc]
add ecx, 1
mov dword [ebp - 0xc], ecx
mov edx, dword [ebp - 0xc]
movsx eax, byte [edx]
test eax, eax
je 0x40140f
mov ecx, dword [ebp - 0xc]
movsx edx, byte [ecx]
imul edx, dword [ebp - 4]
mov dword [ebp - 4], edx
jmp 0x4013ed
cmp dword [ebp - 4], 1
jne 0x40145e
mov dword [ebp - 0x10], 0x105
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x118]
push ecx
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
test eax, eax
je 0x40145e
lea edx, [ebp - 0x118]
mov dword [ebp - 8], edx
jmp 0x401445
mov eax, dword [ebp - 8]
add eax, 1
mov dword [ebp - 8], eax
mov ecx, dword [ebp - 8]
movsx edx, byte [ecx]
test edx, edx
je 0x40145e
mov eax, dword [ebp - 8]
movsx ecx, byte [eax]
imul ecx, dword [ebp - 4]
mov dword [ebp - 4], ecx
jmp 0x40143c
mov eax, dword [ebp - 4]
mov esp, ebp
pop ebp
ret
Function at 0x401490
Capabilities:
Receive data
Receive data on socket

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 0x10], 0
push 0x40310c
mov eax, dword [ebp + 0x10]
push eax
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
je 0x4014b7
mov eax, 1
jmp 0x40152f
mov ecx, dword [ebp + 8]
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 4]
mov dword [ebp - 8], edx
mov eax, 1
test eax, eax
je 0x401527
push 0
mov ecx, 0x1000
sub ecx, dword [ebp - 4]
push ecx
mov edx, dword [ebp - 8]
push edx
mov eax, dword [ebp + 0xc]
push eax
call dword [sym.imp.WS2_32.dll_recv]
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0
jg 0x4014f3
jmp 0x401527
mov ecx, dword [ebp - 4]
add ecx, dword [ebp - 0xc]
mov dword [ebp - 4], ecx
mov edx, dword [ebp + 0x10]
add edx, dword [ebp - 4]
mov dword [ebp - 8], edx
mov eax, dword [ebp - 8]
mov byte [eax], 0
push str._r_n_r_n
mov ecx, dword [ebp + 0x10]
push ecx
call dword [sym.imp.SHLWAPI.dll_StrStrIA]
test eax, eax
je 0x401525
mov eax, 1
jmp 0x40152f
jmp 0x4014c6
mov eax, dword [ebp - 0x10]
jmp 0x40152f
mov esp, ebp
pop ebp
ret