joyce8/EMBER2024-capa huggingface dataset:
Function at 0x41dc50
Capabilities:
Acquire debug privileges
Enumerate processes

Disassembly:
sub esp, 0x128
push ebx
mov ebx, dword [esp + 0x130]
push esi
xor esi, esi
test ebx, ebx
je 0x41dcde
push str.SeDebugPrivilege
call fcn.0041daf0
add esp, 4
test eax, eax
je 0x41dcde
push edi
push esi
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov edi, eax
lea eax, [esp + 0xc]
push eax
push edi
mov dword [esp + 0x14], 0x128
call sub.KERNEL32.dll_Process32First
test eax, eax
je 0x41dccb
push ebp
mov ebp, dword [sym.imp.MSVCRT.dll__strcmpi]
lea ecx, [esp + 0x34]
push ecx
push ebx
call ebp
add esp, 8
test eax, eax
jne 0x41dcbb
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [esp + 0x18], eax
je 0x41dcbb
inc esi
lea edx, [esp + 0x10]
push edx
push edi
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x41dc9f
pop ebp
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
pop edi
pop esi
pop ebx
add esp, 0x128
ret
mov eax, esi
pop esi
pop ebx
add esp, 0x128
ret

Function at 0x41dcf0
Capabilities:
Acquire debug privileges
Enumerate processes
Terminate process

Disassembly:
mov eax, dword [esp + 4]
sub esp, 0x12c
test eax, eax
je 0x41ddaa
push str.SeDebugPrivilege
call fcn.0041daf0
add esp, 4
test eax, eax
je 0x41ddaa
push ebp
push esi
push 0
push 2
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov esi, eax
lea eax, [esp + 0xc]
push eax
push esi
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], 0x128
call sub.KERNEL32.dll_Process32First
mov ebp, dword [sym.imp.KERNEL32.dll_CloseHandle]
test eax, eax
je 0x41dda5
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_TerminateProcess]
push edi
mov edi, dword [sym.imp.KERNEL32.dll_OpenProcess]
mov edx, dword [esp + 0x140]
lea ecx, [esp + 0x38]
push ecx
push edx
call dword [sym.imp.MSVCRT.dll__strcmpi]
add esp, 8
test eax, eax
jne 0x41dd90
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, dword [esp + 0x1c]
cmp ecx, eax
je 0x41dd90
push ecx
push 0
push 1
call edi
mov esi, eax
test esi, esi
je 0x41dd90
push 0
push esi
call ebx
push esi
call ebp
mov esi, dword [esp + 0x10]
lea eax, [esp + 0x14]
push eax
push esi
call sub.KERNEL32.dll_Process32Next
test eax, eax
jne 0x41dd53
pop edi
pop ebx
push esi
call ebp
pop esi
pop ebp
add esp, 0x12c
ret
Function at 0x71a7f
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x198]
sub esp, 0x218
mov eax, dword [0xa1c20]
xor eax, ebp
mov dword [ebp + 0x194], eax
push esi
xor eax, eax
xor esi, esi
push 0x206
mov word [ebp - 0x74], ax
lea eax, [ebp - 0x72]
push esi
push eax
mov dword [ebp - 0x7c], esi
call fcn.000852d0
add esp, 0xc
mov dword [ebp - 0x78], esi
cmp ebx, esi
je 0x71b31
push edi
mov edi, 0x9b86c
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x71aca
sub eax, edx
sar eax, 1
je 0x71b30
lea eax, [ebp - 0x74]
push eax
mov esi, 0x104
push esi
call dword [fcn.00098234]
push edi
lea eax, [ebp - 0x74]
push esi
push eax
call fcn.00082ef7
push 0x9b888
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.0008344b
add esp, 0x18
cmp dword [ebp - 0x78], 0
je 0x71b30
push dword [ebp - 0x78]
xor esi, esi
inc esi
push esi
push 0x200
push ebx
call fcn.0008373e
push dword [ebp - 0x78]
call fcn.000837d2
add esp, 0x14
mov dword [ebp - 0x7c], esi
pop edi
mov ecx, dword [ebp + 0x194]
mov eax, dword [ebp - 0x7c]
xor ecx, ebp
pop esi
call fcn.00082ee8
add ebp, 0x198
leave
ret

Function at 0x71b4a
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x198]
sub esp, 0x218
mov eax, dword [0xa1c20]
xor eax, ebp
mov dword [ebp + 0x194], eax
push esi
xor eax, eax
xor esi, esi
push 0x206
mov word [ebp - 0x74], ax
lea eax, [ebp - 0x72]
push esi
push eax
mov dword [ebp - 0x7c], esi
call fcn.000852d0
add esp, 0xc
mov dword [ebp - 0x78], esi
cmp ebx, esi
je 0x71c25
push edi
mov edi, 0x9b7b8
mov eax, edi
lea edx, [eax + 2]
mov cx, word [eax]
inc eax
inc eax
cmp cx, si
jne 0x71b99
sub eax, edx
sar eax, 1
je 0x71c24
cmp dword [0xa2fbc], 3
mov esi, 0x104
lea eax, [ebp - 0x74]
jne 0x71bd6
push esi
push eax
call dword [0x98214]
push 0x9b890
lea eax, [ebp - 0x74]
push esi
push eax
call fcn.00082ef7
add esp, 0xc
jmp 0x71bde
push eax
push esi
call dword [fcn.00098234]
push edi
lea eax, [ebp - 0x74]
push esi
push eax
call fcn.00082ef7
push 0x9b888
lea eax, [ebp - 0x74]
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.0008344b
add esp, 0x18
cmp dword [ebp - 0x78], 0
je 0x71c24
push dword [ebp - 0x78]
xor esi, esi
inc esi
push esi
push 0x200
push ebx
call fcn.0008373e
push dword [ebp - 0x78]
call fcn.000837d2
add esp, 0x14
mov dword [ebp - 0x7c], esi
pop edi
mov ecx, dword [ebp + 0x194]
mov eax, dword [ebp - 0x7c]
xor ecx, ebp
pop esi
call fcn.00082ee8
add ebp, 0x198
leave
ret
Function at 0x722c1
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0x194]
sub esp, 0x214
mov eax, dword [0xa1c20]
xor eax, ebp
mov dword [ebp + 0x190], eax
push esi
xor eax, eax
push 0x206
push eax
mov word [ebp - 0x78], ax
lea eax, [ebp - 0x76]
push eax
xor esi, esi
call fcn.000852d0
add esp, 0xc
test edi, edi
je 0x72387
and dword [ebp - 0x7c], esi
mov ecx, 0x9b768
mov eax, ecx
lea esi, [eax + 2]
mov dx, word [eax]
inc eax
inc eax
test dx, dx
jne 0x7230c
sub eax, esi
sar eax, 1
je 0x72330
push 0x9b904
push ecx
lea eax, [ebp - 0x7c]
push eax
call fcn.0008344b
add esp, 0xc
jmp 0x72364
lea eax, [ebp - 0x78]
push eax
mov esi, 0x104
push esi
call dword [fcn.00098234]
push 0x9b86c
lea eax, [ebp - 0x78]
push esi
push eax
call fcn.00082ef7
push 0x9b904
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.0008344b
add esp, 0x18
xor esi, esi
inc esi
cmp dword [ebp - 0x7c], 0
je 0x72387
push dword [ebp - 0x7c]
push esi
push 0x200
push edi
call fcn.00083a11
push dword [ebp - 0x7c]
call fcn.000837d2
add esp, 0x14
mov ecx, dword [ebp + 0x190]
mov eax, esi
xor ecx, ebp
pop esi
call fcn.00082ee8
add ebp, 0x194
leave
ret

Function at 0x7239f
Capabilities:
Read file on windows
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push edi
push 0x9b888
push dword [ebp + 8]
lea eax, [ebp - 4]
xor edi, edi
push eax
mov dword [ebp - 4], edi
call fcn.0008344b
add esp, 0xc
test eax, eax
je 0x723c9
xor eax, eax
jmp 0x7244c
push ebx
push esi
push 2
push edi
push dword [ebp - 4]
call fcn.00083b1d
push dword [ebp - 4]
call fcn.00083d3f
push edi
push edi
push dword [ebp - 4]
mov esi, eax
call fcn.00083b1d
lea eax, [esi + 0x32]
push eax
mov dword [ebp - 8], eax
call fcn.00083dfc
push dword [ebp - 4]
mov edi, eax
push 1
push esi
push edi
call fcn.0008373e
push dword [ebp - 4]
call fcn.000837d2
push 0x32
lea ebx, [edi + esi]
call fcn.0007244f
push 0x9b904
push dword [ebp + 0xc]
lea eax, [ebp - 4]
push eax
call fcn.0008344b
add esp, 0x44
pop esi
pop ebx
test eax, eax
jne 0x723c2
push dword [ebp - 4]
push 1
push dword [ebp - 8]
push edi
call fcn.00083a11
push dword [ebp - 4]
call fcn.000837d2
xor eax, eax
add esp, 0x14
inc eax
pop edi
leave
ret
Function at 0x73be8
Capabilities:
Write file on windows

Disassembly:
push ebp
lea ebp, [esp - 0xf90]
mov eax, 0x1010
call fcn.00087780
mov eax, dword [0xa1c20]
xor eax, ebp
mov dword [ebp + 0xf8c], eax
mov eax, dword [ebp + 0xf98]
push ebx
push esi
mov esi, dword [0x983f4]
xor ebx, ebx
push ebx
mov dword [ebp - 0x7c], eax
push 4
lea eax, [ebp - 0x78]
push eax
push dword [edi]
call esi
cmp eax, 4
je 0x73c2e
xor eax, eax
jmp 0x73c76
cmp dword [ebp - 0x78], ebx
jbe 0x73c65
push 0
push 0x1000
lea eax, [ebp - 0x74]
push eax
push dword [edi]
call esi
mov dword [ebp - 0x80], eax
test eax, eax
je 0x73c65
mov ecx, dword [ebp - 0x7c]
push dword [ecx]
push eax
lea eax, [ebp - 0x74]
push 1
push eax
call fcn.00083a11
add ebx, dword [ebp - 0x80]
add esp, 0x10
cmp ebx, dword [ebp - 0x78]
jb 0x73c33
mov eax, dword [ebp - 0x7c]
push dword [eax]
call fcn.000837d2
cmp ebx, dword [ebp - 0x78]
pop ecx
sbb eax, eax
inc eax
mov ecx, dword [ebp + 0xf8c]
pop esi
xor ecx, ebp
pop ebx
call fcn.00082ee8
add ebp, 0xf90
leave
ret

Function at 0x75392
Capabilities:
Hash data using sha1

Disassembly:
and dword [eax + 4], 0
and dword [eax], 0
mov dword [eax + 8], 0x67452301
mov dword [eax + 0xc], 0xefcdab89
mov dword [eax + 0x10], 0x98badcfe
mov dword [eax + 0x14], 0x10325476
mov dword [eax + 0x18], 0xc3d2e1f0
ret

Function at 0x75526
Capabilities:
Read file on windows

Disassembly:
push ebp
lea ebp, [esp - 0xff0]
mov eax, 0x1070
call fcn.00087780
mov eax, dword [0xa1c20]
xor eax, ebp
mov dword [ebp + 0xfec], eax
mov eax, dword [ebp + 0xff8]
push esi
push edi
push 0x9b888
push eax
lea eax, [ebp - 0x18]
mov esi, ecx
xor edi, edi
push eax
mov dword [ebp - 0x20], esi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x1c], edi
call fcn.0008344b
add esp, 0xc
cmp dword [ebp - 0x18], edi
jne 0x75581
mov edi, esi
xor eax, eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
stosd dword es:[edi], eax
xor eax, eax
jmp 0x75614
push ebx
push 2
push edi
push dword [ebp - 0x18]
call fcn.00083b1d
push dword [ebp - 0x18]
call fcn.00083d3f
push edi
push edi
push dword [ebp - 0x18]
mov dword [ebp - 0x24], eax
call fcn.00083b1d
lea eax, [ebp - 0x80]
call fcn.00075392
push dword [ebp - 0x18]
mov esi, 0x1000
push esi
lea eax, [ebp - 0x14]
push 1
push eax
call fcn.0008373e
mov ebx, eax
add esp, 0x2c
cmp ebx, edi
jbe 0x755ee
push ebx
lea edi, [ebp - 0x80]
lea ecx, [ebp - 0x14]
call fcn.000753bd
push dword [ebp - 0x18]
add dword [ebp - 0x1c], ebx
push esi
lea eax, [ebp - 0x14]
push 1
push eax
call fcn.0008373e
mov ebx, eax
add esp, 0x14
test ebx, ebx
ja 0x755c7
mov edi, dword [ebp - 0x20]
push edi
lea esi, [ebp - 0x80]
call fcn.00075456
push dword [ebp - 0x18]
call fcn.000837d2
mov eax, dword [ebp - 0x1c]
pop ecx
pop ecx
pop ebx
cmp eax, dword [ebp - 0x24]
jb 0x75573
xor eax, eax
inc eax
mov ecx, dword [ebp + 0xfec]
pop edi
xor ecx, ebp
pop esi
call fcn.00082ee8
add ebp, 0xff0
leave
ret
Function at 0x76db7
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push edi
mov edi, edx
test ecx, ecx
jne 0x76dc2
xor eax, eax
pop edi
ret
push esi
not eax
mov edx, 0xff
cmp edi, 8
jb 0x76e74
mov esi, edi
shr esi, 3
push ebx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x9ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x9ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x9ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x9ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x9ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x9ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x9ce38]
inc ecx
movzx ebx, byte [ecx]
xor ebx, eax
and ebx, edx
shr eax, 8
xor eax, dword [ebx*4 + 0x9ce38]
inc ecx
sub edi, 8
dec esi
jne 0x76dd9
pop ebx
test edi, edi
je 0x76e8d
movzx esi, byte [ecx]
xor esi, eax
and esi, edx
shr eax, 8
xor eax, dword [esi*4 + 0x9ce38]
inc ecx
dec edi
jne 0x76e78
pop esi
not eax
pop edi
ret

Function at 0x76e92
Capabilities:
Generate random numbers using the delphi lcg
Hash data with crc32

Disassembly:
mov eax, dword [ecx]
movsx edx, dl
xor edx, eax
push esi
mov esi, 0xff
and edx, esi
mov edx, dword [edx*4 + 0x9ce38]
shr eax, 8
xor edx, eax
mov eax, dword [ecx + 8]
mov dword [ecx], edx
movzx edx, dl
add edx, dword [ecx + 4]
imul edx, edx, 0x8088405
inc edx
mov dword [ecx + 4], edx
shr edx, 0x18
xor edx, eax
and edx, esi
shr eax, 8
xor eax, dword [edx*4 + 0x9ce38]
pop esi
mov dword [ecx + 8], eax
ret
Function at 0x8d3790
Capabilities:
Accept command line arguments

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffef8
mov esi, edx
mov ebx, eax
test ebx, ebx
jne 0x8d37bf
push 0x105
lea eax, [esp + 4]
push eax
push 0
call sub.kernel32.dll_GetModuleFileNameA
mov ecx, eax
mov edx, esp
mov eax, esi
call fcn.008d44cc
jmp 0x8d37dd
call sub.kernel32.dll_GetCommandLineA
mov edi, eax
mov edx, esi
mov eax, edi
call fcn.008d3718
mov edi, eax
test ebx, ebx
je 0x8d37dd
cmp dword [esi], 0
je 0x8d37dd
dec ebx
jmp 0x8d37c6
add esp, 0x108
pop edi
pop esi
pop ebx
ret

Function at 0x8d388c
Capabilities:
Generate random numbers using the delphi lcg

Disassembly:
imul edx, dword [0x8e703c], 0x8088405
inc edx
mov dword [0x8e703c], edx
mul edx
mov eax, edx
ret

Function at 0x8d39a8
Capabilities:
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
movzx eax, word [section.sect_9]
mov dword [ebp - 8], eax
lea eax, [ebp - 4]
push eax
push 1
push 0
push 0x8d3a40
push 0x80000002
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x8d3a20
xor eax, eax
push ebp
push 0x8d3a19
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0xc], 4
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push 0
push 0
push 0x8d3a5c
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegQueryValueExA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x8d3a20
mov eax, dword [ebp - 4]
push eax
call sub.advapi32.dll_RegCloseKey
ret
mov ax, word [section.sect_9]
and ax, 0xffc0
mov dx, word [ebp - 8]
and dx, 0x3f
or ax, dx
mov word [section.sect_9], ax
mov esp, ebp
pop ebp
ret
Function at 0x8d5758
Capabilities:
Get geographical location
Query or enumerate registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffee0
push ebx
push esi
mov dword [ebp - 4], eax
push 0x105
lea eax, [ebp - 0x11d]
push eax
push 0
call sub.kernel32.dll_GetModuleFileNameA
mov byte [ebp - 0x12], 0
lea eax, [ebp - 8]
push eax
push 0xf003f
push 0
push 0x8d5914
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
je 0x8d57b9
lea eax, [ebp - 8]
push eax
push 0xf003f
push 0
push 0x8d5930
push 0x80000001
call sub.advapi32.dll_RegOpenKeyExA
test eax, eax
jne 0x8d582b
xor eax, eax
push ebp
push 0x8d5824
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 0x18], 5
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
lea eax, [ebp - 0x11d]
call fcn.008d55b0
push eax
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
test eax, eax
je 0x8d580d
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x12]
push eax
push 0
push 0
push 0x8d5950
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegQueryValueExA
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x8d582b
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey
ret
mov eax, dword [ebp - 4]
push eax
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_lstrcpyA
push 5
lea eax, [ebp - 0xd]
push eax
push 3
call sub.kernel32.dll_GetThreadLocale
push eax
call sub.kernel32.dll_GetLocaleInfoA
xor esi, esi
cmp byte [ebp - 0x11d], 0
je 0x8d590c
cmp byte [ebp - 0xd], 0
jne 0x8d586d
cmp byte [ebp - 0x12], 0
je 0x8d590c
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_lstrlenA
mov ebx, eax
lea eax, [ebp - 0x11d]
add ebx, eax
jmp 0x8d5886
dec ebx
cmp byte [ebx], 0x2e
je 0x8d5895
lea eax, [ebp - 0x11d]
cmp ebx, eax
jne 0x8d5885
lea eax, [ebp - 0x11d]
cmp ebx, eax
je 0x8d590c
inc ebx
cmp byte [ebp - 0x12], 0
je 0x8d58c2
lea eax, [ebp - 0x12]
push eax
push ebx
call sub.kernel32.dll_lstrcpyA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x8d590c
cmp byte [ebp - 0xd], 0
je 0x8d590c
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.kernel32.dll_lstrcpyA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_LoadLibraryExA
mov esi, eax
test esi, esi
jne 0x8d590c
mov byte [ebp - 0xb], 0
lea eax, [ebp - 0xd]
push eax
push ebx
call sub.kernel32.dll_lstrcpyA
push 2
push 0
lea eax, [ebp - 0x11d]
push eax
call sub.kernel32.dll_LoadLibraryExA
mov esi, eax
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret

Function at 0x8d7eb0
Capabilities:
Get common file path

Disassembly:
push ebx
add esp, 0xfffffefc
mov ebx, eax
push esp
push 0x104
call sub.kernel32.dll_GetCurrentDirectoryA
mov ecx, eax
mov edx, esp
mov eax, ebx
call fcn.008d44cc
add esp, 0x104
pop ebx
ret
Function at 0x8d8914
Capabilities:
Get geographical location

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff00
push ebx
push esi
mov esi, ecx
mov ebx, dword [ebp + 8]
push pe_nt_image_headers32
lea ecx, [ebp - 0x100]
push ecx
push edx
push eax
call sub.kernel32.dll_GetLocaleInfoA_1
test eax, eax
jle 0x8d894d
mov ecx, eax
dec ecx
lea edx, [ebp - 0x100]
mov eax, ebx
call fcn.008d44cc
jmp 0x8d8956
mov eax, ebx
mov edx, esi
call fcn.008d4438
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4

Function at 0x8d8960
Capabilities:
Get geographical location

Disassembly:
push ebx
push esi
push edi
push ecx
mov ebx, ecx
mov esi, edx
mov edi, eax
push 2
lea eax, [esp + 4]
push eax
push esi
push edi
call sub.kernel32.dll_GetLocaleInfoA_1
test eax, eax
jle 0x8d8981
mov al, byte [esp]
jmp 0x8d8983
mov eax, ebx
pop edx
pop edi
pop esi
pop ebx
ret

Function at 0x8ddee0
Capabilities:
Get hostname

Disassembly:
push ebx
add esp, 0xffffffec
mov ebx, eax
mov dword [esp], 0x10
push esp
lea eax, [esp + 8]
push eax
call sub.kernel32.dll_GetComputerNameA
test eax, eax
je 0x8ddf0c
lea edx, [esp + 4]
mov eax, ebx
mov ecx, dword [esp]
call fcn.008d44cc
jmp 0x8ddf13
mov eax, ebx
call fcn.008d43e4
add esp, 0x14
pop ebx
ret

Function at 0x8de040
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffef4
push ebx
xor edx, edx
mov dword [ebp - 0x108], edx
mov dword [ebp - 0x10c], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x8de0de
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x104
lea eax, [ebp - 0x104]
push eax
call sub.kernel32.dll_GetWindowsDirectoryA
lea eax, [ebp - 0x104]
call fcn.008d7ed8
test eax, eax
jbe 0x8de0b9
lea edx, [ebp - 0x10c]
lea eax, [ebp - 0x104]
call fcn.008d8044
mov eax, dword [ebp - 0x10c]
lea edx, [ebp - 0x108]
call fcn.008d7d70
mov eax, dword [ebp - 0x108]
mov edx, ebx
call fcn.008ddff4
jmp 0x8de0c0
mov eax, ebx
call fcn.008d43e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x8de0e5
lea eax, [ebp - 0x10c]
mov edx, 2
call fcn.008d4408
ret

Function at 0x8de160
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff4
mov dword [esp + 4], edx
mov dword [esp], eax
xor esi, esi
lea eax, [ecx + 8]
mov edx, esi
mov byte [eax], dl
inc esi
inc eax
cmp esi, 0x100
jne 0x8de172
xor edi, edi
mov dword [esp + 8], 3
xor esi, esi
lea ebx, [ecx + 8]
mov eax, esi
cdq
idiv dword [esp + 4]
mov eax, dword [esp]
movzx eax, byte [eax + edx]
xor edx, edx
mov dl, byte [ebx]
add edi, edx
add eax, edi
mov edi, eax
mov al, byte [ebx]
mov edx, edi
and edx, 0xff
mov dl, byte [ecx + edx + 8]
mov byte [ebx], dl
mov edx, edi
and edx, 0xff
mov byte [ecx + edx + 8], al
inc esi
inc ebx
cmp esi, 0x100
jne 0x8de18f
dec dword [esp + 8]
jne 0x8de18a
xor eax, eax
mov dword [ecx], eax
mov dword [ecx + 4], edi
add esp, 0xc
pop edi
pop esi
pop ebx
ret
Function at 0x8de1e4
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov esi, eax
mov edi, dword [esi]
mov eax, dword [esi + 4]
mov dword [esp], eax
dec ecx
test ecx, ecx
jl 0x8de25b
inc ecx
mov dword [esp + 4], ecx
inc edi
mov eax, edi
and eax, 0xff
xor ecx, ecx
mov cl, byte [esi + eax + 8]
xor eax, eax
mov al, cl
movzx eax, byte [esi + eax + 8]
add eax, ecx
xor ebx, ebx
mov bl, al
push dword [esi + ebx + 8]
mov ebx, edi
and ebx, 0xff
lea ebp, [esi + ebx + 8]
pop ebx
mov byte [ebp], bl
xor ebx, ebx
mov bl, al
lea ebx, [esi + ebx + 8]
push ebx
pop ebx
mov byte [ebx], cl
mov ecx, eax
shr ecx, 8
add cl, al
xor eax, eax
mov al, cl
movzx eax, byte [esi + eax + 8]
add dword [esp], eax
mov al, byte [esp]
xor byte [edx], al
inc edx
dec dword [esp + 4]
jne 0x8de1ff
mov dword [esi], edi
mov eax, dword [esp]
mov dword [esi + 4], eax
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret

Function at 0x8de290
Capabilities:
Encode data using xor

Disassembly:
push esi
push edi
mov esi, eax
mov edi, edx
push ecx
shr ecx, 2
je 0x8de2aa
cld
mov eax, dword [edi]
xor dword [esi], eax
add esi, 4
add edi, 4
dec ecx
jne 0x8de29d
pop ecx
and ecx, 3
je 0x8de2b9
mov al, byte [edi]
xor byte [esi], al
inc esi
inc edi
dec ecx
jne 0x8de2b0
pop edi
pop esi
ret

Function at 0x8de2c4
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
add esp, 0xfffffff8
mov dword [esp], eax
xor eax, eax
mov al, byte [esp]
mov al, byte [eax + 0x8e42f8]
mov byte [esp + 4], al
xor eax, eax
mov al, byte [esp + 1]
mov al, byte [eax + 0x8e42f8]
mov byte [esp + 5], al
xor eax, eax
mov al, byte [esp + 2]
mov al, byte [eax + 0x8e42f8]
mov byte [esp + 6], al
xor eax, eax
mov al, byte [esp + 3]
mov al, byte [eax + 0x8e42f8]
mov byte [esp + 7], al
mov eax, dword [esp + 4]
pop ecx
pop edx
ret
Function at 0x8de35c
Capabilities:
Encrypt data using aes
Reference aes constants

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
push ebx
push esi
push edi
mov byte [ebp - 0x15], cl
mov ebx, edx
mov dword [ebp - 0x14], eax
xor eax, eax
lea edx, [ebp - 0x10]
cmp byte [ebp - 0x15], 0
jne 0x8de3ea
lea ecx, [eax]
and ecx, 0x80000003
jns 0x8de387
dec ecx
or ecx, 0xfffffffc
inc ecx
movzx ecx, byte [ebx + ecx*4]
mov ecx, dword [ecx*4 + 0x8e4530]
lea esi, [eax + 1]
and esi, 0x80000003
jns 0x8de3a2
dec esi
or esi, 0xfffffffc
inc esi
movzx esi, byte [ebx + esi*4 + 1]
xor ecx, dword [esi*4 + 0x8e4930]
lea esi, [eax + 2]
and esi, 0x80000003
jns 0x8de3be
dec esi
or esi, 0xfffffffc
inc esi
movzx esi, byte [ebx + esi*4 + 2]
xor ecx, dword [esi*4 + 0x8e4d30]
lea esi, [eax + 3]
and esi, 0x80000003
jns 0x8de3da
dec esi
or esi, 0xfffffffc
inc esi
movzx esi, byte [ebx + esi*4 + 3]
xor ecx, dword [esi*4 + 0x8e5130]
mov dword [edx], ecx
jmp 0x8de45f
lea ecx, [eax]
and ecx, 0x80000003
jns 0x8de3f9
dec ecx
or ecx, 0xfffffffc
inc ecx
movzx ecx, byte [ebx + ecx*4]
mov cl, byte [ecx + 0x8e42f8]
mov byte [edx], cl
lea ecx, [eax + 1]
and ecx, 0x80000003
jns 0x8de415
dec ecx
or ecx, 0xfffffffc
inc ecx
movzx ecx, byte [ebx + ecx*4 + 1]
mov cl, byte [ecx + 0x8e42f8]
mov byte [edx + 1], cl
lea ecx, [eax + 2]
and ecx, 0x80000003
jns 0x8de433
dec ecx
or ecx, 0xfffffffc
inc ecx
movzx ecx, byte [ebx + ecx*4 + 2]
mov cl, byte [ecx + 0x8e42f8]
mov byte [edx + 2], cl
lea ecx, [eax + 3]
and ecx, 0x80000003
jns 0x8de451
dec ecx
or ecx, 0xfffffffc
inc ecx
movzx ecx, byte [ebx + ecx*4 + 3]
mov cl, byte [ecx + 0x8e42f8]
mov byte [edx + 3], cl
inc eax
add edx, 4
cmp eax, 4
jne 0x8de372
mov edx, dword [ebp - 0x14]
lea eax, [ebp - 0x10]
mov ecx, 0x10
call fcn.008de290
mov edi, ebx
lea esi, [ebp - 0x10]
mov ecx, 4
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret