joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400ed220
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r14
push r15
lea rbp, [rsp - 0x47]
sub rsp, 0xb0
mov rax, qword [0x1403f80a0]
xor rax, rsp
mov qword [rbp + 0x3f], rax
mov rdi, rcx
mov qword [rbp + 0x17], rcx
xor esi, esi
mov qword [rbp + 0x17], rsi
lea r9, [rbp + 0x17]
xor r8d, r8d
mov edx, 0x9c00
lea rcx, [0x1403bb790]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
mov ebx, eax
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
test ebx, ebx
je 0x1400ed2c1
mov rbx, qword [0x1403fe908]
test rbx, rbx
je 0x1400ed2a9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, str._1:__u_n
lea edx, [rsi + 6]
mov rcx, rbx
call fcn.1400d88a0
mov qword [rdi], rsi
mov qword [rdi + 0x10], rsi
mov ebx, 7
mov qword [rdi + 0x18], rbx
mov word [rdi], si
jmp 0x1400ed410
mov qword [rbp - 0x29], rsi
movdqa xmm0, xmmword [0x1403c3e30]
movdqu xmmword [rbp - 0x19], xmm0
mov word [rbp - 0x29], si
mov r8d, reloc.WS2_32.dll_listen
lea rdx, str.Riot_Vanguard
lea rcx, [rbp - 0x29]
call fcn.1400d8740
nop
mov qword [rbp - 0x49], rsi
movdqa xmm0, xmmword [0x1403c3e30]
movdqu xmmword [rbp - 0x39], xmm0
mov word [rbp - 0x49], si
mov r8d, 1
lea rdx, [0x1403bfa1c]
lea rcx, [rbp - 0x49]
call fcn.1400d8740
nop
lea r8, [rbp - 0x49]
mov rdx, qword [rbp + 0x17]
lea rcx, [rbp - 9]
call fcn.1400eebc0
nop
lea r9, [rbp - 0x29]
mov r8, rax
lea rcx, [rbp + 0x1f]
call fcn.1400f08e0
nop
lea rcx, [rbp - 9]
call fcn.1400d9090
nop
lea rcx, [rbp - 0x49]
call fcn.1400d9090
nop
lea rcx, [rbp - 0x29]
call fcn.1400d9090
mov rcx, qword [rbp + 0x17]
test rcx, rcx
je 0x1400ed36c
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov qword [rbp + 0x17], rsi
mov qword [rdi], rsi
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], rsi
lea r15, [rbp + 0x1f]
cmp qword [rbp + 0x37], 8
cmovae r15, qword [rbp + 0x1f]
mov r14, qword [rbp + 0x2f]
cmp r14, 8
jae 0x1400ed39d
movups xmm0, xmmword [r15]
movups xmmword [rdi], xmm0
mov ebx, 7
jmp 0x1400ed3ff
mov rbx, r14
or rbx, 7
movabs rax, 0x7ffffffffffffffe
cmp rbx, rax
cmova rbx, rax
lea rcx, [rbx + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x1400ed43c
add rcx, rcx
cmp rcx, 0x1000
jb 0x1400ed3db
call fcn.1400d85d0
jmp 0x1400ed3e5
test rcx, rcx
je 0x1400ed3e8
call fcn.140130550
mov rsi, rax
mov qword [rdi], rsi
lea r8, [r14*2 + 2]
mov rdx, r15
mov rcx, rsi
call fcn.1401329d0
nop
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], rbx
lea rcx, [rbp + 0x1f]
call fcn.1400d9090
mov rax, rdi
mov rcx, qword [rbp + 0x3f]
xor rcx, rsp
call fcn.1401304f0
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
call fcn.1400d8720
nop
int3
Function at 0x1400ed450
Capabilities:
Get comspec environment variable
Query environment variable

Disassembly:
mov qword [rsp + 8], rcx
push rbx
sub rsp, 0x30
mov rbx, rcx
xor eax, eax
mov dword [rsp + 0x20], eax
mov qword [rcx], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], 7
mov word [rcx], ax
mov dword [rsp + 0x20], 1
xor r8d, r8d
xor edx, edx
lea rcx, str.COMSPEC
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x1400ed4ce
xor r8d, r8d
mov edx, eax
inc rdx
mov rcx, rbx
call fcn.1400d24f0
mov rdx, rbx
cmp qword [rbx + 0x18], 8
jb 0x1400ed4b0
mov rdx, qword [rbx]
mov r8d, dword [rbx + 0x10]
lea rcx, str.COMSPEC
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
xor r8d, r8d
mov edx, eax
mov rcx, rbx
call fcn.1400d24f0
mov rax, rbx
add rsp, 0x30
pop rbx
ret

Function at 0x1400ed4e0
Capabilities:
Get common file path

Disassembly:
push rbx
sub rsp, 0x40
mov rax, qword [0x1403f80a0]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov rbx, rcx
mov qword [rsp + 0x28], rcx
xor eax, eax
mov dword [rsp + 0x20], eax
mov qword [rcx], rax
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], 7
mov word [rcx], ax
mov dword [rsp + 0x20], 1
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x30]
xor r8d, r8d
xor edx, edx
lea rcx, [0x1403bb7b0]
call qword [sym.imp.SHELL32.dll_SHGetKnownFolderPath]
test eax, eax
jne 0x1400ed56e
mov rdx, qword [rsp + 0x30]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1400ed550
mov rcx, rbx
call fcn.1400d8740
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rax, rbx
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1401304f0
add rsp, 0x40
pop rbx
ret
Function at 0x1400f3bd0
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov ebp, r8d
mov r14, rdx
mov rsi, rcx
xor edi, edi
mov dword [rsp + 0x20], edi
mov qword [rcx], rdi
mov qword [rcx + 0x10], rdi
mov qword [rcx + 0x18], reloc.WS2_32.dll_ntohs
mov byte [rcx], dil
mov dword [rsp + 0x20], 1
mov ebx, edi
test r8d, r8d
je 0x1400f3dd1
mov ecx, edi
nop
dec ebp
movzx eax, byte [r14]
lea r14, [r14 + 1]
mov byte [rsp + rcx + 0x80], al
inc ebx
inc rcx
movzx r13d, byte [rsp + 0x82]
movzx r15d, byte [rsp + 0x81]
movzx r12d, byte [rsp + 0x80]
cmp rcx, 3
jne 0x1400f3ce9
movzx eax, r12b
shr al, 2
mov byte [rsp + 0x88], al
movzx ecx, r12b
and cl, 3
shl cl, 4
movzx eax, r15b
shr al, 4
add cl, al
mov byte [rsp + 0x89], cl
movzx ecx, r15b
and cl, 0xf
shl cl, 2
movzx eax, r13b
shr al, 6
add cl, al
mov byte [rsp + 0x8a], cl
movzx eax, r13b
and al, 0x3f
mov byte [rsp + 0x8b], al
mov rbx, rdi
nop dword [rax]
lea rcx, [0x1403fe618]
cmp qword [reloc.WS2_32.dll_ntohs], 0x10
cmovae rcx, qword [0x1403fe618]
movzx eax, byte [rsp + rbx + 0x88]
movzx edx, byte [rax + rcx]
mov rcx, rsi
call fcn.1400d0c90
inc rbx
cmp rbx, 4
jl 0x1400f3cb0
mov ebx, edi
mov rcx, rdi
test ebp, ebp
jne 0x1400f3c20
test ebx, ebx
je 0x1400f3dd1
movsxd rax, ebx
cmp rax, 3
jge 0x1400f3d34
jae 0x1400f3de9
mov byte [rsp + rax + 0x80], 0
inc rax
cmp rax, 3
jl 0x1400f3d02
movzx r13d, byte [rsp + 0x82]
movzx r15d, byte [rsp + 0x81]
movzx r12d, byte [rsp + 0x80]
movzx eax, r12b
shr al, 2
mov byte [rsp + 0x88], al
and r12b, 3
shl r12b, 4
movzx eax, r15b
shr al, 4
add r12b, al
mov byte [rsp + 0x89], r12b
and r15b, 0xf
shl r15b, 2
shr r13b, 6
add r15b, r13b
mov byte [rsp + 0x8a], r15b
lea eax, [rbx + 1]
movsxd rbp, eax
test eax, eax
jle 0x1400f3db3
nop dword [rax]
lea rcx, [0x1403fe618]
cmp qword [reloc.WS2_32.dll_ntohs], 0x10
cmovae rcx, qword [0x1403fe618]
movzx eax, byte [rsp + rdi + 0x88]
movzx edx, byte [rax + rcx]
mov rcx, rsi
call fcn.1400d0c90
inc rdi
cmp rdi, rbp
jl 0x1400f3d80
cmp ebx, 3
jge 0x1400f3dd1
mov eax, 3
sub eax, ebx
mov ebx, eax
mov dl, 0x3d
mov rcx, rsi
call fcn.1400d0c90
sub rbx, 1
jne 0x1400f3dc1
mov rax, rsi
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.1401306a0
int3
Function at 0x1400fe3d0
Capabilities:
Get system firmware table

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0x90
mov rax, qword [0x1403f80a0]
xor rax, rsp
mov qword [rbp + 0x4f], rax
mov rbx, rcx
mov qword [rbp + 0x2f], rcx
mov edx, 1
lea rcx, [rbp + 0xf]
call fcn.1400f5ad0
nop
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0x52534d42
call qword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
mov esi, eax
cmp eax, 0xc
jae 0x1400fe450
xor ecx, ecx
movups xmm0, xmmword [rbp + 0xf]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rbp + 0x1f]
movups xmmword [rbx + 0x10], xmm1
movdqa xmm0, xmmword [0x1403c3e40]
movdqu xmmword [rbp + 0x1f], xmm0
mov byte [rbp + 0xf], cl
jmp 0x1400fe5b6
xorps xmm0, xmm0
movups xmmword [rbp + 0x2f], xmm0
mov rcx, rsi
call fcn.14013ec80
mov rdi, rax
lea rax, [fcn.14013ec60]
mov qword [rbp + 0x2f], rax
mov qword [rbp + 0x37], rdi
mov r9d, esi
mov r8, rdi
xor edx, edx
mov ecx, 0x52534d42
call qword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
mov ecx, eax
cmp eax, esi
je 0x1400fe4ad
xor ecx, ecx
movups xmm0, xmmword [rbp + 0xf]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rbp + 0x1f]
movups xmmword [rbx + 0x10], xmm1
movdqa xmm0, xmmword [0x1403c3e40]
movdqu xmmword [rbp + 0x1f], xmm0
mov byte [rbp + 0xf], cl
jmp 0x1400fe4d5
mov eax, dword [rdi + 4]
cmp eax, ecx
jbe 0x1400fe4e8
xor ecx, ecx
movups xmm0, xmmword [rbp + 0xf]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rbp + 0x1f]
movups xmmword [rbx + 0x10], xmm1
movdqa xmm0, xmmword [0x1403c3e40]
movdqu xmmword [rbp + 0x1f], xmm0
mov byte [rbp + 0xf], cl
test rdi, rdi
je 0x1400fe4e3
mov rcx, rdi
call fcn.14013ec60
nop
jmp 0x1400fe5b6
lea rcx, [rdi + 8]
lea rsi, [rcx + rax]
cmp rcx, rsi
jae 0x1400fe58c
nop dword [rax]
cmp byte [rcx], 1
je 0x1400fe536
movzx eax, byte [rcx + 1]
add rcx, rax
mov r11, rcx
mov word [rbp + 7], 0
mov rdx, rsi
sub rdx, rcx
lea r8, [rbp + 7]
call fcn.1400ee0d0
lea rcx, [rax + 2]
test rax, rax
cmove rcx, r11
cmp rcx, rsi
jb 0x1400fe500
jmp 0x1400fe58c
movups xmm0, xmmword [rcx + 8]
movups xmmword [rbp + 0x3f], xmm0
mov r8d, 1
lea rdx, [0x1403c0ce4]
lea rcx, [rbp + 0xf]
call fcn.1400d7680
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rbp + 0x3f]
lea rcx, [rbp - 0x19]
call fcn.1400f3bd0
nop
mov r8, qword [rax + 0x10]
cmp qword [rax + 0x18], 0x10
jb 0x1400fe576
mov rax, qword [rax]
mov rdx, rax
lea rcx, [rbp + 0xf]
call fcn.1400d7680
nop
lea rcx, [rbp - 0x19]
call fcn.1400d7d30
xor ecx, ecx
movups xmm0, xmmword [rbp + 0xf]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rbp + 0x1f]
movups xmmword [rbx + 0x10], xmm1
movdqa xmm0, xmmword [0x1403c3e40]
movdqu xmmword [rbp + 0x1f], xmm0
mov byte [rbp + 0xf], cl
mov rcx, rdi
call fcn.14013ec60
nop
lea rcx, [rbp + 0xf]
call fcn.1400d7d30
mov rax, rbx
mov rcx, qword [rbp + 0x4f]
xor rcx, rsp
call fcn.1401304f0
lea r11, [rsp + 0x90]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x14010ec10
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
mov rax, qword gs:[0x30]
mov rsi, r8
mov rdi, rdx
mov rbx, rcx
test rax, rax
je 0x14010ecc5
mov rax, qword [rax + 0x60]
test rax, rax
je 0x14010ecc5
mov r9, qword [rax + 0x18]
test r9, r9
je 0x14010ecc5
mov rax, qword [r9 + 0x10]
lea r11, [r9 + 0x10]
test rax, rax
je 0x14010ecc5
movabs rbp, 0x100000001b3
movabs r14, 0xcbf29ce484222325
cmp rax, r11
je 0x14010ecc5
test rax, rax
je 0x14010ecbd
mov r9, qword [rax + 0x60]
test r9, r9
je 0x14010ecbd
movzx ecx, word [rax + 0x58]
test cx, cx
je 0x14010ecbd
xor r8d, r8d
mov r10d, ecx
mov rdx, r14
test rcx, rcx
je 0x14010ecb8
nop
movzx ecx, byte [r8 + r9]
inc r8
or rcx, 0x20
xor rdx, rcx
imul rdx, rbp
cmp r8, r10
jb 0x14010eca0
cmp rbx, rdx
je 0x14010ecde
mov rax, qword [rax]
test rax, rax
jne 0x14010ec74
xor al, al
mov rbx, qword [rsp + 0x10]
mov rbp, qword [rsp + 0x18]
mov rsi, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x28]
pop r14
ret
test rsi, rsi
je 0x14010ece9
mov ecx, dword [rax + 0x40]
mov qword [rsi], rcx
test rdi, rdi
je 0x14010ecf5
mov rcx, qword [rax + 0x30]
mov qword [rdi], rcx
mov al, 1
jmp 0x14010ecc7
Function at 0x14010f080
Capabilities:
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
movzx r13d, r8b
mov rbp, rdx
mov rbx, rcx
test rcx, rcx
je 0x14010f1fb
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
je 0x14010f1fb
mov esi, dword [rax + 0x88]
test esi, esi
je 0x14010f1fb
mov r14d, dword [rax + 0x8c]
test r14d, r14d
je 0x14010f1fb
mov r8d, dword [rcx + rsi + 0x1c]
lea rax, [rcx + rsi]
test r8d, r8d
je 0x14010f1fb
mov ecx, dword [rax + 0x20]
test ecx, ecx
je 0x14010f1fb
mov edx, dword [rax + 0x24]
test edx, edx
je 0x14010f1fb
mov r15d, dword [rax + 0x18]
lea r9, [rbx + r8]
add rcx, rbx
mov qword [rsp + 0x88], r9
add rdx, rbx
mov qword [rsp + 0x20], rcx
xor r11d, r11d
mov qword [rsp + 0x28], rdx
mov dword [rsp + 0x70], r15d
test r15d, r15d
je 0x14010f1fb
mov r12d, dword [rax + 0x10]
nop
movzx edx, word [rdx + r11*2]
mov r8d, dword [rcx + r11*4]
add edx, r12d
mov eax, edx
sub eax, r12d
mov ecx, dword [r9 + rax*4]
lea r10, [rbx + rcx]
cmp ecx, esi
jb 0x14010f15a
lea eax, [r14 + rsi]
cmp ecx, eax
jae 0x14010f15a
mov dil, 1
jmp 0x14010f15d
xor dil, dil
test r13b, r13b
je 0x14010f166
cmp ebp, edx
jmp 0x14010f1cd
test r8d, r8d
je 0x14010f1cf
lea rdx, [rbx + r8]
xor eax, eax
cmp byte [rdx], al
je 0x14010f1c7
inc rax
cmp byte [rax + rdx], 0
jne 0x14010f175
test rax, rax
je 0x14010f1c7
xor r9d, r9d
movabs r8, 0xcbf29ce484222325
test rax, rax
je 0x14010f1bd
movabs r15, 0x100000001b3
nop
movzx ecx, byte [r9 + rdx]
inc r9
or rcx, 0x20
xor r8, rcx
imul r8, r15
cmp r9, rax
jb 0x14010f1a0
mov r15d, dword [rsp + 0x70]
mov r9, qword [rsp + 0x88]
jmp 0x14010f1ca
xor r8d, r8d
cmp rbp, r8
je 0x14010f1e6
inc r11d
cmp r11d, r15d
jae 0x14010f1fb
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x28]
jmp 0x14010f130
test dil, dil
je 0x14010f1f6
mov rcx, r10
call fcn.14010ed00
mov r10, rax
mov rax, r10
jmp 0x14010f1fd
xor eax, eax
mov rbx, qword [rsp + 0x78]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x140110090
Capabilities:
Allocate or change rwx memory

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x100
mov rax, qword [0x1403f80a0]
xor rax, rsp
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x60], r9
mov rbx, rcx
mov dword [rsp + 0x38], r8d
mov rax, qword [rsp + 0x160]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x168]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x170]
mov qword [rsp + 0x70], rax
mov r15, qword [rsp + 0x178]
mov qword [rsp + 0x80], r15
mov r12, qword [rsp + 0x180]
mov qword [rsp + 0x58], r12
test rcx, rcx
je 0x1401103ae
test rdx, rdx
je 0x1401103ae
cmp rdx, 0x38
jae 0x140110128
mov edx, 2
jmp 0x1401103b3
cmp dword [rcx], 0x4f544952
jne 0x14011011e
cmp word [rcx + 6], 2
je 0x140110141
mov edx, 3
jmp 0x1401103b3
mov r13d, dword [rcx + 0x10]
test r13d, r13d
je 0x1401103ae
mov qword [rsp + 0x88], r13
mov r9d, 0x40
mov r8d, 0x3000
mov edx, r13d
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
mov qword [rsp + 0x30], rax
test rax, rax
jne 0x1401101ab
mov rbx, qword [0x1403fe908]
test rbx, rbx
je 0x1401101a1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, str._1:__u_n
lea edx, [rdi + 6]
mov rcx, rbx
call fcn.1400d88a0
mov eax, 0xe000271f
jmp 0x1401103c6
xor esi, esi
mov dword [rsp + 0x2c], esi
xorps xmm0, xmm0
movups xmmword [rsp + 0xa0], xmm0
movups xmmword [rsp + 0xb0], xmm0
lea r9, [rsp + 0xa0]
mov r8, r13
mov rdx, rdi
mov rcx, rbx
call fcn.14010f220
test eax, eax
jne 0x14011036d
mov r14d, dword [rdi + 0x14]
add r14, rdi
mov qword [rsp + 0x78], r14
je 0x140110387
mov dword [rsp + 0xc0], r13d
mov eax, esi
mov rcx, qword [rsp + 0x50]
test rcx, rcx
cmovne rax, qword [rsp + 0x60]
mov qword [rsp + 0xc4], rax
mov qword [rsp + 0xcc], rcx
mov qword [rsp + 0xd4], rsi
mov qword [rsp + 0xdc], rsi
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0xe4], rax
mov byte [rsp + 0x20], sil
mov rcx, qword [rsp + 0x70]
call fcn.14011eec0
lea r8, [rsp + 0xc0]
lea edx, [rsi + 1]
mov rcx, rdi
call r14
mov ebx, eax
mov dword [rsp + 0x50], eax
mov rcx, qword [rsp + 0x70]
call fcn.14011ef90
mov al, 1
mov byte [rsp + 0x20], al
mov r9d, ebx
xor r8d, r8d
xor edx, edx
mov rcx, r12
call fcn.140110060
jmp 0x14011031e
test al, al
je 0x140110387
test r15, r15
je 0x140110350
mov rdx, qword [rsp + 0xdc]
mov rcx, r15
call fcn.1400ffef0
mov r8, qword [rsp + 0xdc]
mov rdx, qword [rsp + 0xd4]
mov rcx, qword [r15]
call fcn.1401329d0
nop
lea r8, [rsp + 0xc0]
xor edx, edx
mov rcx, rdi
call r14
jmp 0x140110387
xor r9d, r9d
lea r8, [rsp + 0xa0]
mov edx, eax
mov rcx, r12
call fcn.140110060
mov esi, 0xe000272d
mov r8, qword [rsp + 0x88]
xor edx, edx
mov rcx, rdi
call fcn.140133080
xor edx, edx
mov r8d, 0x8000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov eax, esi
jmp 0x1401103c6
mov edx, 1
xor r9d, r9d
xor r8d, r8d
mov rcx, r12
call fcn.140110060
mov eax, 0xe000272c
mov rcx, qword [rsp + 0xf0]
xor rcx, rsp
call fcn.1401304f0
add rsp, 0x100
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
Function at 0x140112b10
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 8
mov r10, rcx
mov r9d, 0x270
mov ecx, dword [rcx]
cmp ecx, r9d
jne 0x140112b71
lea r8, [r10 + 8]
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x140112b30
mov ecx, dword [r10]
jmp 0x140112c5a
cmp ecx, 0x4e0
jb 0x140112c5a
lea r11, [r10 + 0x9c4]
mov qword [rsp], rbx
mov eax, dword [r11]
mov ebx, 0xe3
mov edx, dword [r11 + 4]
lea r8, [r11 + 4]
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r11 + 0x634]
xor ecx, edx
mov dword [r11 - 0x9c0], ecx
lea r11, [r8]
sub rbx, 1
jne 0x140112b90
lea r11, [r10 + 0xd50]
mov ebx, 0x18c
mov eax, dword [r11]
nop dword [rax + rax]
mov edx, eax
lea r8, [r11 + 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r11 - 0xd4c]
xor ecx, edx
mov dword [r11 - 0x9c0], ecx
lea r11, [r8]
sub rbx, 1
jne 0x140112be0
mov edx, dword [r10 + 0x1380]
xor edx, dword [r10 + 4]
mov rbx, qword [rsp]
btr edx, 0x1f
xor edx, dword [r10 + 0x1380]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r10 + 0x634]
xor ecx, edx
mov dword [r10 + 0x9c0], ecx
xor ecx, ecx
mov dword [r10], ecx
mov eax, ecx
mov edx, dword [r10 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r10], eax
mov ecx, edx
mov eax, dword [r10 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
add rsp, 8
ret
Function at 0x1401201c0
Capabilities:
Get file size
Read file on windows

Disassembly:
push rbx
push rsi
push rdi
push r14
push r15
sub rsp, 0x60
mov rax, qword [0x1403f80a0]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov r15, r8
mov r14, rdx
cmp qword [rcx + 0x18], 8
jb 0x1401201eb
mov rcx, qword [rcx]
xor edi, edi
mov qword [rsp + 0x30], rdi
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
mov edx, 0x80000000
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
mov qword [rsp + 0x48], rax
inc rax
test rax, 0xfffffffffffffffe
jne 0x14012022d
mov edi, 0xe0002735
jmp 0x14012028b
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov esi, eax
cmp eax, 0xffffffff
je 0x140120286
mov ecx, esi
call fcn.140130e50
mov rcx, qword [r14]
mov qword [r14], rax
test rcx, rcx
je 0x14012025e
mov edx, 1
call fcn.140130510
mov rax, qword [r14]
mov dword [rsp + 0x40], edi
mov qword [rsp + 0x20], rdi
lea r9, [rsp + 0x40]
mov r8d, esi
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov ecx, dword [rsp + 0x40]
mov qword [r15], rcx
test eax, eax
jne 0x14012028b
mov edi, 0xe0002746
lea rcx, [rbx - 1]
cmp rcx, 0xfffffffffffffffd
ja 0x14012029e
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, edi
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1401304f0
add rsp, 0x60
pop r15
pop r14
pop rdi
pop rsi
pop rbx
ret
Function at 0x140124080
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x60
mov rax, qword [0x1403f80a0]
xor rax, rsp
mov qword [rsp + 0x50], rax
mov edi, dword [rdx + 0x10]
xor ebx, ebx
mov qword [rsp + 0x40], rbx
xorps xmm0, xmm0
mov rbp, rdx
mov r14, rcx
mov esi, ebx
movdqu xmmword [rsp + 0x30], xmm0
test rdi, rdi
je 0x1401240f9
mov ecx, edi
cmp rdi, 0x1000
jb 0x1401240d3
call fcn.1400d85d0
jmp 0x1401240d8
call fcn.140130550
lea rsi, [rax + rdi]
mov qword [rsp + 0x30], rax
mov rdx, rsi
mov qword [rsp + 0x40], rsi
mov rcx, rax
call fcn.1400f5d70
mov edi, dword [rbp + 0x10]
mov qword [rsp + 0x38], rsi
mov rcx, qword [rsp + 0x30]
sub esi, ecx
cmp esi, edi
jb 0x14012416b
mov rdx, qword [rbp + 8]
mov r8d, edi
call fcn.1401329d0
mov r8d, dword [rsp + 0x38]
lea r9, [rsp + 0x48]
mov rdx, qword [rsp + 0x30]
mov rcx, r14
sub r8d, edx
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x140124152
call qword [sym.imp.KERNEL32.dll_GetLastError]
sub eax, 0xe8
je 0x140124146
cmp eax, 1
jne 0x14012415f
mov rcx, qword [rsp + 0x30]
mov ebx, 0xffffffb2
jmp 0x140124170
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_FlushFileBuffers]
test eax, eax
jne 0x140124164
mov ebx, 0xffffffb1
mov rcx, qword [rsp + 0x30]
jmp 0x140124170
mov ebx, 0xffffffa8
test rcx, rcx
je 0x1401241a3
mov rdx, qword [rsp + 0x40]
mov rax, rcx
sub rdx, rcx
cmp rdx, 0x1000
jb 0x14012419e
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1401241c7
call fcn.140130510
mov eax, ebx
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.1401304f0
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
call fcn.14013ebe0
int3

Function at 0x14013058c
Capabilities:
Terminate process

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov edx, 0xc0000409
add rsp, 0x20
pop rbx
jmp qword [sym.imp.KERNEL32.dll_TerminateProcess]

Function at 0x14014f018
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x14014ee40