joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1800c4710
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov dword [rcx + 0x74], 0
mov rbx, rcx
mov edi, 0x7fffffff
movsx ecx, byte [rbx + 0x78]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x1800c47dc
lea r8d, [rcx - 0x30]
cmp r8d, 0xffffffff
je 0x1800c47dc
mov r9d, dword [rbx + 0x74]
mov ecx, 0x7fffffff
sub ecx, r8d
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp r9d, edx
jg 0x1800c47f5
lea eax, [r9 + r9*4]
dec edi
lea ecx, [r8 + rax*2]
mov rax, qword [rbx]
mov dword [rbx + 0x74], ecx
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x1800c47cc
cmp byte [rax], 0x5c
jne 0x1800c47c6
lea rdx, [rax + 1]
cmp rdx, rcx
je 0x1800c47c6
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x1800c47b2
movzx ecx, byte [rdx]
sub cl, 0x28
cmp cl, 1
jbe 0x1800c47c3
test r8b, 0x10
jne 0x1800c47c6
movzx ecx, byte [rdx]
sub cl, 0x7b
test cl, 0xfd
jne 0x1800c47c6
mov rax, rdx
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.1800c0f80
test edi, edi
jne 0x1800c4730
mov rbx, qword [rsp + 0x30]
cmp edi, 0x7fffffff
mov rsi, qword [rsp + 0x38]
setne al
add rsp, 0x20
pop rdi
ret
mov edx, esi
call fcn.1800c0f70
int3
Function at 0x1800c93e0
Capabilities:
Log keystrokes via polling

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rdi
sub rsp, 0xf0
movaps xmmword [rax - 0x18], xmm6
xor ebx, ebx
movaps xmmword [rax - 0x28], xmm7
xor esi, esi
movaps xmmword [rax - 0x38], xmm8
movaps xmmword [rax - 0x48], xmm9
movaps xmmword [rax - 0x58], xmm10
movaps xmmword [rax - 0x68], xmm11
movss xmm11, dword [0x180266070]
movaps xmmword [rax - 0x78], xmm12
movss xmm12, dword [0x180266054]
movaps xmmword [rsp + 0x70], xmm13
movss xmm13, dword [0x180266044]
movdqa xmm10, xmmword [0x180267080]
xorps xmm0, xmm0
mov ecx, 0x30
mov qword [rsp + 0x60], rsi
movups xmmword [rsp + 0x50], xmm0
mov qword [rsp + 0x68], 0xf
movaps xmm9, xmm13
movaps xmm8, xmm12
movaps xmm7, xmm11
movaps xmm6, xmm11
call fcn.180114c28
movups xmm0, xmmword [str.Press_any_key__press_Backspace_to_cancel]
mov qword [rsp + 0x50], rax
lea rdx, [rsp + 0x30]
mov qword [rsp + 0x60], 0x28
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x68], 0x2f
movups xmmword [rax], xmm0
mov byte [rsp + 0x28], sil
movups xmm1, xmmword [0x18025d7a8]
mov dword [rsp + 0x40], ebx
movaps xmmword [rsp + 0x30], xmm10
movups xmmword [rax + 0x10], xmm1
mov byte [rsp + 0x20], 1
movsd xmm0, qword [0x18025d7b8]
movaps xmm1, xmm8
movsd qword [rax + 0x20], xmm0
movaps xmm0, xmm6
unpcklps xmm0, xmm7
unpcklps xmm1, xmm9
movq r9, xmm0
movq r8, xmm1
mov byte [rax + 0x28], sil
call fcn.1800cacc0
mov edi, 1
nop
xor edx, edx
lea rcx, str.grcWindow
call qword [sym.imp.USER32.dll_FindWindowA]
mov rbx, rax
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rbx, rax
jne 0x1800c9532
cmp byte [0x1802ccbe2], sil
jne 0x1800c9532
mov ecx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x1800c9532
cmp edi, 0xd
je 0x1800c9532
cmp edi, 0x65
je 0x1800c9532
cmp edi, 0x1b
jne 0x1800c9550
inc edi
cmp edi, 0x100
jl 0x1800c94f0
mov rcx, qword [0x1802ccb18]
call qword [sym.imp.KERNEL32.dll_SwitchToFiber]
xor ebx, ebx
jmp 0x1800c9439
cmp edi, 8
jne 0x1800c9567
xor edx, edx
lea rcx, str.Canceled_Key_Selection
call fcn.1800b0540
xor eax, eax
jmp 0x1800c9569
mov eax, edi
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
movaps xmm6, xmmword [r11 - 0x10]
movaps xmm7, xmmword [r11 - 0x20]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm10, xmmword [r11 - 0x50]
movaps xmm11, xmmword [r11 - 0x60]
movaps xmm12, xmmword [r11 - 0x70]
movaps xmm13, xmmword [r11 - 0x80]
mov rsp, r11
pop rdi
ret
Function at 0x1801010f0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x1802ad098]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rsi, rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x30], xmm1
lea rcx, [rsp + 0x20]
call fcn.18007b490
nop
movabs r9, 0xcbf29ce484222325
lea rax, [rsp + 0x20]
cmp qword [rsp + 0x38], 0x10
cmovae rax, qword [rsp + 0x20]
lea rdx, [rsp + 0x20]
cmovae rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x30]
add r8, rdx
cmp rax, r8
je 0x180101183
movabs rdx, 0x100000001b3
nop dword [rax]
nop word [rax + rax]
imul r9, rdx
movsx rcx, byte [rax]
xor r9, rcx
inc rax
cmp rax, r8
jne 0x180101170
mov qword [rsi + 0x40], r9
mov byte [rsi + 0x68], 0
lea r8, [rsi + 0x20]
mov rdx, rsi
lea rcx, [rsp + 0x20]
call fcn.180100f50
mov rax, qword [rsi + 0x30]
mov qword [rsi + 0x48], rax
mov rbx, qword [0x1802d01a0]
mov rax, qword [rbx + 8]
mov rcx, rax
mov rdi, rbx
cmp byte [rax + 0x19], 0
jne 0x1801011e8
mov r8, qword [rsi + 0x40]
nop
mov rdx, qword [rcx + 0x20]
cmp rdx, r8
jae 0x1801011cf
mov rcx, qword [rcx + 0x10]
jmp 0x1801011e2
cmp byte [rdi + 0x19], 0
je 0x1801011dc
cmp r8, rdx
cmovb rdi, rcx
mov rbx, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1801011c0
cmp byte [rdi + 0x19], 0
jne 0x1801011f1
mov rax, qword [rdi]
cmp byte [rax + 0x19], 0
jne 0x180101218
mov rcx, qword [rsi + 0x40]
nop dword [rax + rax]
cmp rcx, qword [rax + 0x20]
jae 0x18010120e
mov rdi, rax
mov rax, qword [rax]
jmp 0x180101212
mov rax, qword [rax + 0x10]
cmp byte [rax + 0x19], 0
je 0x180101200
cmp rbx, rdi
je 0x180101299
nop dword [rax]
mov rdx, qword [rbx + 0x28]
mov rcx, rsi
call fcn.1801014a0
mov rax, qword [rbx + 0x10]
cmp byte [rax + 0x19], 0
je 0x180101258
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x180101253
cmp rbx, qword [rax + 0x10]
jne 0x180101253
mov rbx, rax
mov rax, qword [rax + 8]
cmp byte [rax + 0x19], 0
je 0x180101240
mov rbx, rax
jmp 0x18010127f
mov rbx, rax
mov rcx, qword [rax]
cmp byte [rcx + 0x19], 0
jne 0x18010127f
nop dword [rax]
nop dword [rax + rax]
mov rbx, rcx
mov rax, qword [rcx]
mov rcx, rax
cmp byte [rax + 0x19], 0
je 0x180101270
cmp rbx, rdi
jne 0x180101220
mov rax, qword [rsi + 0x58]
sub rax, qword [rsi + 0x50]
sar rax, 3
test rax, rax
je 0x180101299
mov byte [rsi + 0x68], 1
mov rdx, qword [rsp + 0x38]
cmp rdx, 0x10
jb 0x1801012d2
inc rdx
mov rcx, qword [rsp + 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1801012cd
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1801012e7
call fcn.180114c20
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180114c00
add rsp, 0x50
pop rdi
pop rsi
pop rbx
ret
call fcn.18011d534
int3
Function at 0x1801040d0
Capabilities:
Hash data using fnv

Disassembly:
push rdi
sub rsp, 0x20
movabs rax, 0xfffffffffffffff
mov edi, 1
bsr rcx, rax
mov eax, edi
shl rax, cl
cmp rdx, rax
ja 0x1801042ad
lea rax, [rdx - 1]
mov qword [rsp + 0x30], rbx
mov rbx, qword [0x1802d02d8]
or rax, rdi
bsr rcx, rax
mov r8, rbx
inc ecx
shl rdi, cl
lea rcx, [0x1802d02e8]
lea rdx, [rdi + rdi]
call fcn.180098de0
mov rax, qword [0x1802d02d8]
lea r9, [rdi - 1]
mov qword [0x1802d0300], r9
mov qword [0x1802d0308], rdi
mov rax, qword [rax]
mov rcx, rax
cmp rax, rbx
je 0x1801042a2
mov qword [rsp + 0x38], rsi
movabs rdi, 0x100000001b3
movabs rsi, 0xcbf29ce484222325
nop word [rax + rax]
movzx edx, byte [rax + 0x11]
movzx r11d, byte [rax + 0x10]
mov rcx, qword [rcx]
xor r11, rsi
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x12]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x13]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x14]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x15]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x16]
imul r11, rdi
xor r11, rdx
movzx edx, byte [rax + 0x17]
imul r11, rdi
xor r11, rdx
imul r11, rdi
and r11, r9
shl r11, 4
add r11, qword [0x1802d02e8]
mov r9, qword [r11]
cmp r9, rbx
jne 0x1801041eb
mov qword [r11], rax
mov qword [r11 + 8], rax
jmp 0x180104263
mov rdx, qword [r11 + 8]
mov r8, qword [rax + 0x10]
cmp r8, qword [rdx + 0x10]
jne 0x180104228
mov r10, qword [rdx]
cmp r10, rax
je 0x180104222
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
mov qword [r11 + 8], rax
jmp 0x180104263
cmp r9, rdx
je 0x18010423f
nop dword [rax]
mov rdx, qword [rdx + 8]
cmp r8, qword [rdx + 0x10]
je 0x180104277
cmp r9, rdx
jne 0x180104230
mov r10, qword [rax + 8]
mov qword [r10], rcx
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], rax
mov qword [rdx + 8], r9
mov qword [rcx + 8], r10
mov qword [rax + 8], r8
mov qword [r11], rax
mov rax, rcx
cmp rcx, rbx
je 0x18010429d
mov r9, qword [0x1802d0300]
jmp 0x180104170
mov r10, qword [rdx]
mov r9, qword [rax + 8]
mov qword [r9], rcx
mov r8, qword [rcx + 8]
mov qword [r8], r10
mov rdx, qword [r10 + 8]
mov qword [rdx], rax
mov qword [r10 + 8], r8
mov qword [rcx + 8], r9
mov qword [rax + 8], rdx
jmp 0x180104263
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
lea rcx, str.invalid_hash_bucket_count
call fcn.1801120c4
int3
Function at 0x18010fb30
Capabilities:
Get system information on windows

Disassembly:
mov qword [rsp + 0x20], rsi
push rdi
push r14
push r15
sub rsp, 0x80
mov rdi, rcx
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov r14, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x30]
cmp rdi, 0x40000000
jbe 0x18010fb70
lea rax, [rdi - 0x40000000]
cmp r14, rax
cmovb r14, rax
mov rsi, qword [0x1802d0500]
lea r15, [rdi + 0x40000000]
cmp rcx, r15
cmovbe r15, rcx
sub r15, 0xfff
test rsi, rsi
je 0x18010fbae
cmp rsi, r14
jb 0x18010fba6
cmp rsi, r15
jae 0x18010fba6
cmp qword [rsi + 8], 0
jne 0x18010fd77
mov rsi, qword [rsi]
test rsi, rsi
jne 0x18010fb91
mov qword [rsp + 0xa0], rbx
mov rbx, rdi
mov qword [rsp + 0xa8], rbp
mov qword [rsp + 0xb0], r12
mov r12d, 0x40
cmp rdi, r14
jb 0x18010fc42
nop dword [rax]
nop dword [rax + rax]
mov ebp, dword [rsp + 0x48]
mov rax, rbx
xor edx, edx
div rbp
sub rbx, rdx
sub rbx, rbp
cmp rbx, r14
jb 0x18010fc39
nop word [rax + rax]
mov r8d, 0x30
lea rdx, [rsp + 0x50]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18010fc39
cmp dword [rsp + 0x70], 0x10000
je 0x18010fcbb
mov rbx, qword [rsp + 0x58]
cmp rbx, rbp
jb 0x18010fc39
sub rbx, rbp
cmp rbx, r14
jae 0x18010fc00
test rsi, rsi
jne 0x18010fd20
cmp rdi, r15
ja 0x18010fd5f
nop dword [rax + rax]
mov ebp, dword [rsp + 0x48]
xor edx, edx
mov rax, rdi
mov ebx, ebp
div rbp
mov eax, ebp
sub rax, rdx
add rax, rdi
mov rdi, rax
cmp rax, r15
ja 0x18010fd5f
mov r8d, 0x30
lea rdx, [rsp + 0x50]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18010fd5f
cmp dword [rsp + 0x70], 0x10000
je 0x18010fcf1
xor edx, edx
lea edi, [rbp - 1]
add rdi, qword [rsp + 0x68]
add rdi, qword [rsp + 0x50]
mov rax, rdi
div rbx
sub rdi, rdx
cmp rdi, r15
jbe 0x18010fc72
jmp 0x18010fd5f
test rbx, rbx
je 0x18010fc39
mov r9d, r12d
mov edx, 0x1000
mov r8d, 0x3000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rsi, rax
test rax, rax
jne 0x18010fd20
cmp rbx, r14
jae 0x18010fbe0
jmp 0x18010fc42
test rdi, rdi
je 0x18010fd5f
mov r9d, r12d
mov edx, 0x1000
mov r8d, 0x3000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rsi, rax
test rax, rax
jne 0x18010fd20
cmp rdi, r15
jbe 0x18010fc50
jmp 0x18010fd5f
xor edx, edx
lea rcx, [rsi + 0x40]
mov dword [rsi + 0x10], edx
nop dword [rax]
mov qword [rcx], rdx
mov rax, rcx
mov qword [rsi + 8], rcx
add r12, 0x40
add rcx, 0x40
mov rdx, rax
cmp r12, 0xfc0
jbe 0x18010fd30
mov rax, qword [0x1802d0500]
mov qword [rsi], rax
mov qword [0x1802d0500], rsi
mov r12, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xa8]
mov rbx, qword [rsp + 0xa0]
mov rax, rsi
mov rsi, qword [rsp + 0xb8]
add rsp, 0x80
pop r15
pop r14
pop rdi
ret
Function at 0x18010ff40
Capabilities:
Enumerate threads

Disassembly:
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x1802ad098]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rdi, rcx
xor esi, esi
xor edx, edx
lea ecx, [rsi + 4]
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rbp, rax
cmp rax, 0xffffffffffffffff
je 0x18011008f
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_Thread32First]
test eax, eax
je 0x180110086
mov esi, 1
mov qword [rsp + 0x68], rbx
cmp dword [rsp + 0x20], 0x10
jb 0x18011003c
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rsp + 0x2c], eax
jne 0x18011003c
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rsp + 0x28], eax
je 0x18011003c
mov rdx, qword [rdi]
test rdx, rdx
jne 0x18010fffd
mov rcx, qword [0x1802cfca0]
mov r8d, 0x200
mov dword [rdi + 8], 0x80
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rdi], rax
mov rdx, rax
test rax, rax
je 0x180110065
lea rbx, [rdi + 0xc]
jmp 0x180110031
mov eax, dword [rdi + 8]
lea rbx, [rdi + 0xc]
cmp dword [rbx], eax
jb 0x180110031
mov rcx, qword [0x1802cfca0]
add eax, eax
mov r9d, eax
mov r8, rdx
shl r9, 2
xor edx, edx
mov dword [rdi + 8], eax
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rdx, rax
test rax, rax
je 0x180110065
mov qword [rdi], rax
mov ecx, dword [rbx]
mov eax, dword [rsp + 0x28]
mov dword [rdx + rcx*4], eax
inc dword [rbx]
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_Thread32Next]
test eax, eax
jne 0x18010ffa3
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x180110081
mov r8, qword [rdi]
xor esi, esi
test r8, r8
je 0x180110081
mov rcx, qword [0x1802cfca0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rdi], rsi
mov rbx, qword [rsp + 0x68]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180114c00
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret
Function at 0x1801100b0
Capabilities:
Suspend thread

Disassembly:
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x20
mov ebp, r8d
mov qword [rcx], 0
mov r14d, edx
mov qword [rcx + 8], 0
mov rdi, rcx
call fcn.18010ff40
test eax, eax
jne 0x1801100f7
mov eax, 9
mov rbp, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
cmp qword [rdi], 0
je 0x18011016e
mov qword [rsp + 0x30], rbx
xor ebx, ebx
cmp dword [rdi + 0xc], ebx
jbe 0x180110156
mov qword [rsp + 0x38], rsi
nop
mov r8, qword [rdi]
xor edx, edx
mov r8d, dword [r8 + rbx*4]
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x18011014a
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov r8d, ebp
mov edx, r14d
mov rcx, rsi
call fcn.18010fd90
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc ebx
cmp ebx, dword [rdi + 0xc]
jb 0x180110110
mov rsi, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
xor eax, eax
mov rbp, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
mov rbp, qword [rsp + 0x40]
xor eax, eax
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret

Function at 0x180110190
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
mov eax, ecx
lea r9, [rsp + 0x30]
imul rbx, rax, 0x38
mov esi, edx
add rbx, qword [0x1802d04f0]
mov r8, qword [rbx]
movzx eax, byte [rbx + 0x20]
and al, 1
movzx ecx, al
lea rdi, [r8 - 5]
cmove rdi, r8
mov r8d, 0x40
lea rbp, [rcx*2 + 5]
mov rcx, rdi
mov rdx, rbp
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x1801101f4
mov eax, 0xa
jmp 0x180110287
test esi, esi
je 0x180110216
mov byte [rdi], 0xe9
mov eax, dword [rbx + 8]
sub eax, edi
sub eax, 5
mov dword [rdi + 1], eax
test byte [rbx + 0x20], 1
je 0x180110239
mov rax, qword [rbx]
mov word [rax], 0xf9eb
jmp 0x180110239
mov eax, dword [rbx + 0x18]
test byte [rbx + 0x20], 1
mov dword [rdi], eax
je 0x180110232
movzx eax, word [rbx + 0x1c]
mov word [rdi + 4], ax
movzx eax, byte [rbx + 0x1e]
mov byte [rdi + 6], al
jmp 0x180110239
movzx eax, byte [rbx + 0x1c]
mov byte [rdi + 4], al
mov r8d, dword [rsp + 0x30]
lea r9, [rsp + 0x30]
mov rdx, rbp
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, rbp
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
movzx ecx, sil
shl sil, 2
add cl, cl
xor cl, byte [rbx + 0x20]
and cl, 2
xor cl, byte [rbx + 0x20]
xor sil, cl
and sil, 4
xor sil, cl
mov byte [rbx + 0x20], sil
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x1801102a0
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
sub rsp, 0x30
mov r8d, dword [0x1802d04fc]
mov esi, ecx
xor ecx, ecx
mov ebx, ecx
test r8d, r8d
je 0x1801102e7
mov rax, qword [0x1802d04f0]
add rax, 0x20
nop word [rax + rax]
movzx edx, byte [rax]
shr edx, 1
and edx, 1
cmp edx, esi
jne 0x1801102f4
inc ebx
add rax, 0x38
cmp ebx, r8d
jb 0x1801102d0
mov eax, ecx
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rsi
ret
cmp ebx, 0xffffffff
je 0x1801102e7
test esi, esi
mov qword [rsp + 0x48], rdi
mov edx, 0xffffffff
setne cl
mov r8d, ecx
lea rcx, [rsp + 0x20]
call fcn.1801100b0
mov edi, eax
test eax, eax
jne 0x1801103dd
mov r9d, dword [0x1802d04fc]
cmp ebx, r9d
jae 0x18011036c
nop dword [rax + rax]
mov ecx, ebx
imul rdx, rcx, 0x38
mov rcx, qword [0x1802d04f0]
movzx r8d, byte [rdx + rcx + 0x20]
shr r8d, 1
and r8d, 1
cmp r8d, esi
je 0x180110365
mov edx, esi
mov ecx, ebx
call fcn.180110190
mov edi, eax
test eax, eax
jne 0x18011036c
mov r9d, dword [0x1802d04fc]
inc ebx
cmp ebx, r9d
jb 0x180110330
cmp qword [rsp + 0x20], 0
je 0x1801103db
mov eax, dword [rsp + 0x2c]
test eax, eax
je 0x1801103c7
mov rbx, qword [rsp + 0x20]
mov qword [rsp + 0x40], rbp
mov ebp, eax
nop dword [rax + rax]
mov r8d, dword [rbx]
xor edx, edx
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x1801103b8
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
add rbx, 4
sub rbp, 1
jne 0x180110390
mov rbp, qword [rsp + 0x40]
mov r8, qword [rsp + 0x20]
xor edx, edx
mov rcx, qword [0x1802cfca0]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, edi
mov rdi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x50]
add rsp, 0x30
pop rsi
ret
Function at 0x180112ab8
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rdi, rdx
lea r8, [rsp + 0x60]
mov ebx, ecx
mov edx, 0x20000001
lea rcx, str._x_sys_default_locale
mov r9d, 2
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
mov r8d, ebx
mov ecx, 0x1300
neg eax
sbb r9d, r9d
and qword [rsp + 0x30], 0
and r9d, dword [rsp + 0x60]
xor edx, edx
and dword [rsp + 0x28], 0
mov dword [rsp + 0x60], r9d
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, eax
test eax, eax
je 0x180112b3c
mov r8, qword [rdi]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, [0x1801d1e40]
cmp byte [rcx + rax], 0
je 0x180112b3c
dec r8
sub rdx, 1
jne 0x180112b22
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret

Function at 0x180121140
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x30
xor edi, edi
mov esi, edx
mov rbp, rcx
test r8, r8
jne 0x180121177
call fcn.18011c390
mov dword [rax], 0x16
call fcn.18011d514
xor eax, eax
jmp 0x180121205
mov rdx, r9
mov rcx, r8
call fcn.1801210dc
mov rbx, rax
test rax, rax
je 0x180121202
lea rax, [rsp + 0x50]
mov rdx, rsi
mov qword [rsp + 0x28], rax
lea r8, [0x180121008]
mov eax, dword [rsp + 0x60]
mov r9, rbx
mov rcx, rbp
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rdx, rax
test rax, rax
jne 0x1801211ef
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.18011c304
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x1801211d6
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1801211e5
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, rbx
call fcn.18012f3b0
jmp 0x180121202
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1801211ff
mov eax, dword [rsp + 0x50]
mov dword [rcx], eax
mov rdi, rdx
mov rax, rdi
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
Function at 0x18012561c
Capabilities:
Get disk information

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x250
mov rax, qword [0x1802ad098]
xor rax, rsp
mov qword [rsp + 0x240], rax
lea rdx, [0x1801d46d8]
mov rbp, rcx
call fcn.1801335f4
xor edi, edi
test rax, rax
je 0x180125702
mov ebx, edi
call fcn.18011c390
mov r14d, dword [rax]
call fcn.18011c390
mov r8d, 0x104
lea rcx, [rsp + 0x30]
mov rdx, rbp
mov dword [rax], edi
call fcn.180133540
mov rsi, rax
test rax, rax
je 0x180125693
call fcn.18011c390
mov dword [rax], r14d
jmp 0x1801256bd
call fcn.18011c390
cmp dword [rax], 0x22
jne 0x1801256fa
call fcn.18011c390
xor r8d, r8d
mov rdx, rbp
xor ecx, ecx
mov dword [rax], r14d
call fcn.180133540
mov rbx, rax
mov rsi, rax
test rax, rax
je 0x1801256fa
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], di
jne 0x1801256c1
cmp rax, 3
je 0x1801256dc
mov rcx, rsi
call fcn.180125578
test al, al
je 0x1801256ed
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
cmp eax, 1
jbe 0x1801256ed
mov dil, 1
mov rcx, rbx
call fcn.18011d17c
mov al, dil
jmp 0x180125704
mov rcx, rbx
call fcn.18011d17c
xor al, al
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.180114c00
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret

Function at 0x1801271a8
Capabilities:
Create directory

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
mov rbp, rsp
sub rsp, 0x70
mov rbx, rcx
test rcx, rcx
jne 0x1801271c7
call fcn.1801364e4
jmp 0x18012727c
and qword [rbp - 0x30], 0
lea rcx, [rbp - 0x50]
and qword [rbp - 0x28], 0
xor edx, edx
and qword [rbp - 0x20], 0
and qword [rbp - 0x18], 0
and qword [rbp - 0x10], 0
mov byte [rbp - 8], 0
call fcn.18011baa0
mov rax, qword [rbp - 0x48]
mov r9d, 0xfde9
cmp dword [rax + 0xc], r9d
jne 0x180127212
cmp byte [rbp - 0x38], 0
je 0x180127247
mov rax, qword [rbp - 0x50]
and dword [rax + 0x3a8], 0xfffffffd
jmp 0x180127247
call fcn.18012fa50
test eax, eax
jne 0x180127233
cmp byte [rbp - 0x38], al
je 0x18012722b
mov rax, qword [rbp - 0x50]
and dword [rax + 0x3a8], 0xfffffffd
mov r9d, 1
jmp 0x180127247
cmp byte [rbp - 0x38], 0
je 0x180127244
mov rax, qword [rbp - 0x50]
and dword [rax + 0x3a8], 0xfffffffd
xor r9d, r9d
lea r8, [rbp + 0x10]
mov rcx, rbx
lea rdx, [rbp - 0x30]
call fcn.18011be74
test eax, eax
je 0x180127260
or ebx, 0xffffffff
jmp 0x18012726b
mov rcx, qword [rbp - 0x20]
call fcn.1801364e4
mov ebx, eax
cmp byte [rbp - 8], 0
je 0x18012727a
mov rcx, qword [rbp - 0x20]
call fcn.18012f3b0
mov eax, ebx
mov rbx, qword [rsp + 0x88]
add rsp, 0x70
pop rbp
ret
Function at 0x180131d7c
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x20
mov edx, dword [rcx + 0x14]
nop
shr edx, 3
test dl, 1
je 0x180131d92
mov al, 1
jmp 0x180131df2
mov eax, dword [rcx + 0x14]
nop
test al, 0xc0
je 0x180131da3
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
je 0x180131df0
mov ecx, dword [rcx + 0x18]
nop
call fcn.180133c90
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x180131df0
mov r9d, 1
lea r8, [rsp + 0x38]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x180131df0
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x180131df0
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
sete al
jmp 0x180131df2
xor al, al
add rsp, 0x20
pop rbx
ret