joyce8/EMBER2024-capa huggingface dataset:
Function at 0x4214a0
Capabilities:
Get geographical location

Disassembly:
push ebx
push esi
push edi
push ecx
mov edi, ecx
mov esi, edx
mov ebx, eax
push 2
lea eax, [esp + 4]
push eax
push esi
push ebx
call sub.kernel32.dll_GetLocaleInfoW_1
test eax, eax
jle 0x4214c2
movzx eax, word [esp]
jmp 0x4214c4
mov eax, edi
pop edx
pop edi
pop esi
pop ebx
ret

Function at 0x4221ac
Capabilities:
Write file on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffff778
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 4], ecx
xor ecx, ecx
push ebp
push 0x4222d1
push dword fs:[ecx]
mov dword fs:[ecx], esp
push 0x400
lea ecx, [ebp - 0x888]
call fcn.00421fb4
mov esi, eax
mov eax, dword [0x5b6258]
cmp byte [eax], 0
je 0x422279
mov eax, dword [0x5b60b8]
call fcn.00406f8c
call fcn.00406828
push 0
push 0
push 0
push 0
push esi
lea eax, [ebp - 0x888]
push eax
push 0
push 1
call sub.kernel32.dll_WideCharToMultiByte_1
mov ebx, eax
push ebx
lea eax, [ebp - 4]
mov ecx, 1
mov edx, dword [0x42217c]
call fcn.0040ad7c
add esp, 4
push 0
push 0
push ebx
mov eax, dword [ebp - 4]
push eax
push esi
lea eax, [ebp - 0x888]
push eax
push 0
push 1
call sub.kernel32.dll_WideCharToMultiByte_1
push 0
lea eax, [ebp - 8]
push eax
push ebx
mov eax, dword [ebp - 4]
push eax
push 0xfffffffffffffff4
call sub.kernel32.dll_GetStdHandle_1
push eax
call sub.kernel32.dll_WriteFile_1
push 0
lea eax, [ebp - 8]
push eax
push 2
push 0x4222ec
push 0xfffffffffffffff4
call sub.kernel32.dll_GetStdHandle_1
push eax
call sub.kernel32.dll_WriteFile_1
jmp 0x4222b5
push 0x40
lea eax, [ebp - 0x88]
push eax
mov eax, dword [0x5b6078]
mov eax, dword [eax + 4]
push eax
mov eax, dword [0x5b9c50]
call fcn.0040af60
push eax
call sub.user32.dll_LoadStringW_1
push 0x2010
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x888]
push eax
push 0
call sub.user32.dll_MessageBoxW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4222d8
lea eax, [ebp - 4]
mov edx, dword [0x42217c]
call fcn.0040aea0
ret

Function at 0x423bd4
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffdf8
mov ebx, eax
mov eax, ebx
call fcn.00409214
mov ebp, eax
push ebp
push 0
push 0
mov ecx, ebx
xor edx, edx
mov eax, 0xfde9
call fcn.0040c930
mov edi, eax
cmp edi, 0x104
jbe 0x423b7b
mov eax, edi
add eax, eax
call fcn.004066d4
mov esi, eax
jmp 0x423b7d
mov esi, esp
push ebp
push esi
push edi
mov ecx, ebx
xor edx, edx
mov eax, 0xfde9
call fcn.0040c930
mov eax, esi
push eax
call sub.user32.dll_CharUpperW
xor ebx, ebx
mov eax, edi
dec eax
test eax, eax
jl 0x423bb8
inc eax
xor edx, edx
mov ecx, ebx
shl ecx, 5
shr ebx, 0x1b
or ecx, ebx
mov ebx, ecx
movzx ecx, word [esi + edx*2]
xor ebx, ecx
inc edx
dec eax
jne 0x423ba2
mov eax, esp
cmp esi, eax
je 0x423bc5
mov eax, esi
call fcn.004066f0
mov eax, ebx
add esp, 0x208
pop ebp
pop edi
pop esi
pop ebx
ret
push esi
push ebx
mov esi, eax
xor eax, eax
push esi
rol eax, 5
mov bl, byte [esi]
test bl, 0x80
jne 0x423c00
cmp bl, 0
je 0x423bfc
cmp bl, 0x41
jl 0x423bf7
cmp bl, 0x5a
jg 0x423bf7
or bl, 0x20
xor al, bl
inc esi
jmp 0x423bdb
pop ecx
pop ebx
pop esi
ret
pop eax
pop ebx
pop esi
jmp 0x423b3c
Function at 0x42445c
Capabilities:
Get geographical location

Disassembly:
push ebx
add esp, 0xfffff800
mov ebx, ecx
mov word [esp], 0
push 0x400
lea ecx, [esp + 4]
push ecx
push edx
push eax
call sub.kernel32.dll_GetLocaleInfoW_1
mov eax, ebx
mov edx, esp
mov ecx, 0x400
call fcn.004099d4
add esp, 0x800
pop ebx
ret

Function at 0x435174
Capabilities:
Encrypt data using rc4 prga

Disassembly:
cmp eax, edx
je 0x4351c6
test eax, edx
je 0x4351c9
movzx ecx, byte [edx]
cmp cl, byte [eax]
je 0x435189
movzx eax, byte [eax]
sub eax, ecx
ret
push ebx
mov ebx, dword [eax - 4]
xor ecx, ecx
sub ebx, dword [edx - 4]
push ebx
adc ecx, 0xffffffff
and ecx, ebx
sub ecx, dword [eax - 4]
sub eax, ecx
sub edx, ecx
mov ebx, dword [ecx + eax]
xor ebx, dword [ecx + edx]
jne 0x4351af
add ecx, 4
js 0x43519f
pop eax
pop ebx
ret
bsf ebx, ebx
shr ebx, 3
add ecx, ebx
jns 0x4351ac
movzx eax, byte [ecx + eax]
movzx edx, byte [ecx + edx]
sub eax, edx
pop ebx
pop ebx
ret
xor eax, eax
ret
test eax, eax
je 0x4351d5
test edx, edx
jne 0x43517c
mov eax, dword [eax - 4]
ret
sub eax, dword [edx - 4]
ret
Function at 0x4dc2ec
Capabilities:
Set registry value

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x10], ecx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x4dc3d7
push dword fs:[eax]
mov dword fs:[eax], esp
mov dl, 1
mov eax, dword [0x489fe8]
call fcn.004a7340
mov dword [ebp - 0xc], eax
mov dx, 0x5c
mov eax, dword [ebp - 0xc]
call fcn.004a67b0
mov edx, ebx
mov eax, dword [ebp - 0xc]
call fcn.004a652c
mov dword [ebp - 8], 0x80000000
mov eax, dword [ebp - 0xc]
mov edx, dword [eax]
call dword [edx + 0x14]
mov ebx, eax
dec ebx
test ebx, ebx
jl 0x4dc381
inc ebx
xor esi, esi
push 0
lea eax, [ebp - 8]
push eax
push 0
push 0xf003f
push 0
push 0
push 0
lea ecx, [ebp - 0x10]
mov edx, esi
mov eax, dword [ebp - 0xc]
mov edi, dword [eax]
call dword [edi + 0xc]
mov eax, dword [ebp - 0x10]
call fcn.00409930
push eax
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCreateKeyExW
inc esi
dec ebx
jne 0x4dc34b
mov ebx, dword [ebp - 4]
test ebx, ebx
je 0x4dc38d
sub ebx, 4
mov ebx, dword [ebx]
inc ebx
mov eax, ebx
add eax, eax
push eax
mov eax, dword [ebp - 4]
call fcn.00409930
push eax
push 1
push 0
push 0
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegSetValueExW
mov eax, dword [ebp - 8]
push eax
call sub.advapi32.dll_RegCloseKey_1
mov eax, dword [ebp - 0xc]
xor edx, edx
mov dword [ebp - 0xc], edx
call fcn.00407540
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4dc3de
lea eax, [ebp - 0x10]
call fcn.00408d3c
ret
Function at 0x4e7c50
Capabilities:
Delete registry key
Set registry value

Disassembly:
push ebp
mov ebp, esp
mov ecx, 5
push 0
push 0
dec ecx
jne 0x4e7c58
push ebx
push esi
push edi
mov eax, 0x4df8b8
call fcn.0040d990
xor eax, eax
push ebp
push 0x4e7f1b
push dword fs:[eax]
mov dword fs:[eax], esp
mov edi, 0x24a
mov esi, dword [0x5b6148]
add esi, 0x492
mov eax, edi
call fcn.00406af4
call fcn.004dd554
lea edx, [ebp - 0x14]
mov eax, 0x16
call fcn.004de2c0
mov eax, dword [ebp - 0x14]
call fcn.00409930
push eax
lea edx, [ebp - 0x1c]
mov eax, 0x1e
call fcn.004dd584
mov eax, dword [ebp - 0x1c]
call fcn.00409930
mov edx, eax
lea eax, [ebp - 0x18]
call fcn.0040967c
mov eax, dword [ebp - 0x18]
call fcn.004dee3c
pop edx
call fcn.004defcc
mov eax, 0x3e7
call fcn.00406af4
call fcn.004dd554
mov eax, 0x40e520
mov dword [0x5bc35c], eax
movzx eax, word [esi]
cmp eax, 0x7fffffff
jge 0x4e7d64
mov ebx, 0x15
mov eax, ebx
call fcn.00406af4
call fcn.004dd554
cmp dword [0x5bc360], 0
jne 0x4e7d5f
lea edx, [ebp - 0x20]
mov eax, 0x14
call fcn.004de1e4
mov eax, dword [ebp - 0x20]
call fcn.00409930
push eax
lea edx, [ebp - 0x28]
mov eax, 0x1e
call fcn.004dd584
mov eax, dword [ebp - 0x28]
call fcn.00409930
mov edx, eax
lea eax, [ebp - 0x24]
call fcn.0040967c
mov eax, dword [ebp - 0x24]
call fcn.004dee3c
pop edx
call fcn.004defcc
mov dword [0x5bc360], eax
dec ebx
test ebx, ebx
jne 0x4e7d02
dec edi
sub esi, 2
cmp edi, 0x4f
jne 0x4e7c8b
xor eax, eax
push ebp
push 0x4e7d9a
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
push 0x40010006
call dword [0x5bc35c]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4e7dc4
push 0x5bc340
call sub.user32.dll_DispatchMessageW
push 1
push 0
push 0
push 0
push 0x5bc340
call dword [0x5bc360]
push 1
push 0
push 0
push 0
push 0x5bc340
call dword [0x5bc360]
push 1
push 0
push 0
push 0
push 0x5bc340
call dword [0x5bc360]
push 0x5bc340
call dword [0x5bc364]
mov eax, dword [0x5b6054]
cmp byte [eax], 0
je 0x4e7e49
mov eax, 0x3e7
call fcn.00406af4
call fcn.004dd554
mov eax, 0x3e7
call fcn.00406af4
test eax, eax
jns 0x4e7e3e
call fcn.004072d8
push eax
call sub.kernel32.dll_SetLastError
jmp 0x4e7dc4
mov eax, 0x7fffffff
call fcn.00406af4
cmp eax, 0xfffffff6
jge 0x4e7ee0
lea eax, [sub.kernel32.dll_Sleep_1]
lea eax, [0x40e27c]
lea eax, [0x40e284]
lea eax, [0x40e28c]
lea eax, [0x40e294]
lea eax, [0x40e29c]
lea eax, [0x40e2a4]
lea eax, [0x40e2ac]
lea eax, [0x40e2b4]
lea eax, [0x40e2bc]
call sub.advapi32.dll_RegCloseKey_1
call sub.advapi32.dll_RegCreateKeyExW
call sub.advapi32.dll_RegDeleteKeyW
lea eax, [0x40e2dc]
call sub.advapi32.dll_RegOpenKeyExW_1
lea eax, [0x40e2ec]
lea eax, [0x40e2f4]
call sub.advapi32.dll_RegQueryInfoKeyW
lea eax, [0x40e304]
lea eax, [0x40e30c]
lea eax, [0x40e314]
lea eax, [0x40e31c]
call sub.advapi32.dll_RegSetValueExW
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4e7f22
lea eax, [ebp - 0x28]
call fcn.00408d3c
lea eax, [ebp - 0x24]
call fcn.00408d84
lea eax, [ebp - 0x20]
mov edx, 2
call fcn.00408d9c
lea eax, [ebp - 0x18]
call fcn.00408d84
lea eax, [ebp - 0x14]
call fcn.00408d3c
ret
Function at 0x432006
Capabilities:
Encode data using xor

Disassembly:
call 0x43200c
nop
nop
nop
nop
pop eax
nop
nop
add eax, 0x40729f
nop
sub eax, 0x407245
mov ebx, dword [eax]
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
nop
nop
nop
nop
nop
xor dword [ebx], edx
nop
nop
nop
nop
add ebx, 4
nop
nop
nop
nop
cmp ebx, ecx
nop
jl 0x432030
nop
nop
nop
nop
add eax, 0xc
nop
nop
nop
nop
nop
cmp dword [eax], 0
nop
nop
jne 0x43201e
nop
nop
nop
nop
nop
nop
nop
popal
nop
jmp 0x431219

Function at 0x10010f8
Capabilities:
Parse pe header
Terminate process

Disassembly:
push 0x70
push 0x1001090
call fcn.010012e0
xor ebx, ebx
push ebx
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
call edi
cmp word [eax], 0x5a4d
jne 0x1001135
mov ecx, dword [eax + 0x3c]
add ecx, eax
cmp dword [ecx], 0x4550
jne 0x1001135
movzx eax, word [ecx + 0x18]
cmp eax, 0x10b
je 0x100114d
cmp eax, 0x20b
je 0x100113a
mov dword [ebp - 0x1c], ebx
jmp 0x1001161
cmp dword [ecx + 0x84], 0xe
jbe 0x1001135
xor eax, eax
cmp dword [ecx + 0xf8], ebx
jmp 0x100115b
cmp dword [ecx + 0x74], 0xe
jbe 0x1001135
xor eax, eax
cmp dword [ecx + 0xe8], ebx
setne al
mov dword [ebp - 0x1c], eax
mov dword [ebp - 4], ebx
push 2
call dword [sym.imp.msvcrt.dll___set_app_type]
pop ecx
or dword [0x1002014], 0xffffffff
or dword [0x1002018], 0xffffffff
call dword [sym.imp.msvcrt.dll___p__fmode]
mov ecx, dword [0x1002010]
mov dword [eax], ecx
call dword [sym.imp.msvcrt.dll___p__commode]
mov ecx, dword [0x100200c]
mov dword [eax], ecx
mov eax, dword [sym.imp.msvcrt.dll__adjust_fdiv]
mov eax, dword [eax]
mov dword [0x100201c], eax
call fcn.010012dc
cmp dword [section..data], ebx
jne 0x10011bc
push fcn.010012dc
call dword [sym.imp.msvcrt.dll___setusermatherr]
pop ecx
call fcn.010012ca
push 0x1001064
push 0x1001060
call sub.msvcrt.dll__initterm
mov eax, dword [0x1002008]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
push dword [0x1002004]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x28]
push eax
lea eax, [ebp - 0x2c]
push eax
call dword [sym.imp.msvcrt.dll___getmainargs]
mov dword [ebp - 0x30], eax
push 0x100105c
push 0x1001058
call sub.msvcrt.dll__initterm
add esp, 0x24
mov eax, dword [sym.imp.msvcrt.dll__acmdln]
mov esi, dword [eax]
mov dword [ebp - 0x34], esi
cmp byte [esi], 0x22
jne 0x1001252
inc esi
mov dword [ebp - 0x34], esi
mov al, byte [esi]
cmp al, bl
je 0x1001226
cmp al, 0x22
jne 0x1001218
cmp byte [esi], 0x22
jne 0x100122f
inc esi
mov dword [ebp - 0x34], esi
mov al, byte [esi]
cmp al, bl
je 0x1001239
cmp al, 0x20
jbe 0x100122b
mov dword [ebp - 0x4c], ebx
lea eax, [ebp - 0x78]
push eax
call dword [sym.imp.KERNEL32.dll_GetStartupInfoA]
test byte [ebp - 0x4c], 1
je 0x100125d
movzx eax, word [ebp - 0x48]
jmp 0x1001260
cmp byte [esi], 0x20
jbe 0x100122f
inc esi
mov dword [ebp - 0x34], esi
jmp 0x1001252
push 0xa
pop eax
push eax
push esi
push ebx
push ebx
call edi
push eax
call main
mov esi, eax
mov dword [ebp - 0x7c], esi
cmp dword [ebp - 0x1c], ebx
jne 0x100127d
push esi
call dword [sym.imp.msvcrt.dll_exit]
call dword [sym.imp.msvcrt.dll__cexit]
jmp 0x10012b2
or dword [ebp - 4], 0xffffffff
mov eax, esi
call fcn.01001319
ret
Function at 0x4013da
Capabilities:
Get number of processors

Disassembly:
mov ecx, 0x5047a0
jmp 0x4013ce
mov eax, 0x4c4b4c
call fcn.00456dcc
push ecx
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x10], esi
call fcn.004014e0
mov eax, dword [0x4fc9e0]
lea ecx, [esi + 0xa0]
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ecx], eax
mov eax, dword [0x4fc9e0]
mov dword [esi + 0xb0], eax
push 1
mov dword [esi], 0x4cb7bc
or dword [esi + 0x20], 0xffffffff
or dword [esi + 0x1c], 0xffffffff
pop edi
mov dword [esi + 0x28], ebx
push 0xa
mov dword [esi + 0x24], ebx
pop eax
mov byte [ebp - 4], 2
push 0x64
mov dword [esi + 0x58], eax
mov dword [esi + 0x60], eax
pop eax
push 0x50479c
mov dword [esi + 0x2c], 2
mov dword [esi + 0x30], edi
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], ebx
mov dword [esi + 0x3c], ebx
mov dword [esi + 0x40], ebx
mov dword [esi + 0x44], ebx
mov dword [esi + 0x48], ebx
mov dword [esi + 0x4c], edi
mov dword [esi + 0x50], ebx
mov dword [esi + 0x54], edi
mov dword [esi + 0x5c], edi
mov dword [esi + 0x88], ebx
mov dword [esi + 0x8c], ebx
mov dword [esi + 0x90], eax
mov dword [esi + 0x94], eax
mov dword [esi + 0x98], ebx
mov dword [esi + 0x64], edi
mov dword [esi + 0x68], edi
mov dword [esi + 0x6c], 0x3e8
mov dword [esi + 0x70], edi
mov dword [esi + 0x74], edi
mov dword [esi + 0x78], edi
mov dword [esi + 0x7c], ebx
mov dword [esi + 0x80], 0xc0
mov dword [esi + 0x84], 0x6c
mov dword [esi + 0x9c], ebx
call fcn.004af3bd
push 0x50479c
lea ecx, [esi + 0xb0]
mov dword [esi + 0xa4], ebx
mov dword [esi + 0xa8], edi
mov dword [esi + 0xac], edi
call fcn.004af3bd
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret
Function at 0x40ac2e
Capabilities:
Query or enumerate registry key

Disassembly:
mov eax, 0x4c5930
call fcn.00456dcc
sub esp, 0x22c
push ebx
push esi
mov dword [ebp - 0x2c], ecx
mov esi, 0x504858
push str.DataFile_Types
mov ecx, esi
call fcn.004c201c
xor ebx, ebx
mov dword [ebp - 0x18], eax
cmp eax, ebx
jne 0x40ac64
xor eax, eax
jmp 0x40adac
mov eax, dword [0x4fc9e0]
push edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 4], ebx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x38]
mov edi, dword [sym.imp.ADVAPI32.dll_RegEnumKeyExW]
push eax
push ebx
push ebx
lea eax, [ebp - 0x24]
push ebx
push eax
lea eax, [ebp - 0x238]
mov byte [ebp - 4], 2
push eax
push ebx
push dword [ebp - 0x18]
mov dword [ebp - 0x24], pe_nt_image_headers32
mov dword [ebp - 0x20], ebx
call edi
cmp eax, 0x103
je 0x40ad7c
lea eax, [ebp - 0x238]
push eax
push str.DataFile_Types
lea eax, [ebp - 0x10]
push 0x4eaf24
push eax
call fcn.004acb57
add esp, 0x10
lea eax, [ebp - 0x28]
mov ecx, esi
push ebx
push str.Name
push dword [ebp - 0x10]
push eax
call fcn.004c20ce
push eax
lea ecx, [ebp - 0x14]
mov byte [ebp - 4], 3
call fcn.004af36d
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 2
call fcn.004af226
push ebx
push str.Extension
push dword [ebp - 0x10]
lea eax, [ebp - 0x30]
mov ecx, esi
push eax
call fcn.004c20ce
push eax
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 4
call fcn.004af36d
lea ecx, [ebp - 0x30]
mov byte [ebp - 4], 2
call fcn.004af226
push 0xffffffffffffffff
push str.Icon
push dword [ebp - 0x10]
mov ecx, esi
call fcn.004c2062
mov ecx, dword [ebp - 0x14]
cmp dword [ecx - 8], ebx
je 0x40ad55
mov edx, dword [ebp - 0x1c]
cmp dword [edx - 8], ebx
je 0x40ad55
cmp eax, 0xffffffff
je 0x40ad55
push eax
push edx
push ecx
mov ecx, dword [ebp - 0x2c]
call fcn.0040ae99
lea eax, [ebp - 0x38]
inc dword [ebp - 0x20]
push eax
push ebx
push ebx
lea eax, [ebp - 0x24]
push ebx
push eax
lea eax, [ebp - 0x238]
mov dword [ebp - 0x24], pe_nt_image_headers32
push eax
push dword [ebp - 0x20]
push dword [ebp - 0x18]
jmp 0x40aca0
push dword [ebp - 0x18]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 1
call fcn.004af226
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], bl
call fcn.004af226
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x14]
call fcn.004af226
push 1
pop eax
pop edi
mov ecx, dword [ebp - 0xc]
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret
Function at 0x40bf02
Capabilities:
Get common file path
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2bc
push ebx
push esi
lea eax, [ebp - 4]
push edi
xor ebx, ebx
push eax
mov edi, 0x4cdb40
push ebx
push ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], edi
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov esi, 0x2b4
lea eax, [ebp - 0x2bc]
push esi
push ebx
push eax
call fcn.00456df0
lea eax, [ebp - 8]
add esp, 0xc
neg eax
sbb eax, eax
lea ecx, [ebp - 4]
and eax, ecx
xor ecx, ecx
cmp dword [ebp + 8], ebx
mov eax, dword [eax]
sete cl
or cx, 0x4008
push ecx
lea ecx, [ebp - 0x2bc]
push esi
push ecx
push ebx
push eax
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
lea ecx, [ebp - 8]
mov esi, eax
neg ecx
sbb ecx, ecx
lea eax, [ebp - 4]
and ecx, eax
mov dword [ebp - 8], edi
call fcn.0040c276
mov eax, esi
pop edi
pop esi
pop ebx
leave
ret 4
Function at 0x40caf9
Capabilities:
Get file system object information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2b4
push esi
mov esi, 0x2b4
push edi
push esi
lea eax, [ebp - 0x2b4]
push 0
mov edi, ecx
push eax
call fcn.00456df0
mov eax, dword [ebp + 8]
add esp, 0xc
or ax, 0x4008
push eax
lea eax, [ebp - 0x2b4]
push esi
push eax
push 0
push dword [edi + 4]
call dword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov eax, dword [ebp - 0x2b0]
pop edi
pop esi
leave
ret 4

Function at 0x40e210
Capabilities:
Check os version

Disassembly:
mov eax, 0x4c5e13
call fcn.00456dcc
sub esp, 0x118
push ebx
push esi
push edi
xor ebx, ebx
push dword [ebp + 0x1c]
mov esi, ecx
mov dword [ebp - 0x10], esi
push ebx
call fcn.004b3fb9
mov eax, dword [0x4fc9e0]
mov dword [ebp - 4], ebx
mov dword [esi + 0x64], eax
cmp dword [ebp + 0x20], ebx
mov byte [ebp - 4], 1
mov dword [esi], 0x4ce110
jne 0x40e296
mov edi, 0x114
lea eax, [ebp - 0x124]
push edi
push ebx
push eax
call fcn.00456df0
add esp, 0xc
lea eax, [ebp - 0x124]
mov dword [ebp - 0x124], edi
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
cmp dword [ebp - 0x114], 2
jne 0x40e28f
cmp dword [ebp - 0x120], 5
mov dword [ebp + 0x20], 0x58
jae 0x40e296
mov dword [ebp + 0x20], 0x4c
push dword [ebp + 0x20]
call fcn.004575bd
cmp eax, ebx
pop ecx
mov dword [esi + 0x5c], eax
jne 0x40e2ab
call fcn.004ad238
push dword [ebp + 0x20]
mov ecx, esi
push ebx
call fcn.0040e470
push eax
call fcn.00456df0
push 0x200002
call fcn.004af7fa
mov dword [esi + 0xe8], eax
mov word [eax], bx
mov eax, dword [ebp + 8]
add esp, 0x10
mov dword [esi + 0x60], eax
lea edi, [esi + 0x68]
neg eax
sbb eax, eax
mov ecx, esi
add eax, 0x7005
mov word [edi], bx
mov dword [esi + 0xec], ebx
mov dword [esi + 0x3c], eax
call fcn.0040e470
mov ecx, dword [ebp + 0x20]
mov dword [eax], ecx
mov ecx, esi
call fcn.0040e470
mov ecx, dword [esi + 0xe8]
mov dword [eax + 0x1c], ecx
mov ecx, esi
call fcn.0040e470
mov ecx, esi
mov dword [eax + 0x20], 0x100000
call fcn.0040e470
mov ecx, dword [ebp + 0xc]
mov dword [eax + 0x3c], ecx
mov ecx, esi
call fcn.0040e470
mov ecx, esi
mov dword [eax + 0x24], edi
call fcn.0040e470
mov ecx, esi
mov dword [eax + 0x28], 0x40
call fcn.0040e470
mov ecx, dword [ebp + 0x14]
add eax, 0x34
or ecx, 0x880020
or dword [eax], ecx
test byte [ebp + 0x14], 0x40
je 0x40e368
mov ecx, esi
call fcn.0040e470
add eax, 0x34
and byte [eax + 2], 0x7f
call fcn.004c1e7d
mov edi, dword [eax + 0xc]
mov ecx, esi
call fcn.0040e470
mov ecx, esi
mov dword [eax + 8], edi
call fcn.0040e470
cmp dword [ebp + 0x10], ebx
mov dword [eax + 0x44], 0x40e093
je 0x40e3a1
push 0x100000
push dword [ebp + 0x10]
push dword [esi + 0xe8]
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
cmp dword [ebp + 0x18], ebx
je 0x40e3e0
push dword [ebp + 0x18]
lea edi, [esi + 0x64]
mov ecx, edi
call fcn.004af3bd
push ebx
mov ecx, edi
call fcn.004af66b
push 0x7c
push eax
call fcn.00457594
pop ecx
cmp eax, ebx
pop ecx
je 0x40e3d3
mov word [eax], bx
push 0x7c
add eax, 2
jmp 0x40e3bd
mov edi, dword [esi + 0x64]
mov ecx, esi
call fcn.0040e470
mov dword [eax + 0xc], edi
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop edi
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x1c
Function at 0x4160ca
Capabilities:
Encode data using base64

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 0x14]
xor eax, eax
xor esi, esi
mov byte [ebp - 4], al
mov byte [ebp - 3], al
mov byte [ebp - 2], al
mov byte [ebp - 8], al
mov byte [ebp - 7], al
mov byte [ebp - 6], al
mov byte [ebp - 5], al
mov dword [edi], eax
mov eax, dword [ebp + 0xc]
mov ecx, eax
dec eax
test ecx, ecx
je 0x416249
inc eax
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 8]
inc esi
inc dword [ebp + 8]
cmp esi, 3
mov al, byte [eax]
mov byte [ebp + esi - 5], al
mov dl, byte [ebp - 2]
mov al, byte [ebp - 3]
mov cl, byte [ebp - 4]
jne 0x41618f
mov dl, cl
mov bl, al
shr dl, 2
mov byte [ebp - 8], dl
mov dl, cl
and dl, 3
shl dl, 4
shr bl, 4
add dl, bl
mov bl, byte [ebp - 2]
mov byte [ebp - 7], dl
mov dl, al
and dl, 0xf
shl dl, 2
shr bl, 6
add dl, bl
mov byte [ebp - 6], dl
mov dl, byte [ebp - 2]
mov bl, dl
and bl, 0x3f
and dword [ebp + 0xc], 0
mov byte [ebp - 5], bl
mov ebx, dword [0x504a04]
test ebx, ebx
jne 0x41616b
mov esi, 0x4cdb44
jmp 0x416175
mov esi, dword [ebp + 0xc]
movzx esi, byte [ebp + esi - 8]
add esi, ebx
mov bl, byte [esi]
mov edi, dword [edi]
mov esi, dword [ebp + 0x10]
mov byte [edi + esi], bl
mov edi, dword [ebp + 0x14]
inc dword [edi]
inc dword [ebp + 0xc]
cmp dword [ebp + 0xc], 4
jl 0x41615a
xor esi, esi
dec dword [ebp - 0xc]
jne 0x416103
test esi, esi
je 0x416249
cmp esi, 3
jge 0x4161ca
push 3
lea edi, [ebp + esi - 4]
pop ecx
xor eax, eax
sub ecx, esi
mov edx, ecx
shr ecx, 2
rep stosd dword es:[edi], eax
mov ecx, edx
and ecx, 3
rep stosb byte es:[edi], al
mov dl, byte [ebp - 2]
mov al, byte [ebp - 3]
mov cl, byte [ebp - 4]
mov edi, dword [ebp + 0x14]
mov bl, cl
and cl, 3
shr bl, 2
mov byte [ebp - 8], bl
mov bl, al
shl cl, 4
shr bl, 4
add cl, bl
and dword [ebp + 8], 0
mov byte [ebp - 7], cl
and al, 0xf
mov cl, dl
and dl, 0x3f
shl al, 2
shr cl, 6
add al, cl
lea ecx, [esi + 1]
test ecx, ecx
mov byte [ebp - 6], al
mov byte [ebp - 5], dl
jle 0x416231
mov edx, dword [0x504a04]
test edx, edx
jne 0x416213
mov eax, 0x4cdb44
jmp 0x41621d
mov eax, dword [ebp + 8]
movzx eax, byte [ebp + eax - 8]
add eax, edx
mov edx, dword [edi]
mov ebx, dword [ebp + 0x10]
mov al, byte [eax]
mov byte [edx + ebx], al
inc dword [edi]
inc dword [ebp + 8]
cmp dword [ebp + 8], ecx
jl 0x416202
cmp esi, 3
jge 0x416249
push 4
pop eax
sub eax, ecx
mov ecx, dword [edi]
mov edx, dword [ebp + 0x10]
mov byte [ecx + edx], 0x3d
inc dword [edi]
dec eax
jne 0x41623b
mov eax, dword [edi]
pop edi
pop esi
pop ebx
leave
ret 0x10
Function at 0x416ebd
Capabilities:
Hash data with md5

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

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

Disassembly:
mov eax, 0x4c6384
call fcn.00456dcc
push ecx
mov eax, dword [0x4fc9e0]
push esi
mov esi, ecx
mov dword [ebp - 0x10], esi
mov dword [esi + 0x18], eax
mov eax, dword [0x4fc9e0]
and dword [ebp - 4], 0
mov dword [esi + 0x20], eax
mov eax, dword [0x4fc9e0]
mov dword [esi + 0x24], eax
mov eax, dword [0x4fc9e0]
mov dword [esi + 0x28], eax
mov eax, dword [0x4fc9e0]
mov dword [esi + 0x2c], eax
mov eax, dword [0x4fc9e0]
mov dword [esi + 0x30], eax
mov eax, dword [0x4fc9e0]
mov dword [esi + 0x34], eax
mov eax, dword [0x4fc9e0]
mov dword [esi + 0x38], eax
mov eax, dword [ebp + 8]
mov byte [ebp - 4], 7
mov dword [esi + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esi], 0x4cf388
mov dword [esi + 0xc], eax
call fcn.0041b72c
mov ecx, dword [ebp - 0xc]
mov eax, esi
pop esi
mov dword fs:[0], ecx
leave
ret 8