joyce8/EMBER2024-capa huggingface dataset:
Function at 0xae21a0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebx
push esi
push edi
push ebp
mov edi, edx
mov esi, eax
mov ebp, 0xb92a60
test esi, esi
je 0xae21b5
test edi, edi
jg 0xae21bc
xor eax, eax
jmp 0xae22bb
mov ebx, 0xdbc66688
cmp dword [0xb92a5c], 0
je 0xae21cf
call fcn.00ae214c
xor ebx, 0xffffffff
cmp edi, 8
jl 0xae2297
movzx eax, byte [esi]
xor eax, ebx
and eax, 0xff
mov eax, dword [ebp + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
movzx eax, byte [esi]
xor eax, ebx
and eax, 0xff
mov eax, dword [ebp + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
movzx eax, byte [esi]
xor eax, ebx
and eax, 0xff
mov eax, dword [ebp + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
movzx eax, byte [esi]
xor eax, ebx
and eax, 0xff
mov eax, dword [ebp + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
movzx eax, byte [esi]
xor eax, ebx
and eax, 0xff
mov eax, dword [ebp + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
movzx eax, byte [esi]
xor eax, ebx
and eax, 0xff
mov eax, dword [ebp + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
movzx eax, byte [esi]
xor eax, ebx
and eax, 0xff
mov eax, dword [ebp + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
movzx eax, byte [esi]
xor eax, ebx
and eax, 0xff
mov eax, dword [ebp + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
sub edi, 8
cmp edi, 8
jge 0xae21db
test edi, edi
je 0xae22b6
movzx eax, byte [esi]
xor eax, ebx
and eax, 0xff
mov eax, dword [ebp + eax*4]
shr ebx, 8
xor eax, ebx
mov ebx, eax
inc esi
dec edi
test edi, edi
jne 0xae229b
mov eax, ebx
xor eax, 0xffffffff
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0xae9f1c
Capabilities:
Encode data using xor

Disassembly:
push ebx
push esi
push edi
mov edi, edx
mov esi, eax
mov ebx, ecx
test ebx, ebx
jle 0xae9f88
mov ecx, 1
mov eax, esi
xor edx, edx
push edx
push eax
mov eax, ecx
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, 1
sbb edx, 0
movzx eax, byte [eax]
push eax
mov eax, edi
xor edx, edx
push edx
push eax
mov eax, ecx
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, 1
sbb edx, 0
pop edx
xor dl, byte [eax]
push edx
mov eax, esi
xor edx, edx
push edx
push eax
mov eax, ecx
cdq
add eax, dword [esp]
adc edx, dword [esp + 4]
add esp, 8
sub eax, 1
sbb edx, 0
pop edx
mov byte [eax], dl
inc ecx
dec ebx
jne 0xae9f2e
pop edi
pop esi
pop ebx
ret
Function at 0xaec108
Capabilities:
Encode data using base64

Disassembly:
push ebx
push esi
push edi
push ebp
push ecx
mov dword [esp], ecx
mov esi, eax
mov ebp, edx
xor ebx, ebx
xor edi, edi
mov eax, dword [esp]
mov ecx, 3
cdq
idiv ecx
test eax, eax
jle 0xaec1a2
movzx edx, byte [esi + ebx]
shr edx, 2
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____]
mov byte [ebp + edi], dl
movzx edx, byte [esi + ebx]
and dl, 3
movzx edx, dl
shl edx, 4
movzx ecx, byte [esi + ebx + 1]
shr ecx, 4
add edx, ecx
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____]
push edx
pop edx
mov byte [ebp + edi + 1], dl
movzx edx, byte [esi + ebx + 1]
and dl, 0xf
movzx edx, dl
add edx, edx
add edx, edx
movzx ecx, byte [esi + ebx + 2]
shr ecx, 6
add edx, ecx
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____]
push edx
pop edx
mov byte [ebp + edi + 2], dl
movzx edx, byte [esi + ebx + 2]
and dl, 0x3f
movzx edx, dl
movzx edx, byte [edx + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____]
mov byte [ebp + edi + 3], dl
add edi, 4
add ebx, 3
dec eax
jne 0xaec127
mov eax, dword [esp]
mov ecx, 3
cdq
idiv ecx
dec edx
je 0xaec1b8
dec edx
je 0xaec1ed
jmp 0xaec23e
movzx eax, byte [esi + ebx]
shr eax, 2
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____]
mov byte [ebp + edi], al
movzx eax, byte [esi + ebx]
and al, 3
movzx eax, al
shl eax, 4
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____]
mov byte [ebp + edi + 1], al
mov byte [ebp + edi + 2], 0x3d
mov byte [ebp + edi + 3], 0x3d
jmp 0xaec23e
movzx eax, byte [esi + ebx]
shr eax, 2
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____]
mov byte [ebp + edi], al
movzx eax, byte [esi + ebx]
and al, 3
movzx eax, al
shl eax, 4
movzx edx, byte [esi + ebx + 1]
shr edx, 4
add eax, edx
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____]
mov byte [ebp + edi + 1], al
movzx eax, byte [esi + ebx + 1]
and al, 0xf
movzx eax, al
add eax, eax
add eax, eax
movzx eax, byte [eax + str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_____]
mov byte [ebp + edi + 2], al
mov byte [ebp + edi + 3], 0x3d
mov eax, dword [esp]
add eax, 2
mov ecx, 3
cdq
idiv ecx
add eax, eax
add eax, eax
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret
Function at 0xaec2b0
Capabilities:
Encode data using base64

Disassembly:
push esi
push edi
push ebp
add esp, 0xfffffff0
mov dword [esp], ecx
mov edi, eax
mov dword [esp + 8], edx
xor esi, esi
xor ebp, ebp
xor eax, eax
mov edx, dword [esp]
test edx, edx
jns 0xaec2cf
add edx, 3
sar edx, 2
test edx, edx
jle 0xaec3dd
mov dword [esp + 0xc], edx
mov edx, 4
lea eax, [esp + 4]
movzx ecx, byte [edi + esi]
cmp ecx, 0x3d
jg 0xaec304
je 0xaec347
sub ecx, 0x2b
je 0xaec33d
sub ecx, 4
je 0xaec342
dec ecx
sub ecx, 0xa
jb 0xaec32f
jmp 0xaec34a
add ecx, 0xffffffbf
sub ecx, 0x1a
jb 0xaec316
add ecx, 0xfffffffa
sub ecx, 0x1a
jb 0xaec321
jmp 0xaec34a
movzx ecx, byte [edi + esi]
sub cl, 0x41
mov byte [eax], cl
jmp 0xaec34a
movzx ecx, byte [edi + esi]
sub cl, 0x61
add cl, 0x1a
mov byte [eax], cl
jmp 0xaec34a
movzx ecx, byte [edi + esi]
sub cl, 0x30
add cl, 0x34
mov byte [eax], cl
jmp 0xaec34a
mov byte [eax], 0x3e
jmp 0xaec34a
mov byte [eax], 0x3f
jmp 0xaec34a
mov byte [eax], 0xff
inc esi
inc eax
dec edx
jne 0xaec2e7
movzx eax, byte [esp + 4]
add eax, eax
add eax, eax
movzx edx, byte [esp + 5]
shr edx, 4
or al, dl
mov edx, dword [esp + 8]
mov byte [edx + ebp], al
lea eax, [ebp + 1]
movzx edx, byte [esp + 6]
cmp dl, 0xff
je 0xaec39b
cmp byte [esp + 7], 0xff
jne 0xaec39b
movzx eax, byte [esp + 5]
shl eax, 4
movzx edx, dl
shr edx, 2
or al, dl
mov edx, dword [esp + 8]
mov byte [edx + ebp + 1], al
lea eax, [ebp + 2]
inc ebp
jmp 0xaec3d2
cmp dl, 0xff
je 0xaec3d2
movzx eax, byte [esp + 5]
shl eax, 4
movzx edx, dl
shr edx, 2
or al, dl
mov edx, dword [esp + 8]
mov byte [edx + ebp + 1], al
mov eax, dword [esp + 8]
movzx edx, byte [esp + 6]
shl edx, 6
or dl, byte [esp + 7]
mov byte [eax + ebp + 2], dl
lea eax, [ebp + 3]
add ebp, 2
inc ebp
dec dword [esp + 0xc]
jne 0xaec2de
add esp, 0x10
pop ebp
pop edi
pop esi
ret

Function at 0xaed264
Capabilities:
Hash data with md5

Disassembly:
mov dword [eax], 0x67452301
mov dword [eax + 4], 0xefcdab89
mov dword [eax + 8], 0x98badcfe
mov dword [eax + 0xc], 0x10325476
xor edx, edx
mov dword [eax + 0x10], edx
xor edx, edx
mov dword [eax + 0x14], edx
add eax, 0x18
xor ecx, ecx
mov edx, 0x40
call fcn.00a13bc8
ret
Function at 0xaed444
Capabilities:
Get file size
Read file via mapping

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff94
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00a15880
xor eax, eax
push ebp
push 0xaed592
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x6c]
call fcn.00aed264
push 0
push 0x8000080
push 3
push 0
push 3
push 0x80000000
mov eax, dword [ebp - 4]
call fcn.00a15890
push eax
call sub.kernel32.dll_CreateFileA_1
mov dword [ebp - 0xc], eax
cmp dword [ebp - 0xc], 0xffffffff
je 0xaed571
xor eax, eax
push ebp
push 0xaed56a
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
push 2
push 0
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CreateFileMappingA
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0xaed553
xor eax, eax
push ebp
push 0xaed54c
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
push 0
push 4
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_MapViewOfFile
mov dword [ebp - 0x14], eax
cmp dword [ebp - 0x14], 0
je 0xaed535
xor eax, eax
push ebp
push 0xaed52e
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_GetFileSize_1
mov ecx, eax
lea eax, [ebp - 0x6c]
mov edx, dword [ebp - 0x14]
call fcn.00aed29c
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xaed535
mov eax, dword [ebp - 0x14]
push eax
call sub.kernel32.dll_UnmapViewOfFile
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xaed553
mov eax, dword [ebp - 0x10]
push eax
call sub.kernel32.dll_CloseHandle_1
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xaed571
mov eax, dword [ebp - 0xc]
push eax
call sub.kernel32.dll_CloseHandle_1
ret
mov edx, dword [ebp - 8]
lea eax, [ebp - 0x6c]
call fcn.00aed320
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xaed599
lea eax, [ebp - 4]
call fcn.00a153f0
ret
Function at 0xaf2cec
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff8
push ebx
push esi
push edi
mov ebx, edx
mov esi, eax
mov byte [ebp - 1], 0
xor edx, edx
mov eax, ebx
call fcn.00a1b128
mov eax, ebx
call fcn.00a15890
push eax
call sub.kernel32.dll_DeleteFileA
mov dl, 1
mov eax, dword [0xa2ac9c]
call fcn.00a14440
mov dword [ebp - 8], eax
xor eax, eax
push ebp
push 0xaf2d80
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, esi
mov eax, dword [ebp - 8]
call fcn.00a303d4
xor eax, eax
push ebp
push 0xaf2d60
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, ebx
mov eax, dword [ebp - 8]
call fcn.00a30300
mov byte [ebp - 1], 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0xaf2d6a
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xaf2d87
mov eax, dword [ebp - 8]
call fcn.00a14470
ret

Function at 0xaf2d94
Capabilities:
Create process on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff88
push ebx
push esi
xor ebx, ebx
mov dword [ebp - 4], ebx
mov dword [ebp - 8], ebx
mov byte [ebp - 9], cl
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0xaf2e9d
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x50]
xor ecx, ecx
mov edx, 0x44
call fcn.00a13bc8
mov dword [ebp - 0x50], 0x44
mov dword [ebp - 0x24], 1
cmp byte [ebp - 9], 0
je 0xaf2de4
mov word [ebp - 0x20], 1
jmp 0xaf2dea
mov word [ebp - 0x20], 0
lea edx, [ebp - 4]
mov eax, ebx
call fcn.00a1b3b4
mov eax, esi
test eax, eax
je 0xaf2dff
sub eax, 4
mov eax, dword [eax]
test eax, eax
jle 0xaf2e29
lea eax, [ebp - 8]
push eax
mov dword [ebp - 0x70], ebx
mov byte [ebp - 0x6c], 0xb
mov dword [ebp - 0x68], esi
mov byte [ebp - 0x64], 0xb
lea edx, [ebp - 0x70]
mov ecx, 1
mov eax, 0xaf2eb4
call fcn.00a1c204
jmp 0xaf2e43
lea eax, [ebp - 8]
push eax
mov dword [ebp - 0x78], ebx
mov byte [ebp - 0x74], 0xb
lea edx, [ebp - 0x78]
xor ecx, ecx
mov eax, 0xaf2ec4
call fcn.00a1c204
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x50]
push eax
mov eax, dword [ebp - 4]
call fcn.00a15890
push eax
push 0
push 0x30
push 0
push 0
push 0
mov eax, dword [ebp - 8]
call fcn.00a15890
push eax
push 0
call sub.kernel32.dll_CreateProcessA
test eax, eax
je 0xaf2e77
mov ebx, dword [ebp - 0x60]
jmp 0xaf2e79
xor ebx, ebx
mov eax, dword [ebp - 0x5c]
push eax
call sub.kernel32.dll_CloseHandle_1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xaf2ea4
lea eax, [ebp - 8]
mov edx, 2
call fcn.00a15414
ret

Function at 0xaf2ecc
Capabilities:
Get common file path

Disassembly:
push ebx
add esp, 0xfffffefc
mov ebx, eax
push esp
push 0x104
call sub.kernel32.dll_GetTempPathA
mov edx, ebx
mov eax, esp
call fcn.00a1b978
add esp, 0x104
pop ebx
ret

Function at 0xaf314c
Capabilities:
Terminate process

Disassembly:
push ebx
push esi
mov bl, 1
push eax
push 0
push 1
call sub.kernel32.dll_OpenProcess
mov esi, eax
test esi, esi
je 0xaf316e
push 0
push esi
call sub.kernel32.dll_TerminateProcess
cmp eax, 1
sbb ebx, ebx
inc ebx
mov eax, ebx
pop esi
pop ebx
ret
Function at 0xaf35dc
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe8c
push ebx
xor edx, edx
mov dword [ebp - 0x174], edx
mov dword [ebp - 4], edx
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], edx
mov ebx, eax
lea eax, [ebp - 0x170]
mov edx, dword [0xa19294]
call fcn.00a16054
xor eax, eax
push ebp
push 0xaf3718
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0xc]
mov eax, ebx
call fcn.00a1ff10
lea eax, [ebp - 4]
mov edx, dword [ebp - 0xc]
call fcn.00a15488
lea eax, [ebp - 0x174]
mov ecx, 0xaf3730
mov edx, dword [ebp - 4]
call fcn.00a15718
mov eax, dword [ebp - 0x174]
lea ecx, [ebp - 0x170]
mov edx, 0x3f
call fcn.00a1b1d4
test eax, eax
jne 0xaf36d7
lea eax, [ebp - 8]
mov edx, dword [ebp - 0x15c]
call fcn.00a15488
mov eax, dword [ebp - 8]
mov edx, 0xaf373c
call fcn.00a15828
je 0xaf36bd
mov eax, dword [ebp - 8]
mov edx, 0xaf3748
call fcn.00a15828
je 0xaf36bd
lea eax, [ebp - 8]
mov ecx, dword [ebp - 0x15c]
mov edx, dword [ebp - 4]
call fcn.00a15718
mov eax, dword [ebp - 0x160]
and eax, 0x10
cmp eax, 0x10
jne 0xaf36af
mov eax, dword [ebp - 8]
call fcn.00af35dc
jmp 0xaf36bd
mov eax, dword [ebp - 8]
call fcn.00a15890
push eax
call sub.kernel32.dll_DeleteFileA
lea eax, [ebp - 0x170]
call fcn.00a1b224
test eax, eax
je 0xaf365a
lea eax, [ebp - 0x170]
call fcn.00a1b248
mov eax, dword [ebp - 4]
call fcn.00a1b720
mov bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xaf371f
lea eax, [ebp - 0x174]
call fcn.00a153f0
lea eax, [ebp - 0x170]
mov edx, dword [0xa19294]
call fcn.00a16124
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00a15414
ret

Function at 0xaf60b4
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00a15880
xor eax, eax
push ebp
push 0xaf610d
push dword fs:[eax]
mov dword fs:[eax], esp
xor ebx, ebx
mov eax, dword [ebp - 4]
call fcn.00a15890
mov esi, eax
push esi
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 2
je 0xaf60f5
push esi
call sub.kernel32.dll_GetDriveTypeA
cmp eax, 5
jne 0xaf60f7
mov bl, 1
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xaf6114
lea eax, [ebp - 4]
call fcn.00a153f0
ret

Function at 0xaf611c
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push ebx
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.00a15880
xor eax, eax
push ebp
push 0xaf6180
push dword fs:[eax]
mov dword fs:[eax], esp
push 0
push 0
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push 0
push 0xe
lea eax, [ebp - 0x1a]
push eax
mov eax, dword [ebp - 4]
call fcn.00a15890
push eax
call sub.kernel32.dll_GetVolumeInformationA
mov edx, ebx
lea eax, [ebp - 0x1a]
call fcn.00a1b978
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xaf6187
lea eax, [ebp - 4]
call fcn.00a153f0
ret
Function at 0xaf6800
Capabilities:
Access peb ldr_data

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push ebx
push esi
mov dword [ebp - 4], ecx
mov esi, edx
mov ebx, eax
mov eax, dword [ebp - 4]
call fcn.00a15880
xor eax, eax
push ebp
push 0xaf68fc
push dword fs:[eax]
mov dword fs:[eax], esp
movzx eax, word [esi + 4]
mov word [ebx + 4], ax
movzx eax, word [esi + 6]
mov word [ebx + 6], ax
movzx eax, word [esi + 8]
mov word [ebx + 8], ax
movzx eax, word [esi + 0xa]
mov word [ebx + 0x64], ax
mov eax, dword [esi + 0xc]
call fcn.00af5fa0
mov dword [ebx + 0xc], eax
mov eax, dword [esi + 0x10]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x14], eax
mov eax, dword [esi + 0x18]
mov dword [ebx + 0x18], eax
movzx eax, word [esi + 0x1c]
mov word [ebx + 0x1c], ax
movzx eax, word [esi + 0x1e]
mov word [ebx + 0x1e], ax
movzx eax, word [esi + 0x20]
mov word [ebx + 0x22], ax
movzx eax, word [esi + 0x22]
mov word [ebx + 0x24], ax
movzx eax, word [esi + 0x24]
mov word [ebx + 0x26], ax
mov eax, dword [esi + 0x26]
mov dword [ebx + 0x28], eax
mov eax, dword [esi + 0x2a]
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x34], 0
lea edx, [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00af41c4
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00af74b4
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00af416c
mov edx, dword [ebp - 0xc]
mov eax, ebx
call fcn.00af752c
lea eax, [ebx + 0x50]
call fcn.00a153f0
mov byte [ebx + 0x54], 0
mov byte [ebx + 0x56], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xaf6903
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00a15414
ret
Function at 0xaf690c
Capabilities:
Access peb ldr_data
Get kernel32 base address

Disassembly:
push ebp
mov ebp, esp
push 0
push 0
push 0
push ebx
push esi
mov dword [ebp - 4], ecx
mov esi, edx
mov ebx, eax
mov eax, dword [ebp - 4]
call fcn.00a15880
xor eax, eax
push ebp
push 0xaf6a18
push dword fs:[eax]
mov dword fs:[eax], esp
mov word [ebx + 4], 0
movzx eax, word [esi + 4]
mov word [ebx + 6], ax
movzx eax, word [esi + 6]
mov word [ebx + 8], ax
movzx eax, word [esi + 8]
mov word [ebx + 0x64], ax
mov eax, dword [esi + 0xa]
call fcn.00af5fa0
mov dword [ebx + 0xc], eax
mov eax, dword [esi + 0xe]
mov dword [ebx + 0x10], eax
mov eax, dword [esi + 0x12]
mov dword [ebx + 0x14], eax
mov eax, dword [esi + 0x16]
mov dword [ebx + 0x18], eax
movzx eax, word [esi + 0x1a]
mov word [ebx + 0x1c], ax
movzx eax, word [esi + 0x1c]
mov word [ebx + 0x20], ax
mov word [ebx + 0x22], 0
mov word [ebx + 0x24], 0
mov word [ebx + 0x26], 0
xor eax, eax
mov dword [ebx + 0x28], eax
xor eax, eax
mov dword [ebx + 0x2c], eax
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x34], 0
cmp dword [ebp - 4], 0
je 0xaf69db
lea edx, [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.00af41c4
mov edx, dword [ebp - 8]
mov eax, ebx
call fcn.00af74b4
lea edx, [ebp - 0xc]
mov eax, dword [ebp - 4]
call fcn.00af416c
mov edx, dword [ebp - 0xc]
mov eax, ebx
call fcn.00af752c
jmp 0xaf69ed
xor edx, edx
mov eax, ebx
call fcn.00af74b4
xor edx, edx
mov eax, ebx
call fcn.00af752c
lea eax, [ebx + 0x50]
call fcn.00a153f0
mov byte [ebx + 0x54], 0
mov byte [ebx + 0x56], 0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xaf6a1f
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00a15414
ret
Function at 0xafd1b4
Capabilities:
Get disk information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffed4
push ebx
push esi
xor ecx, ecx
mov dword [ebp - 0x124], ecx
mov dword [ebp - 0x120], ecx
mov dword [ebp - 0x11c], ecx
mov dword [ebp - 0x118], ecx
mov esi, edx
mov ebx, eax
xor eax, eax
push ebp
push 0xafd325
push dword fs:[eax]
mov dword fs:[eax], esp
push 1
call sub.kernel32.dll_SetErrorMode
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0xafd300
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x111], 0
push 0
push 0
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 8]
push eax
push 0
push 0x105
lea eax, [ebp - 0x111]
push eax
lea eax, [ebp - 0x118]
mov edx, ebx
call fcn.00a155d8
lea eax, [ebp - 0x118]
mov edx, 0xafd33c
call fcn.00a156cc
mov eax, dword [ebp - 0x118]
call fcn.00a15890
push eax
call sub.kernel32.dll_GetVolumeInformationA
test eax, eax
je 0xafd272
lea eax, [ebp - 0x111]
call fcn.00a1b738
mov ecx, eax
lea edx, [ebp - 0x111]
mov eax, esi
call fcn.00a154e0
jmp 0xafd279
mov eax, esi
call fcn.00a153f0
cmp bl, 0x61
jae 0xafd29a
lea edx, [ebp - 0x11c]
mov eax, dword [esi]
call fcn.00a20078
mov edx, dword [ebp - 0x11c]
mov eax, esi
call fcn.00a15444
jmp 0xafd2b4
lea edx, [ebp - 0x120]
mov eax, dword [esi]
call fcn.00a1ffe4
mov edx, dword [ebp - 0x120]
mov eax, esi
call fcn.00a15444
lea eax, [ebp - 0x124]
push eax
mov eax, dword [esi]
mov dword [ebp - 0x12c], eax
mov byte [ebp - 0x128], 0xb
lea edx, [ebp - 0x12c]
xor ecx, ecx
mov eax, 0xafd348
call fcn.00a1c204
mov edx, dword [ebp - 0x124]
mov eax, esi
call fcn.00a15444
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0xafd307
mov eax, dword [ebp - 4]
push eax
call sub.kernel32.dll_SetErrorMode
ret
Function at 0xb00d8d
Capabilities:
Hash data using sha1

Disassembly:
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp + 8]
mov dword [eax], edx
mov ecx, dword [ebp + 8]
mov dword [ecx + 8], 0x67452301
mov eax, dword [ebp + 8]
mov dword [eax + 0xc], 0xefcdab89
mov edx, dword [ebp + 8]
mov dword [edx + 0x10], 0x98badcfe
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x14], 0x10325476
mov eax, dword [ebp + 8]
mov dword [eax + 0x18], 0xc3d2e1f0
pop ebp
ret

Function at 0xb025f2
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ecx
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x9c], 0xffffffff
je 0xb026a0
mov edx, dword [ebp + 0x10]
cmp dword [edx + 0x9c], 0x40
jbe 0xb02631
mov ecx, dword [ebp + 0x10]
add ecx, 0x40
push ecx
push dword [ebp + 0x10]
call fcn.00b00e6d
add esp, 8
mov eax, dword [ebp + 0x10]
mov dword [eax + 0x9c], 0x14
mov edx, 0x40
mov ecx, dword [ebp + 0x10]
sub edx, dword [ecx + 0x9c]
push edx
push 0
mov eax, dword [ebp + 0x10]
mov edx, dword [ebp + 0x10]
add eax, dword [edx + 0x9c]
push eax
call fcn.00b00a6c
add esp, 0xc
xor ecx, ecx
mov dword [ebp - 4], ecx
mov eax, dword [ebp - 4]
mov edx, dword [ebp + 0x10]
xor dword [edx + eax*4], 0x36363636
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x10
jb 0xb0265c
mov ecx, dword [ebp + 0x10]
add ecx, 0x40
push ecx
call fcn.00b00d8d
pop ecx
mov eax, dword [ebp + 0x10]
add eax, 0x40
push eax
push 0x40
push dword [ebp + 0x10]
call fcn.00b00dd1
add esp, 0xc
mov edx, dword [ebp + 0x10]
mov dword [edx + 0x9c], 0xffffffff
cmp dword [ebp + 0xc], 0
je 0xb026bb
mov ecx, dword [ebp + 0x10]
add ecx, 0x40
push ecx
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00b00dd1
add esp, 0xc
pop ecx
pop ebp
ret

Function at 0xb026be
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe8
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x9c], 0xffffffff
je 0xb026df
push dword [ebp + 0x10]
push 0
push 0
call fcn.00b025f2
add esp, 0xc
mov edx, dword [ebp + 0x10]
add edx, 0x40
push edx
lea ecx, [ebp - 0x18]
push ecx
call fcn.00b00e6d
add esp, 8
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
mov ecx, dword [ebp + 0x10]
xor dword [ecx + edx*4], 0x6a6a6a6a
inc dword [ebp - 4]
cmp dword [ebp - 4], 0x10
jb 0xb026f7
mov eax, dword [ebp + 0x10]
add eax, 0x40
push eax
call fcn.00b00d8d
pop ecx
mov edx, dword [ebp + 0x10]
add edx, 0x40
push edx
push 0x40
push dword [ebp + 0x10]
call fcn.00b00dd1
add esp, 0xc
mov ecx, dword [ebp + 0x10]
add ecx, 0x40
push ecx
push 0x14
lea eax, [ebp - 0x18]
push eax
call fcn.00b00dd1
add esp, 0xc
mov edx, dword [ebp + 0x10]
add edx, 0x40
push edx
lea ecx, [ebp - 0x18]
push ecx
call fcn.00b00e6d
add esp, 8
xor eax, eax
mov dword [ebp - 4], eax
mov edx, dword [ebp - 4]
cmp edx, dword [ebp + 0xc]
jae 0xb0277e
mov ecx, dword [ebp - 4]
mov al, byte [ebp + ecx - 0x18]
mov edx, dword [ebp + 8]
mov ecx, dword [ebp - 4]
mov byte [edx + ecx], al
inc dword [ebp - 4]
mov eax, dword [ebp - 4]
cmp eax, dword [ebp + 0xc]
jb 0xb02763
mov esp, ebp
pop ebp
ret