joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180026650
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
push rdi
push r12
push r13
mov eax, 0x1f90
call fcn.18005aa10
sub rsp, rax
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x1fb8], rbx
mov qword [rsp + 0x1fc0], rbp
mov qword [rsp + 0x1fc8], rsi
mov rax, qword [0x18007f130]
xor rax, rsp
mov qword [rsp + 0x1f80], rax
mov rbp, rcx
test rcx, rcx
je 0x180026892
cmp rcx, 0xffffffffffffffff
je 0x180026892
mov eax, 0x5a4d
cmp ax, word [rcx]
jne 0x18002688e
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
je 0x1800266d0
xor eax, eax
jmp 0x180026894
movzx r12d, word [rdx + 6]
test r12w, r12w
jg 0x1800266e2
xor eax, eax
jmp 0x180026894
movzx eax, word [rdx + 0x14]
lea rbx, [rax + rdx + 0x18]
xor edi, edi
lea r13d, [rdi + 1]
movzx esi, di
cmp di, r12w
jge 0x18002688a
nop
test rbx, rbx
je 0x18002675d
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.180026ca0
nop
mov rax, qword [rsp + 0x20]
cmp dword [rax - 0x10], 0
je 0x180026742
lea rdx, [0x18006d088]
mov rcx, rax
call fcn.180036fa8
test eax, eax
cmove r13d, edi
lea rcx, [rsp + 0x20]
call fcn.1800068b0
mov rax, qword [rsp + 0x20]
lea rdx, [rax - 0x18]
or eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x18002675d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
test r13d, r13d
je 0x180026774
inc si
add rbx, 0x28
cmp si, r12w
jl 0x180026700
jmp 0x18002688a
test rbx, rbx
je 0x180026885
mov byte [rsp + 0x1f70], 0xcc
mov byte [rsp + 0x1f71], 0xcc
mov byte [rsp + 0x1f72], 0xcc
mov byte [rsp + 0x1f73], 0x48
mov byte [rsp + 0x1f74], 0x89
mov byte [rsp + 0x1f75], 0x5c
mov byte [rsp + 0x1f76], 0x24
mov byte [rsp + 0x1f77], 8
mov byte [rsp + 0x1f78], 0x90
mov byte [rsp + 0x1f79], 0x90
mov byte [rsp + 0x1f7a], 0x90
mov byte [rsp + 0x1f7b], 0x48
mov byte [rsp + 0x1f7c], 0x89
mov byte [rsp + 0x1f7d], 0x5c
mov byte [rsp + 0x1f7e], 0x24
mov byte [rsp + 0x1f7f], 8
mov r8d, dword [rbx + 0xc]
add r8, rbp
mov r9d, edi
mov r11d, dword [rbx + 8]
add r11, 0xffffffffffffffee
je 0x18002685d
mov rdx, rdi
lea r10, [rsp + 0x30]
mov rcx, qword [rsp + 0x1f70]
mov rax, qword [rsp + 0x1f78]
nop dword [rax]
cmp qword [rdx + r8], rcx
je 0x18002683c
cmp qword [rdx + r8], rax
jne 0x180026852
cmp edi, 0x3e7
jae 0x180026852
lea rdx, [rdx + r8 + 3]
mov qword [r10], rdx
inc edi
add r10, 8
inc r9d
mov edx, r9d
cmp rdx, r11
jb 0x180026830
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebx, eax
call fcn.1800356a0
lea ecx, [rax + rbx]
call fcn.180035688
call fcn.1800356a0
lea ecx, [rdi - 2]
cdq
idiv ecx
movsxd rax, edx
mov rdi, qword [rsp + rax*8 + 0x30]
mov rax, rdi
jmp 0x180026894
xor eax, eax
jmp 0x180026894
xor eax, eax
jmp 0x180026894
xor eax, eax
mov rcx, qword [rsp + 0x1f80]
xor rcx, rsp
call fcn.1800340f0
lea r11, [rsp + 0x1f90]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop r12
pop rdi
ret
Function at 0x180026d50
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbx
movsxd rax, dword [rcx + 0x3c]
mov r11, rdx
mov rbx, rcx
mov r8d, dword [rax + rcx + 0x88]
test r8d, r8d
je 0x180026e55
cmp dword [rax + rcx + 0x8c], 0
je 0x180026e55
mov r10d, dword [rcx + r8 + 0x20]
mov edx, dword [rcx + r8 + 0x10]
lea rax, [rcx + r8]
mov qword [rsp + 0x10], rbp
mov ebp, dword [rax + 0x24]
mov qword [rsp + 0x18], rsi
mov esi, dword [rax + 0x1c]
add r10, rcx
add rbp, rcx
add rsi, rcx
mov qword [rsp + 0x20], rdi
mov edi, dword [rax + 0x18]
test r11d, 0xffff0000
jne 0x180026ddf
cmp r11d, edx
jb 0x180026e23
mov eax, dword [rax + 0x14]
lea ecx, [rax + rdx - 1]
cmp r11d, ecx
ja 0x180026e23
mov rbp, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x20]
sub r11d, edx
mov eax, dword [rsi + r11*4]
mov rsi, qword [rsp + 0x18]
add rax, rbx
pop rbx
ret
xor r9d, r9d
test edi, edi
jle 0x180026e23
nop word [rax + rax]
mov r8d, dword [r10]
mov rax, r11
add r8, rbx
sub r8, r11
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x180026e13
inc rax
test ecx, ecx
jne 0x180026e00
test edx, edx
je 0x180026e36
inc r9d
add r10, 4
cmp r9d, edi
jl 0x180026df0
mov rsi, qword [rsp + 0x18]
mov rbp, qword [rsp + 0x10]
mov rdi, qword [rsp + 0x20]
xor eax, eax
pop rbx
ret
mov rdi, qword [rsp + 0x20]
movsxd rax, r9d
movzx ecx, word [rbp + rax*2]
mov rbp, qword [rsp + 0x10]
mov eax, dword [rsi + rcx*4]
mov rsi, qword [rsp + 0x18]
add rax, rbx
pop rbx
ret
xor eax, eax
pop rbx
ret
Function at 0x180027100
Capabilities:
Read file via mapping

Disassembly:
push rsi
push rdi
push r12
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
mov rbp, rdx
mov r12, rcx
xor esi, esi
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x70], rax
lea rdx, [0x18006cfe0]
or rbx, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x180027175
movzx edi, dx
xor edx, edx
mov ecx, edi
call fcn.1800029b0
test rax, rax
je 0x180027192
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.180002430
jmp 0x180027192
xor eax, eax
mov rcx, rbx
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x70]
call fcn.180002290
nop
mov r8, r12
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x78]
call fcn.1800055a0
mov r8, qword [rax]
xor edx, edx
lea ecx, [rdx + 6]
call qword [sym.imp.KERNEL32.dll_OpenFileMappingW]
mov rdi, rax
mov rdx, qword [rsp + 0x78]
add rdx, 0xffffffffffffffe8
mov ecx, ebx
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x1800271d5
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x1800271f2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
test rdi, rdi
je 0x180027240
mov qword [rsp + 0x20], 0xc
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 6]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
test rax, rax
je 0x180027233
mov rcx, qword [rax]
mov qword [rbp], rcx
mov ecx, dword [rax + 8]
mov dword [rbp + 8], ecx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov esi, 1
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
jmp 0x180027242
mov eax, esi
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
add rsp, 0x40
pop r12
pop rdi
pop rsi
ret
Function at 0x180027260
Capabilities:
Read file via mapping

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x80], rbx
mov r12, rdx
mov rbp, rcx
xor esi, esi
mov r13d, dword [r8 + 8]
mov r15d, dword [r8]
mov r14d, dword [r8 + 4]
lea rcx, section..data
mov rax, qword [section..data]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x90], rax
lea rdx, [0x18006cfe0]
or rbx, 0xffffffffffffffff
test rdx, 0xffffffffffff0000
jne 0x1800272eb
movzx edi, dx
xor edx, edx
mov ecx, edi
call fcn.1800029b0
test rax, rax
je 0x18002730b
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x90]
call fcn.180002430
jmp 0x18002730b
xor eax, eax
mov rcx, rbx
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x90]
call fcn.180002290
nop
mov r8, rbp
lea rdx, [rsp + 0x90]
lea rcx, [rsp + 0x98]
call fcn.1800055a0
mov r8, qword [rax]
xor edx, edx
lea ecx, [rdx + 6]
call qword [sym.imp.KERNEL32.dll_OpenFileMappingW]
mov rbp, rax
mov rdx, qword [rsp + 0x98]
add rdx, 0xffffffffffffffe8
mov ecx, ebx
lock xadd dword [rdx + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x180027357
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
nop
mov rdx, qword [rsp + 0x90]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
dec ebx
test ebx, ebx
jg 0x180027377
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_htonl]
test rbp, rbp
je 0x1800273c6
mov qword [rsp + 0x20], r15
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 6]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rdi, rax
test rax, rax
je 0x1800273b9
mov r8, r13
lea rdx, [rax + r14]
mov rcx, r12
call fcn.18003b330
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov esi, 1
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
jmp 0x1800273c8
mov eax, esi
mov rbx, qword [rsp + 0x80]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x180027bd0
Capabilities:
Enumerate processes

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
sub rsp, 0x280
mov rax, qword [0x18007f130]
xor rax, rsp
mov qword [rsp + 0x270], rax
xor ebp, ebp
xor edx, edx
mov dword [rsp + 0x30], 0x238
lea ecx, [rbp + 2]
mov ebx, ebp
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
lea rdx, [rsp + 0x30]
mov rcx, rax
mov rsi, rax
call sub.KERNEL32.dll_Process32FirstW
test eax, eax
je 0x180027ca8
lea rdx, [rsp + 0x30]
mov rcx, rsi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
je 0x180027c9f
mov qword [rsp + 0x290], rdi
nop dword [rax + rax]
mov r8d, dword [rsp + 0x38]
xor edx, edx
mov ecx, 0x1fffff
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rdi, rax
test rax, rax
je 0x180027c86
lea rdx, [rsp + 0x20]
mov rcx, rax
mov dword [rsp + 0x20], ebp
call qword [sym.imp.KERNEL32.dll_IsWow64Process]
test eax, eax
je 0x180027c79
cmp dword [rsp + 0x20], ebp
cmovne ebx, dword [rsp + 0x38]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebx, ebx
jne 0x180027c97
lea rdx, [rsp + 0x30]
mov rcx, rsi
call sub.KERNEL32.dll_Process32NextW
test eax, eax
jne 0x180027c40
mov rdi, qword [rsp + 0x290]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, ebx
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.1800340f0
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsp, r11
pop rsi
ret
Function at 0x1800284c0
Capabilities:
Get file size
Read file on windows

Disassembly:
push rbx
push rbp
push rdi
sub rsp, 0x40
xor ebx, ebx
mov rbp, rdx
xor r9d, r9d
mov qword [rsp + 0x30], rbx
lea r8d, [rbx + 7]
mov edx, 0x80000000
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x180028560
lea rdx, [rsp + 0x78]
mov rcx, rax
mov qword [rsp + 0x60], rsi
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov rcx, qword [rsp + 0x78]
call fcn.180034088
mov rsi, rax
test rax, rax
je 0x180028552
mov r8d, dword [rsp + 0x78]
lea r9, [rsp + 0x70]
mov rdx, rax
mov rcx, rdi
mov dword [rsp + 0x70], ebx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rdx, rbp
mov rcx, rsi
call fcn.180028190
mov rcx, rsi
mov ebx, eax
call fcn.1800340d0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rsi, qword [rsp + 0x60]
mov eax, ebx
add rsp, 0x40
pop rdi
pop rbp
pop rbx
ret

Function at 0x1800286a0
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov qword [rsp + 0x20], rsi
push r12
sub rsp, 0x20
xor esi, esi
mov r12, rdx
test rcx, rcx
je 0x18002874a
mov eax, 0x5a4d
cmp ax, word [rcx]
jne 0x18002874a
movsxd r8, dword [rcx + 0x3c]
add r8, rcx
cmp dword [r8], 0x4550
jne 0x18002874a
movzx eax, word [r8 + 0x14]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x38], rbp
movzx ebp, word [r8 + 6]
mov qword [rsp + 0x40], rdi
mov ebx, esi
lea rdi, [rax + r8 + 0x18]
test ebp, ebp
jle 0x18002873b
nop dword [rax + rax]
lea rdx, str..data
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
je 0x180028720
inc ebx
add rdi, 0x28
cmp ebx, ebp
jl 0x180028700
jmp 0x18002873b
mov eax, dword [rdi + 0x10]
mov ecx, dword [rdi + 8]
cmp eax, ecx
cmova ecx, eax
mov eax, dword [rdi + 0xc]
add eax, ecx
mov ecx, dword [rdi + 0x34]
sub ecx, eax
mov esi, eax
mov dword [r12], ecx
mov rdi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
mov eax, esi
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r12
ret

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

Disassembly:
push rbx
push rbp
push rdi
sub rsp, 0x40
xor ebx, ebx
mov rbp, rdx
xor r9d, r9d
mov qword [rsp + 0x30], rbx
lea r8d, [rbx + 7]
mov edx, 0x80000000
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x180028800
lea rdx, [rsp + 0x78]
mov rcx, rax
mov qword [rsp + 0x60], rsi
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov rcx, qword [rsp + 0x78]
call fcn.180034088
mov rsi, rax
test rax, rax
je 0x1800287f2
mov r8d, dword [rsp + 0x78]
lea r9, [rsp + 0x70]
mov rdx, rax
mov rcx, rdi
mov dword [rsp + 0x70], ebx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rdx, rbp
mov rcx, rsi
call fcn.1800286a0
mov rcx, rsi
mov ebx, eax
call fcn.1800340d0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rsi, qword [rsp + 0x60]
mov eax, ebx
add rsp, 0x40
pop rdi
pop rbp
pop rbx
ret
Function at 0x180029890
Capabilities:
Allocate or change rwx memory
Parse pe header

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r13
mov eax, 0x1f80
call fcn.18005aa10
sub rsp, rax
mov rax, qword [0x18007f130]
xor rax, rsp
mov qword [rsp + 0x1f70], rax
xor ebx, ebx
mov rsi, rcx
test rcx, rcx
je 0x180029ad0
mov eax, 0x5a4d
cmp ax, word [rcx]
jne 0x180029ad0
movsxd rbp, dword [rcx + 0x3c]
add rbp, rcx
cmp dword [rbp], 0x4550
jne 0x180029ad0
mov edi, dword [rbp + 0x50]
lea r9d, [rbx + 0x40]
mov r8d, 0x1000
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov r13, rax
test rax, rax
je 0x180029aee
mov r8, rdi
xor edx, edx
mov rcx, rax
mov qword [rsp + 0x1fa8], r12
call fcn.180035fe0
movzx r12d, word [rbp + 0x14]
mov r8d, dword [r12 + rbp + 0x24]
movzx edi, word [rbp + 6]
mov rdx, rsi
mov rcx, r13
call fcn.18003b330
mov r11, rdi
test edi, edi
jle 0x18002996e
lea rdi, [r12 + rbp + 0x2c]
mov r12, r11
nop
mov edx, dword [rdi]
mov ecx, dword [rdi - 8]
mov r8d, dword [rdi - 4]
add rdx, rsi
add rcx, r13
call fcn.18003b330
add rdi, 0x28
sub r12, 1
jne 0x180029950
movzx r8d, word [rbp + 6]
mov r12, qword [rsp + 0x1fa8]
mov edx, ebx
test r8d, r8d
jle 0x180029ad8
nop word [rax + rax]
movsxd rax, edx
lea rdi, [0x18006d088]
lea rcx, [rax + rax*4]
lea rax, [rbp + rcx*8 + 0xf8]
mov ecx, 6
mov rsi, rax
repe cmpsb byte [rsi], byte [rdi]
je 0x1800299be
inc edx
cmp edx, r8d
jl 0x180029990
jmp 0x180029ad8
mov edi, dword [rax + 0xc]
mov ecx, dword [rax + 8]
add rdi, r13
je 0x180029ad8
test ecx, ecx
je 0x180029ad8
mov r9, rcx
mov byte [rsp + 0x1f68], 0xcc
mov byte [rsp + 0x1f69], 0xcc
sub r9, 0x12
mov byte [rsp + 0x1f6a], 0xcc
mov byte [rsp + 0x1f6b], 0x8b
mov byte [rsp + 0x1f6c], 0xff
mov byte [rsp + 0x1f6d], 0x55
mov byte [rsp + 0x1f6e], 0x8b
mov byte [rsp + 0x1f6f], 0xec
mov byte [rsp + 0x1f60], 0x90
mov byte [rsp + 0x1f61], 0x90
mov byte [rsp + 0x1f62], 0x90
mov byte [rsp + 0x1f63], 0x8b
mov byte [rsp + 0x1f64], 0xff
mov byte [rsp + 0x1f65], 0x55
mov byte [rsp + 0x1f66], 0x8b
mov byte [rsp + 0x1f67], 0xec
mov esi, ebx
je 0x180029aa4
mov rcx, qword [rsp + 0x1f68]
mov rax, qword [rsp + 0x1f60]
mov rdx, rbx
lea r8, [rsp + 0x20]
cmp qword [rdx + rdi], rcx
je 0x180029a84
cmp qword [rdx + rdi], rax
jne 0x180029a9b
cmp ebx, 0x3e7
jae 0x180029a9b
lea rdx, [rdx + rdi + 3]
inc ebx
add r8, 8
mov qword [r8 - 8], rdx
inc esi
mov edx, esi
cmp rdx, r9
jb 0x180029a78
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov edi, eax
call fcn.1800356a0
lea ecx, [rax + rdi]
call fcn.180035688
call fcn.1800356a0
lea ecx, [rbx - 2]
cdq
idiv ecx
movsxd rax, edx
mov ebx, dword [rsp + rax*8 + 0x20]
sub ebx, r13d
jmp 0x180029ad8
mov r13, qword [rsp + 0x1f60]
test r13, r13
je 0x180029aee
xor edx, edx
mov r8d, 0x8000
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, ebx
mov rcx, qword [rsp + 0x1f70]
xor rcx, rsp
call fcn.1800340f0
lea r11, [rsp + 0x1f80]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r13
pop rdi
pop rsi
ret
Function at 0x180029b20
Capabilities:
Get file size
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x40
xor ebx, ebx
lea rcx, str.C:WindowsSyswow64_ntdll.dll
xor r9d, r9d
mov qword [rsp + 0x30], rbx
lea r8d, [rbx + 7]
mov edx, 0x80000000
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x180029bc3
lea rdx, [rsp + 0x60]
mov rcx, rax
mov qword [rsp + 0x50], rsi
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
mov rcx, qword [rsp + 0x60]
call fcn.180034140
mov rsi, rax
test rax, rax
je 0x180029bb5
mov r8d, dword [rsp + 0x60]
lea r9, [rsp + 0x58]
mov rdx, rax
mov rcx, rdi
mov dword [rsp + 0x58], ebx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, rsi
call fcn.180029890
mov rcx, rsi
mov ebx, eax
call fcn.1800340d0
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rsi, qword [rsp + 0x50]
mov eax, ebx
mov rbx, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret
Function at 0x18002e7e0
Capabilities:
Encode data using add xor sub operations
Encode data using xor
Encrypt data using des

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
mov r9d, dword [rcx]
mov r8d, dword [rcx + 4]
mov rbx, rcx
mov eax, r9d
mov rdi, rdx
mov esi, 8
shr eax, 4
lea rbp, [0x180000000]
xor eax, r8d
and eax, 0xf0f0f0f
xor r8d, eax
shl eax, 4
xor r9d, eax
mov eax, r9d
shr eax, 0x10
xor eax, r8d
movzx ecx, ax
xor r8d, ecx
shl ecx, 0x10
xor r9d, ecx
mov eax, r8d
shr eax, 2
xor eax, r9d
and eax, 0x33333333
xor r9d, eax
shl eax, 2
xor r8d, eax
mov r10d, r8d
shr r10d, 8
xor r10d, r9d
and r10d, 0xff00ff
xor r9d, r10d
shl r10d, 8
xor r10d, r8d
rol r10d, 1
mov r11d, r10d
xor r11d, r9d
and r11d, 0xaaaaaaaa
xor r10d, r11d
xor r11d, r9d
rol r11d, 1
nop word [rax + rax]
mov eax, r10d
add rdi, 0x10
ror eax, 4
xor eax, dword [rdi - 0x10]
mov edx, eax
mov ecx, eax
shr rax, 0x10
and eax, 0x3f
shr rcx, 0x18
and ecx, 0x3f
mov r9d, dword [rbp + rcx*4 + 0x80820]
or r9d, dword [rbp + rax*4 + 0x80a20]
mov rax, rdx
and edx, 0x3f
shr rax, 8
and eax, 0x3f
or r9d, dword [rbp + rax*4 + 0x80c20]
mov eax, dword [rdi - 0xc]
or r9d, dword [rbp + rdx*4 + 0x80e20]
xor eax, r10d
mov r8d, eax
mov ecx, eax
shr rax, 0x10
and eax, 0x3f
shr rcx, 0x18
and ecx, 0x3f
mov edx, dword [rbp + rcx*4 + 0x80920]
or edx, dword [rbp + rax*4 + 0x80b20]
mov rax, r8
and r8d, 0x3f
shr rax, 8
and eax, 0x3f
or edx, dword [rbp + rax*4 + 0x80d20]
or edx, dword [rbp + r8*4 + 0x80f20]
or edx, r9d
xor r11d, edx
mov eax, r11d
ror eax, 4
xor eax, dword [rdi - 8]
mov edx, eax
mov ecx, eax
shr rax, 0x10
and eax, 0x3f
shr rcx, 0x18
and ecx, 0x3f
mov r9d, dword [rbp + rcx*4 + 0x80820]
or r9d, dword [rbp + rax*4 + 0x80a20]
mov rax, rdx
and edx, 0x3f
shr rax, 8
and eax, 0x3f
or r9d, dword [rbp + rax*4 + 0x80c20]
mov eax, dword [rdi - 4]
or r9d, dword [rbp + rdx*4 + 0x80e20]
xor eax, r11d
mov r8d, eax
mov ecx, eax
shr rax, 0x10
and eax, 0x3f
shr rcx, 0x18
and ecx, 0x3f
mov edx, dword [rbp + rcx*4 + 0x80920]
or edx, dword [rbp + rax*4 + 0x80b20]
mov rax, r8
and r8d, 0x3f
shr rax, 8
and eax, 0x3f
or edx, dword [rbp + rax*4 + 0x80d20]
or edx, dword [rbp + r8*4 + 0x80f20]
or edx, r9d
xor r10d, edx
sub rsi, 1
jne 0x18002e890
mov rbp, qword [rsp + 0x10]
mov rsi, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
ror r10d, 1
mov edx, r10d
xor edx, r11d
and edx, 0xaaaaaaaa
xor r10d, edx
xor edx, r11d
ror edx, 1
mov eax, edx
shr eax, 8
xor eax, r10d
and eax, 0xff00ff
xor r10d, eax
shl eax, 8
xor edx, eax
mov eax, edx
shr eax, 2
xor eax, r10d
and eax, 0x33333333
xor r10d, eax
shl eax, 2
xor edx, eax
mov eax, r10d
shr eax, 0x10
xor eax, edx
movzx ecx, ax
xor edx, ecx
shl ecx, 0x10
xor r10d, ecx
mov ecx, r10d
shr ecx, 4
xor ecx, edx
and ecx, 0xf0f0f0f
mov eax, ecx
xor ecx, edx
shl eax, 4
xor eax, r10d
mov dword [rbx], eax
mov dword [rbx + 4], ecx
mov rbx, qword [rsp + 8]
ret
Function at 0x180030e30
Capabilities:
Encode data using xor

Disassembly:
test r9, r9
je 0x180030f1d
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push r12
sub rsp, 0x20
movsxd r11, dword [rcx + 0x3d0]
mov rsi, rdx
xor edx, edx
mov rax, r9
mov rbp, r9
mov r12, r8
div r11
mov rbx, rcx
test rdx, rdx
jne 0x180030f10
mov qword [rsp + 0x48], r13
xor r13d, r13d
test rax, rax
je 0x180030f01
mov qword [rsp + 0x40], rdi
lea rdi, [rcx + 0x3f8]
cmp byte [rbx + 8], 0
mov rcx, rdi
je 0x180030eb5
xor edx, edx
test r11d, r11d
jle 0x180030eb5
mov r8, rsi
sub r8, rdi
nop dword [rax]
movzx eax, byte [r8 + rcx]
inc edx
inc rcx
xor byte [rcx - 1], al
cmp edx, dword [rbx + 0x3d0]
jl 0x180030ea0
mov r8, r12
mov rdx, rdi
mov rcx, rbx
call fcn.1800302a0
movsxd r8, dword [rbx + 0x3d0]
mov rdx, r12
mov rcx, rdi
call fcn.18003b330
movsxd r11, dword [rbx + 0x3d0]
xor edx, edx
add rsi, r11
add r12, r11
movsxd r11, dword [rbx + 0x3d0]
mov rax, rbp
inc r13d
div r11
movsxd rcx, r13d
cmp rcx, rax
jb 0x180030e87
mov rdi, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
nop word [rax + rax]
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop r12
pop rsi
pop rbp
repz ret

Function at 0x180030f20
Capabilities:
Encode data using xor

Disassembly:
test r9, r9
je 0x18003100e
mov qword [rsp + 0x18], rbx
push rsi
push rdi
push r12
sub rsp, 0x20
movsxd r10, dword [rcx + 0x3d0]
mov rsi, rdx
xor edx, edx
mov rax, r9
mov r12, r9
mov rdi, r8
div r10
mov rbx, rcx
test rdx, rdx
jne 0x180031001
mov qword [rsp + 0x48], r13
xor r13d, r13d
test rax, rax
je 0x180030ffc
mov qword [rsp + 0x40], rbp
mov r8, rdi
mov rdx, rsi
mov rcx, rbx
call fcn.180030610
cmp byte [rbx + 8], 0
mov r11, rdi
je 0x180030fb6
xor ecx, ecx
cmp dword [rbx + 0x3d0], ecx
jle 0x180030fb6
lea rdx, [rbx + 0x3f8]
sub rdx, rdi
nop dword [rax + rax]
movzx eax, byte [rdx + r11]
inc ecx
inc r11
xor byte [r11 - 1], al
cmp ecx, dword [rbx + 0x3d0]
jl 0x180030fa0
movsxd r8, dword [rbx + 0x3d0]
lea rcx, [rbx + 0x3f8]
mov rdx, rsi
call fcn.18003b330
movsxd rcx, dword [rbx + 0x3d0]
movsxd r11, dword [rbx + 0x3d0]
xor edx, edx
mov rax, r12
inc r13d
div rcx
movsxd rcx, r13d
add rsi, r11
add rdi, r11
cmp rcx, rax
jb 0x180030f70
mov rbp, qword [rsp + 0x40]
mov r13, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
add rsp, 0x20
pop r12
pop rdi
pop rsi
repz ret
Function at 0x1800310e0
Capabilities:
Extract resource via kernel32 functions
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
push rdi
push r12
push r13
sub rsp, 0xd0
mov rbx, rdx
mov rdi, rcx
mov r12, r8
lea rdx, [rsp + 0x70]
lea rcx, [0x1800310b0]
mov r8d, 0x30
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
xor r13d, r13d
mov r8, rbx
test rax, rax
mov rcx, r13
mov rdx, rdi
cmovne rcx, qword [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbx, rax
test rax, rax
jne 0x18003113c
xor eax, eax
jmp 0x180031267
lea rdx, [rsp + 0x40]
lea rcx, [0x1800310b0]
mov r8d, 0x30
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
mov rcx, r13
mov rdx, rbx
test rax, rax
cmovne rcx, qword [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rdi, rax
test rax, rax
je 0x180031135
lea rdx, [rsp + 0xa0]
lea rcx, [0x1800310b0]
mov r8d, 0x30
mov qword [rsp + 0xf0], rbp
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
mov rcx, r13
test rax, rax
mov rdx, rbx
cmovne rcx, qword [rsp + 0xa8]
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebp, eax
test eax, eax
je 0x18003125f
mov rcx, rdi
mov qword [rsp + 0xf8], rsi
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rsi, rax
test rax, rax
je 0x180031255
mov qword [rsp + 0x30], r13
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, r12
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 2
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x18003124c
lea r9, [rsp + 0x108]
mov r8d, ebp
mov rdx, rsi
mov rcx, rax
mov dword [rsp + 0x108], r13d
mov qword [rsp + 0x20], r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x180031255
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeResource]
mov eax, 1
jmp 0x180031257
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeResource]
xor eax, eax
mov rsi, qword [rsp + 0xf8]
mov rbp, qword [rsp + 0xf0]
mov rbx, qword [rsp + 0x100]
add rsp, 0xd0
pop r13
pop r12
pop rdi
ret