joyce8/EMBER2024-capa huggingface dataset:
Function at 0x5932a0
Capabilities:
Enumerate pe sections

Disassembly:
mov eax, dword [esp + 4]
test eax, eax
je 0x593472
xor ecx, ecx
xor edx, edx
mov ch, byte [eax]
mov dl, byte [eax + 2]
mov cl, byte [eax + 1]
push ebx
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 3]
push ebp
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 6]
mov dword [eax], ecx
xor ecx, ecx
push esi
mov ch, byte [eax + 4]
push edi
mov cl, byte [eax + 5]
xor ebp, ebp
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 7]
shl ecx, 8
or ecx, edx
mov edx, dword [esp + 0x18]
mov dword [eax + 4], ecx
xor ecx, ecx
mov ch, byte [eax + 8]
lea edi, [edx + 0xc]
mov cl, byte [eax + 9]
mov word [eax + 8], cx
mov ecx, dword [eax]
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov cx, word [eax + 8]
mov word [edx + 8], cx
xor ecx, ecx
movzx si, byte [eax + 0xb]
mov ch, byte [eax + 0xa]
or ecx, esi
mov word [eax + 0xa], cx
mov word [edx + 0xa], cx
movzx si, byte [eax + 0xb]
xor ecx, ecx
mov ch, byte [eax + 0xa]
or ecx, esi
mov esi, dword [eax + 0xc]
mov word [eax + 0xa], cx
and ecx, 0xffff
mov ebx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
movzx si, byte [eax + 0x11]
mov bp, word [eax + 0xa]
xor ecx, ecx
mov ch, byte [eax + 0x10]
add ebp, 0xc
or ecx, esi
mov word [eax + 0x10], cx
mov word [edx + ebp], cx
movzx si, byte [eax + 0x11]
xor ecx, ecx
lea edi, [edx + ebp + 2]
mov ch, byte [eax + 0x10]
or ecx, esi
mov esi, dword [eax + 0x14]
mov word [eax + 0x10], cx
and ecx, 0xffff
mov ebx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
movzx si, byte [eax + 0x19]
xor ecx, ecx
mov cx, word [eax + 0x10]
lea ebp, [ecx + ebp + 2]
xor ecx, ecx
mov ch, byte [eax + 0x18]
or ecx, esi
lea edi, [edx + ebp + 2]
mov word [eax + 0x18], cx
mov word [edx + ebp], cx
movzx si, byte [eax + 0x19]
xor ecx, ecx
mov ch, byte [eax + 0x18]
or ecx, esi
mov esi, dword [eax + 0x1c]
mov word [eax + 0x18], cx
and ecx, 0xffff
mov ebx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
movzx si, byte [eax + 0x21]
xor ecx, ecx
mov cx, word [eax + 0x18]
lea ebp, [ecx + ebp + 2]
xor ecx, ecx
mov ch, byte [eax + 0x20]
or ecx, esi
lea edi, [edx + ebp + 2]
mov word [eax + 0x20], cx
mov word [edx + ebp], cx
movzx si, byte [eax + 0x21]
xor ecx, ecx
mov ch, byte [eax + 0x20]
or ecx, esi
mov esi, dword [eax + 0x24]
mov word [eax + 0x20], cx
and ecx, 0xffff
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
xor edx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dl, byte [eax + 6]
xor ecx, ecx
mov ch, byte [eax + 4]
pop edi
mov cl, byte [eax + 5]
pop esi
shl ecx, 8
or ecx, edx
xor edx, edx
mov dl, byte [eax + 7]
pop ebp
shl ecx, 8
or ecx, edx
xor edx, edx
mov dh, byte [eax]
mov dword [eax + 4], ecx
mov dl, byte [eax + 1]
xor ecx, ecx
mov ch, byte [eax + 8]
pop ebx
mov cl, byte [eax + 9]
mov word [eax + 8], cx
xor ecx, ecx
mov cl, byte [eax + 2]
shl edx, 8
or edx, ecx
xor ecx, ecx
mov cl, byte [eax + 3]
shl edx, 8
or edx, ecx
mov dword [eax], edx
ret
Function at 0x596040
Capabilities:
Hash data with md5

Disassembly:
sub esp, 0x94
mov eax, dword [esp + 0x9c]
push esi
push 0x40
lea ecx, [esp + 0x1c]
xor esi, esi
push eax
push ecx
mov dword [esp + 0x24], 0x67452301
mov dword [esp + 0x28], 0xefcdab89
mov dword [esp + 0x2c], 0x98badcfe
mov dword [esp + 0x30], 0x10325476
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
call fcn.00595e50
lea edx, [esp + 0x24]
lea eax, [esp + 0x10]
push edx
push eax
call fcn.00595f80
mov esi, dword [esp + 0xb0]
add esp, 0x14
xor edx, edx
mov cl, byte [esp + edx + 4]
mov al, cl
and cl, 0xf
sar al, 4
and al, 0xf
cmp al, 0xa
movsx eax, al
jge 0x5960ba
add eax, 0x30
jmp 0x5960bd
add eax, 0x57
mov byte [esi], al
cmp cl, 0xa
movsx eax, cl
jge 0x5960cc
add eax, 0x30
jmp 0x5960cf
add eax, 0x57
mov byte [esi + 1], al
inc edx
add esi, 2
cmp edx, 0x10
jl 0x5960a0
pop esi
add esp, 0x94
ret

Function at 0x5960f0
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x84
push ebx
mov ebx, dword [esp + 0x90]
push ebp
mov ebp, dword [esp + 0x90]
push esi
push edi
mov ecx, 0x10
xor eax, eax
mov edi, ebp
mov esi, dword [esp + 0xa0]
rep stosd dword es:[edi], eax
mov ecx, 8
mov edi, ebx
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x20
xor eax, eax
lea edi, [esp + 0x14]
rep stosd dword es:[edi], eax
test esi, esi
mov dword [esp + 0x14], 0x9d14e9a1
mov dword [esp + 0x18], 0x593b6b0e
je 0x59617b
mov edi, esi
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x28
jne 0x59615f
mov byte [esi + 0x20], al
mov ecx, 0x20
jmp 0x596169
cmp ecx, 0x38
jle 0x596169
mov ecx, 0x38
mov eax, ecx
lea edi, [esp + 0x1c]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, 0x945544
test ecx, ecx
je 0x5961af
mov edi, ecx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, 0x38
jle 0x59619a
mov ecx, 0x38
xor eax, eax
test ecx, ecx
jle 0x5961af
mov dl, byte [eax + 0x945544]
xor byte [esp + eax + 0x1c], dl
inc eax
cmp eax, ecx
jl 0x5961a0
lea eax, [esp + 0x14]
push eax
push ebp
call fcn.00596040
mov edi, ebp
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, str.01d0a8e3
mov edx, ecx
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
lea esi, [edx + ebp]
sub edi, ecx
mov eax, ecx
mov dword [esp + 0x10], esi
mov esi, edi
mov edi, dword [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, edx
cdq
and edx, 3
and ecx, 3
add eax, edx
rep movsb byte es:[edi], byte [esi]
sar eax, 2
xor ecx, ecx
test eax, eax
jle 0x596214
mov esi, ebp
mov dl, byte [esi]
add esi, 4
mov byte [ecx + ebx], dl
inc ecx
cmp ecx, eax
jl 0x596207
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x84
ret
Function at 0x596de0
Capabilities:
Encode data using base64
Terminate process

Disassembly:
sub esp, 0x118
mov ecx, 0x3f
mov eax, 0x80808080
push ebx
push ebp
push esi
push edi
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov eax, 0x41
mov cl, al
sub cl, 0x41
mov byte [esp + eax + 0x28], cl
inc eax
cmp eax, 0x5a
jle 0x596e02
mov eax, 0x61
mov dl, al
sub dl, 0x47
mov byte [esp + eax + 0x28], dl
inc eax
cmp eax, 0x7a
jle 0x596e16
mov eax, 0x30
mov cl, al
add cl, 4
mov byte [esp + eax + 0x28], cl
inc eax
cmp eax, 0x39
jle 0x596e2a
mov edi, dword [esp + 0x12c]
or ecx, 0xffffffff
xor eax, eax
xor ebp, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x53], 0x3e
mov byte [esp + 0x57], 0x3f
mov byte [esp + 0x65], 0
mov dword [esp + 0x18], ebp
je 0x596fbd
mov ebx, dword [esp + 0x130]
mov dword [esp + 0x10], 3
mov dword [esp + 0x14], 4
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x12c]
xor eax, eax
lea esi, [edx + ecx]
movsx ecx, byte [esi + eax]
mov dl, byte [esp + ecx + 0x28]
test dl, 0x80
jne 0x596f8e
mov byte [esp + eax + 0x20], cl
mov byte [esp + eax + 0x1c], dl
inc eax
cmp eax, 4
jl 0x596e8c
mov esi, dword [esp + 0x138]
mov edx, dword [esp + 0x10]
cmp edx, dword [esi]
jle 0x596ef6
mov eax, dword [esp + 0x14]
push eax
call fcn.00634a67
mov ecx, dword [esi]
mov esi, ebx
mov edx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
mov dword [esp + 0x2c], eax
rep movsb byte es:[edi], byte [esi]
call fcn.0063497e
mov ecx, dword [esp + 0x140]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x2c]
add esp, 8
mov dword [ecx], eax
mov ecx, dword [esp + 0x1c]
mov edi, dword [esp + 0x10]
mov dl, ch
mov al, cl
sar dl, 4
shl al, 2
or dl, al
mov eax, dword [esp + 0x14]
mov byte [ebx + ebp], dl
inc ebp
inc eax
mov cl, ch
mov dword [esp + 0x14], eax
mov al, byte [esp + 0x1e]
mov dl, al
inc edi
sar dl, 2
shl cl, 4
or dl, cl
mov ecx, dword [esp + 0x14]
shl al, 6
or al, byte [esp + 0x1f]
mov byte [ebx + ebp], dl
inc ebp
mov edx, edi
inc ecx
inc edx
mov byte [ebx + ebp], al
mov al, byte [esp + 0x22]
inc ebp
inc ecx
inc edx
mov dword [esp + 0x10], edi
cmp al, 0x3d
mov dword [esp + 0x14], ecx
mov dword [esp + 0x10], edx
je 0x596fa3
mov cl, byte [esp + 0x23]
xor eax, eax
cmp cl, 0x3d
setne al
add eax, 2
cmp eax, 3
jl 0x596fa3
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x12c]
or ecx, 0xffffffff
xor eax, eax
add edx, 4
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x18], edx
cmp edx, ecx
jae 0x596fc4
jmp 0x596e7c
push ecx
push str.Illegal_character__c_in_input._n
call fcn.0063671d
add esp, 8
push 1
call fcn.0063693f
mov eax, dword [esp + 0x134]
mov byte [ebx + ebp], 0
pop edi
pop esi
mov dword [eax], ebp
mov eax, ebx
pop ebp
pop ebx
add esp, 0x118
ret
mov ebx, dword [esp + 0x130]
mov ecx, dword [esp + 0x134]
mov byte [ebx + ebp], 0
pop edi
pop esi
mov dword [ecx], ebp
mov eax, ebx
pop ebp
pop ebx
add esp, 0x118
ret
Function at 0x5b11e6
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
jmp 0x5b121d
push 0x80000301
push 0
push 0xff
push 1
mov ebx, 0x184
call fcn.005d9c30
add esp, 0x10
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x5b1252
push ebx
call fcn.005d845a
add esp, 4
pop eax
mov dword [ebp - 4], eax
push 0x80000301
push 0
push 0xff
push 1
mov ebx, 0x184
call fcn.005d9c30
add esp, 0x10
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
push eax
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x5b128b
push ebx
call fcn.005d845a
add esp, 4
pop eax
mov dword [ebp - 8], eax
call fcn.005b13c4
mov dword [ebp - 0x14], eax
push 0x80000301
push 0
push 3
push reloc.WS2_32.dll_connect
push 0
mov eax, dword [ebp - 0x14]
test eax, eax
jne 0x5b12b6
mov eax, 0xa3a61f
push eax
push 2
mov ebx, 0x134
call fcn.005d9680
add esp, 0x1c
mov dword [ebp - 0x18], eax
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x5b12dc
push ebx
call fcn.005d845a
add esp, 4
lea eax, [ebp - 0x10]
push eax
call fcn.005b14cd
mov dword [ebp - 0x1c], eax
push 0xff
push dword [ebp - 8]
mov eax, 0
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
mov eax, 0xff
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push eax
push dword [ebp - 0x1c]
push 0xff
push dword [ebp - 4]
push dword [ebp - 0x18]
call dword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
nop
nop
nop
nop
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x5b1333
push ebx
call fcn.005d845a
add esp, 4
cmp dword [ebp - 0x28], 0
je 0x5b1365
push 0x80000401
push dword [ebp - 0xc]
push dword [ebp - 0x10]
push 1
mov ebx, 0x168
call fcn.005d8d10
add esp, 0x10
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
jmp 0x5b139e
push 0x80000101
push 0
push 0
push 1
mov ebx, 0x140
call fcn.005d8940
add esp, 0x10
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
jmp 0x5b139e
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x5b13af
push ebx
call fcn.005d845a
add esp, 4
mov ebx, dword [ebp - 8]
test ebx, ebx
je 0x5b13bf
push ebx
call fcn.005d845a
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret
Function at 0x5b13c4
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
mov dword [ebp - 4], 0
mov dword [ebp - 8], 0
push 0x80000301
push 0
push 0xff
push 1
mov ebx, 0x184
call fcn.005d9c30
add esp, 0x10
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x5b1410
push ebx
call fcn.005d845a
add esp, 4
pop eax
mov dword [ebp - 4], eax
push reloc.WS2_32.dll_connect
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x5b1427
mov eax, 0xa3a61f
push eax
push 1
mov ebx, pe_nt_image_headers32
call fcn.005d8fb0
add esp, 0x10
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
nop
nop
nop
nop
mov dword [ebp - 8], eax
push 0x80000301
push 0
push dword [ebp - 8]
push reloc.WS2_32.dll_connect
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x5b1468
mov eax, 0xa3a61f
push eax
push 2
mov ebx, 0x134
call fcn.005d9680
add esp, 0x1c
mov dword [ebp - 0xc], eax
mov eax, dword [ebp - 0xc]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x5b1492
push ebx
call fcn.005d845a
add esp, 4
pop eax
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
test eax, eax
je 0x5b14b2
push eax
mov ebx, eax
call fcn.005a2e32
inc eax
push eax
call fcn.005d8454
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
jmp 0x5b14b7
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x5b14c8
push ebx
call fcn.005d845a
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret

Function at 0x5b315e
Capabilities:
Get hostname

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov dword [ebp - 4], 0
jmp 0x5b3180
push 0x80000301
push 0
push 0x32
push 1
mov ebx, 0x184
call fcn.005d9c30
add esp, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x5b31b5
push ebx
call fcn.005d845a
add esp, 4
pop eax
mov dword [ebp - 4], eax
push reloc.WS2_32.dll_connect
push 0
mov eax, dword [ebp - 4]
test eax, eax
jne 0x5b31cc
mov eax, 0xa3a61f
push eax
push 1
mov ebx, pe_nt_image_headers32
call fcn.005d8fb0
add esp, 0x10
mov dword [ebp - 0xc], eax
lea eax, [ebp - 0xc]
push eax
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
nop
nop
nop
nop
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0x5b3221
mov eax, dword [ebp - 4]
test eax, eax
je 0x5b321c
push eax
mov ebx, eax
call fcn.005a2e32
inc eax
push eax
call fcn.005d8454
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
jmp 0x5b325a
push 0x80000101
push 0
push 0
push 1
mov ebx, 0x140
call fcn.005d8940
add esp, 0x10
mov dword [ebp - 8], eax
mov eax, dword [ebp - 8]
jmp 0x5b325a
push eax
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x5b326b
push ebx
call fcn.005d845a
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret

Function at 0x5b4b56
Capabilities:
Terminate thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push 0
push dword [ebp + 8]
call dword [sym.imp.KERNEL32.dll_TerminateThread]
nop
nop
nop
nop
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
mov eax, 0
setne al
jmp 0x5b4b85
mov esp, ebp
pop ebp
ret 4
Function at 0x5b4beb
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
mov dword [ebp - 4], 0
push 0
push 0
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
nop
nop
nop
nop
mov dword [ebp - 4], eax
cmp dword [ebp + 0x18], 0
jne 0x5b4c3e
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
nop
nop
nop
nop
jmp 0x5b4c46
mov eax, dword [ebp - 4]
mov ebx, dword [ebp + 0x14]
mov dword [ebx], eax
cmp dword [ebp - 4], 0
mov eax, 0
setne al
jmp 0x5b4c57
mov esp, ebp
pop ebp
ret 0x14

Function at 0x5bae26
Capabilities:
Check mutex on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov dword [ebp - 4], 0
push 0xc
call fcn.005d8454
add esp, 4
mov dword [ebp - 8], eax
mov ebx, eax
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
jmp 0x5bae6e
mov ebx, dword [ebp + 8]
push dword [ebx]
push 1
push dword [ebp - 8]
call dword [sym.imp.KERNEL32.dll_CreateMutexA]
nop
nop
nop
nop
mov dword [ebp - 4], eax
push 0x64
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
nop
nop
nop
nop
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0x102
jne 0x5baece
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_ReleaseMutex]
nop
nop
nop
nop
push dword [ebp - 4]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
nop
nop
nop
nop
push 0
call fcn.005d847e
add esp, 4
jmp 0x5baede
mov ebx, dword [ebp - 8]
push ebx
call fcn.005d845a
add esp, 4
mov esp, ebp
pop ebp
ret 4
Function at 0x5d8d10
Capabilities:
Reference http user-agent string

Disassembly:
mov eax, dword [esp + 0x10]
sub esp, 0x104
mov ecx, eax
push ebx
and ecx, 0x20000000
xor ebx, ebx
push esi
cmp ecx, 0x20000000
push edi
jne 0x5d8d98
and eax, 0xdfffffff
cmp eax, 0x80000201
ja 0x5d8d5d
je 0x5d8d56
cmp eax, reloc.WS2_32.dll_getsockname
je 0x5d8d76
cmp eax, 0x80000101
jne case.default.0x5d8db7
mov eax, 1
jmp 0x5d8d7b
mov eax, 2
jmp 0x5d8d7b
cmp eax, 0x80000301
je 0x5d8d76
cmp eax, 0x80000401
jne case.default.0x5d8db7
mov eax, 8
jmp 0x5d8d7b
mov eax, 4
mov edx, dword [esp + 0x118]
push eax
push edx
call fcn.005d8ca0
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebx
add esp, 0x104
ret
cmp eax, 0x80000101
ja 0x5d8e86
je 0x5d8e77
add eax, 0x7ffffffe
cmp eax, 4
ja case.default.0x5d8db7
jmp dword [eax*4 + 0x5d8f9c]
mov edi, dword [esp + 0x118]
push edi
call fcn.005dacd0
add esp, 4
test eax, eax
je case.default.0x5d8db7
jmp 0x5d8f5e
mov eax, dword [esp + 0x118]
lea edx, [esp + 0xc]
test eax, eax
mov edi, 0xa3b96b
jne 0x5d8df4
mov edi, 0xa3b967
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xc]
push ecx
call fcn.005dacd0
add esp, 4
jmp 0x5d8f5a
mov edx, dword [esp + 0x118]
push 1
push edx
call fcn.005d8ca0
add esp, 8
mov ebx, eax
pop edi
pop esi
pop ebx
add esp, 0x104
ret
mov eax, dword [esp + 0x11c]
mov ecx, dword [esp + 0x118]
push 0
push eax
lea edx, [esp + 0x14]
push ecx
push edx
call fcn.005db460
lea eax, [esp + 0x1c]
push eax
call fcn.005dacd0
add esp, 0x14
test eax, eax
je case.default.0x5d8db7
jmp 0x5d8f5a
mov ecx, dword [esp + 0x118]
and ecx, 0xff
jmp 0x5d8eb2
cmp eax, 0x80000401
ja 0x5d8f02
je 0x5d8ed4
cmp eax, 0x80000201
je 0x5d8eaa
cmp eax, 0x80000301
jne case.default.0x5d8db7
mov ecx, dword [esp + 0x118]
jmp 0x5d8eb2
movsx ecx, word [esp + 0x118]
push ecx
lea edx, [esp + 0x10]
push 0xa3b963
push edx
call fcn.005dc3c3
lea eax, [esp + 0x18]
push eax
call fcn.005dacd0
add esp, 0x10
jmp 0x5d8f5a
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x118]
push ecx
push edx
lea eax, [esp + 0x14]
push str._I64d
push eax
call fcn.005dc3c3
lea ecx, [esp + 0x1c]
push ecx
call fcn.005dacd0
add esp, 0x14
jmp 0x5d8f5a
cmp eax, 0x80000501
je 0x5d8f27
cmp eax, 0x80000601
jne case.default.0x5d8db7
mov edx, dword [esp + 0x11c]
mov eax, dword [esp + 0x118]
push edx
push eax
push 0xa3b957
jmp 0x5d8f39
fld dword [esp + 0x118]
sub esp, 8
fstp qword [esp]
push 0xa3b953
lea ecx, [esp + 0x18]
push ecx
call fcn.005dc3c3
lea edx, [esp + 0x1c]
push edx
call fcn.005db420
lea eax, [esp + 0x20]
push eax
call fcn.005dacd0
add esp, 0x18
lea edi, [esp + 0xc]
test edi, edi
je case.default.0x5d8db7
test eax, eax
je case.default.0x5d8db7
inc eax
push eax
call fcn.005d8680
mov ebx, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
mov esi, edi
mov edi, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
pop edi
mov eax, ebx
pop esi
pop ebx
add esp, 0x104
ret
Function at 0x5da6c0
Capabilities:
Create directory

Disassembly:
sub esp, 0xc
mov ecx, dword [esp + 0x14]
xor eax, eax
mov dword [esp + 4], eax
mov dword [esp + 8], eax
lea eax, [esp]
mov dword [esp], 0xc
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
add esp, 0xc
ret

Function at 0x5da730
Capabilities:
Get file size
Read file on windows

Disassembly:
mov eax, dword [esp + 8]
push edi
push 0
push 0x20
push 3
push 0
push 3
push connect
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
xor eax, eax
cmp edi, 0xffffffff
je 0x5da799
push ebx
lea ecx, [esp + 0x10]
push esi
push ecx
push edi
call dword [sym.imp.KERNEL32.dll_GetFileSize]
mov ebx, eax
lea edx, [ebx + 8]
push edx
call fcn.005d8680
add esp, 4
mov esi, eax
lea eax, [esp + 0x14]
push 0
push eax
lea ecx, [esi + 8]
push ebx
push ecx
push edi
mov dword [esi], 1
mov dword [esi + 4], ebx
call dword [sym.imp.KERNEL32.dll_ReadFile]
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop esi
pop ebx
pop edi
ret

Function at 0x5da7a0
Capabilities:
Write file on windows

Disassembly:
sub esp, 8
mov eax, dword [esp + 0x10]
push edi
push 0
push 0x20
push 2
push 0
push 0
push 0x40000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
xor eax, eax
cmp edi, 0xffffffff
je 0x5da832
mov eax, dword [esp + 0x10]
push ebx
mov ebx, 1
push ebp
cmp eax, ebx
push esi
mov dword [esp + 0x10], ebx
jle 0x5da824
mov ebp, dword [sym.imp.KERNEL32.dll_WriteFile]
lea esi, [esp + 0x2c]
mov eax, dword [esi]
lea edx, [esp + 0x14]
push 0
push edx
lea ecx, [eax + 8]
mov eax, dword [eax + 4]
push eax
push ecx
push edi
call ebp
test eax, eax
je 0x5da81c
mov eax, dword [esp + 0x1c]
inc ebx
add esi, 0xc
cmp ebx, eax
jl 0x5da7e5
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x10]
pop esi
pop ebp
pop ebx
pop edi
add esp, 8
ret
mov dword [esp + 0x10], 0
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [esp + 0x10]
pop esi
pop ebp
pop ebx
pop edi
add esp, 8
ret

Function at 0x5da8b0
Capabilities:
Encode data using xor

Disassembly:
mov edx, dword [esp + 4]
mov eax, dword [esp + 8]
cmp edx, 1
jle 0x5da8ce
push esi
lea ecx, [esp + 0x18]
dec edx
mov esi, dword [ecx]
add ecx, 0xc
xor eax, esi
dec edx
jne 0x5da8c3
pop esi
ret
Function at 0x5dadb0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push ebx
mov ebx, dword [esp + 8]
push ebp
mov ebp, edx
push esi
push edi
mov esi, ebp
xor edi, edi
and esi, 3
mov eax, ecx
jle 0x5dadd1
mov dl, byte [eax]
inc eax
cmp dl, bl
je 0x5dae2b
inc edi
cmp edi, esi
jl 0x5dadc5
mov edi, ebx
and edi, 0xff
mov esi, edi
shl esi, 8
or esi, edi
shl esi, 8
or esi, edi
shl esi, 8
or esi, edi
lea edi, [ecx + ebp]
cmp eax, edi
jae 0x5dae60
mov edx, dword [eax]
xor edx, esi
lea ebp, [edx - 0x1010101]
not edx
and ebp, edx
test ebp, 0x80808080
je 0x5dae1a
cmp byte [eax], bl
je 0x5dae35
cmp byte [eax + 1], bl
je 0x5dae3e
cmp byte [eax + 2], bl
je 0x5dae48
cmp byte [eax + 3], bl
je 0x5dae54
add eax, 4
cmp eax, edi
jb 0x5dadf1
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret 4
pop edi
sub eax, ecx
pop esi
pop ebp
dec eax
pop ebx
ret 4
pop edi
pop esi
pop ebp
sub eax, ecx
pop ebx
ret 4
pop edi
sub eax, ecx
pop esi
pop ebp
inc eax
pop ebx
ret 4
pop edi
sub eax, ecx
pop esi
pop ebp
add eax, 2
pop ebx
ret 4
pop edi
sub eax, ecx
pop esi
pop ebp
add eax, 3
pop ebx
ret 4
pop edi
pop esi
pop ebp
or eax, 0xffffffff
pop ebx
ret 4
Function at 0x5eb960
Capabilities:
Log keystrokes via polling

Disassembly:
push ebx
mov ebx, ecx
push ebp
push esi
mov eax, dword [ebx + 0x13c]
push edi
test eax, eax
jle 0x5eb9ac
mov eax, dword [ebx + 0x140]
test eax, eax
jle 0x5eb9ac
mov ebp, dword [sym.imp.USER32.dll_GetKeyState]
xor esi, esi
lea edi, [ebx + 0x150]
mov eax, dword [edi]
test eax, eax
je 0x5eb996
push eax
call ebp
test ax, ax
jl 0x5eb9a4
inc esi
add edi, 4
cmp esi, 6
jb 0x5eb988
pop edi
pop esi
pop ebp
pop ebx
ret
push esi
mov ecx, ebx
call fcn.005eb660
pop edi
pop esi
pop ebp
pop ebx
ret
Function at 0x5ede30
Capabilities:
Create thread

Disassembly:
push ecx
cmp dword [ecx + 0xcc], 1
je 0x5ede90
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x5ede90
mov eax, dword [ecx + 0xb0]
test eax, eax
je 0x5ede90
push esi
mov edx, 5
mov esi, dword [ecx + 0xbc]
cmp esi, edx
pop esi
je 0x5ede90
mov dword [ecx + 0xb4], eax
mov dword [ecx + 0x94], 0
mov dword [ecx + 0xbc], edx
lea eax, [esp]
push eax
push 0
push ecx
push 0x5edea0
push 0
push 0
call dword [sym.imp.KERNEL32.dll_CreateThread]
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
pop ecx
ret