joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140038590
Capabilities:
Encode data using xor

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x5f]
sub rsp, 0xb0
mov rax, qword [0x140069008]
xor rax, rsp
mov qword [rbp + 0x2f], rax
mov rdi, rcx
mov qword [rbp - 0x31], rcx
lea rsi, [rbp + 0x5f]
movabs rcx, 0x7a5db90d33787107
mov qword [rbp - 0x19], rcx
mov qword [rbp - 0x11], rsi
mov r13, qword [rsi]
xor r13, rcx
mov qword [rbp - 0x29], r13
mov qword [rbp - 0x21], r13
xor r14d, r14d
mov qword [rsi], r14
mov qword [rdi], r14
mov qword [rdi + 8], r14
mov qword [rdi + 0x10], r14
mov qword [rdi + 0x18], r14
mov qword [rdi + 0x20], r14
mov qword [rdi + 0x28], r14
mov rdx, qword [0x140069840]
add rdx, 0xe2ced18
mov qword [rbp - 0x51], rcx
mov qword [rbp - 0x49], rsi
mov rbx, qword [rsi]
mov rax, rbx
xor rax, rcx
mov qword [rbp - 0x59], rax
mov qword [rsi], r14
mov qword [rbp - 0x41], r14
lea r9d, [r14 + 8]
lea r8, [rbp - 0x41]
lea rcx, [0x140069d60]
call fcn.14003a82c
mov r15, qword [rbp - 0x41]
mov qword [rsi], rbx
mov rax, qword [0x140069840]
add rax, 0xe2cecd8
test r15, r15
cmove r15, rax
lea rsi, [rbp - 9]
lea r12d, [r14 + 7]
lea r13, [rbp + 0x5f]
movabs rdi, 0x7a5db90d33787107
mov qword [rbp - 0x51], rdi
mov qword [rbp - 0x49], r13
mov rbx, qword [r13]
mov rax, rbx
xor rax, rdi
mov qword [rbp - 0x59], rax
and qword [r13], 0
and qword [rbp - 0x39], 0
lea rdx, [r14 + r15]
mov r9d, 8
lea r8, [rbp - 0x39]
lea rcx, [0x140069d60]
call fcn.14003a82c
mov rax, qword [rbp - 0x39]
mov qword [r13], rbx
mov qword [rsi], rax
lea r14, [r14 + 8]
lea rsi, [rsi + 8]
sub r12, 1
jne 0x140038678
movdqa xmm2, xmmword [0x140044d90]
movdqu xmm0, xmmword [rbp - 9]
pxor xmm2, xmm0
movabs rax, 0x4ef1f15dfe2d977f
xor qword [rbp + 7], rax
movdqa xmm3, xmmword [0x140044b10]
movdqu xmm0, xmmword [rbp + 0xf]
pxor xmm3, xmm0
movabs rax, 0x4ef29a7e813efc5d
xor qword [rbp + 0x1f], rax
movabs rax, 0x4e1772384c14291f
xor qword [rbp + 0x27], rax
movaps xmm1, xmm2
unpckhpd xmm1, xmm2
movsd xmm0, qword [rbp + 7]
movsd qword [rbp - 0x49], xmm0
unpcklpd xmm1, xmm2
mov rdi, qword [rbp - 0x31]
movups xmmword [rdi], xmm1
movsd xmm0, qword [rbp - 0x49]
movsd qword [rdi + 0x10], xmm0
movaps xmm1, xmm3
unpckhpd xmm1, xmm3
movsd xmm0, qword [rbp + 0x1f]
movsd qword [rbp - 0x49], xmm0
unpcklpd xmm1, xmm3
movups xmmword [rdi + 0x18], xmm1
movsd xmm0, qword [rbp - 0x49]
movsd qword [rdi + 0x28], xmm0
movss xmm1, dword [rbp + 0x27]
movss dword [rdi + 0x30], xmm1
mov r13, qword [rbp - 0x29]
movabs rax, 0x7a5db90d33787107
xor r13, rax
lea rax, [rbp + 0x5f]
mov qword [rax], r13
mov rax, rdi
mov rcx, qword [rbp + 0x2f]
xor rcx, rsp
call fcn.14003ca20
lea r11, [rsp + 0xb0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
Function at 0x1400387b4
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
mov rbp, rsp
sub rsp, 0x60
mov rax, qword [0x140069008]
xor rax, rsp
mov qword [rbp - 8], rax
mov edi, r8d
mov rsi, rdx
xor eax, eax
cmp ecx, 0x7b
ja 0x1400387f4
movsxd rax, ecx
lea rcx, [0x140067a70]
mov rax, qword [rcx + rax*8]
and qword [rbp - 0x28], 0
and qword [rbp - 0x18], 0
mov edx, 0xf
mov qword [rbp - 0x10], rdx
mov byte [rbp - 0x28], 0
test rax, rax
jne 0x140038836
mov qword [rbp - 0x18], 0xa
movsd xmm0, qword [str.Select_Key]
movsd qword [rbp - 0x28], xmm0
movzx eax, word [0x140044428]
mov word [rbp - 0x20], ax
mov byte [rbp - 0x1e], 0
jmp 0x140038846
mov rdx, rax
lea rcx, [rbp - 0x28]
call fcn.140039c14
mov rdx, qword [rbp - 0x10]
cmp edi, 1
jne 0x140038896
lea eax, [rdi + 0xc]
cmp rdx, rax
jb 0x14003887c
lea rbx, [rbp - 0x28]
cmp rdx, 0x10
cmovae rbx, qword [rbp - 0x28]
mov qword [rbp - 0x18], rax
mov r8d, eax
lea rdx, str.Press_the_key
mov rcx, rbx
call sub.VCRUNTIME140.dll_memmove
mov byte [rbx + 0xd], 0
jmp 0x140038892
lea r9, str.Press_the_key
xor r8d, r8d
mov rdx, rax
lea rcx, [rbp - 0x28]
call fcn.1400329f0
mov rdx, qword [rbp - 0x10]
movss xmm0, dword [0x140044b08]
movss dword [rbp - 0x30], xmm0
movss xmm1, dword [0x14003fd34]
movss dword [rbp - 0x2c], xmm1
lea rcx, [rbp - 0x28]
cmp rdx, 0x10
cmovae rcx, qword [rbp - 0x28]
lea rdx, [rbp - 0x30]
call fcn.140025964
test al, al
je 0x1400388e9
test edi, edi
jne 0x1400388e9
and qword [rsp + 0x28], 0
and dword [rsp + 0x20], edi
xor r9d, r9d
mov r8, rsi
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0x10
jb 0x140038927
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140038922
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140038922
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14003c4d0
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.14003ca20
lea r11, [rsp + 0x60]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x140038974
Capabilities:
Terminate process

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rdi
push r14
sub rsp, 0x60
lea r14, [rsp + 0x68]
movabs rcx, 0x7a5db90d33787107
mov qword [r11 - 0x20], rcx
mov qword [r11 - 0x18], r14
mov rdi, qword [r14]
mov rax, rdi
xor rax, rcx
mov qword [r11 - 0x28], rax
and qword [r14], 0
lea rdx, [0x140069a80]
mov ecx, 0x20
call sub.d3d9.dll_Direct3DCreate9Ex
test eax, eax
js 0x140038b16
xor edx, edx
lea r8d, [rdx + 0x40]
lea rbx, [0x1400699f0]
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
mov eax, dword [0x140069854]
mov dword [0x1400699f0], eax
mov eax, dword [0x140069860]
mov dword [0x1400699f4], eax
mov dword [0x1400699f8], 0x15
and dword [0x140069a00], 0
mov dword [0x140069a20], 0x50
mov r8d, 1
mov dword [0x140069a08], r8d
mov dword [0x140069a1c], r8d
mov r9, qword [0x140069e58]
mov qword [0x140069a10], r9
mov dword [0x140069a18], r8d
mov rcx, qword [0x140069a80]
mov rax, qword [rcx]
lea rdx, [0x140069e60]
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x28], rbx
mov dword [rsp + 0x20], 0x20
xor edx, edx
call qword [rax + 0x80]
test eax, eax
js 0x140038b16
mov qword [rsp + 0x28], 0x14
mov qword [rsp + 0x20], 0x10
mov edx, 0x1548
mov r9d, 8
mov r8d, 0x3a0
lea rcx, str.1.67_WIP
call fcn.140007778
xor ecx, ecx
call fcn.1400073b4
call fcn.1400094ac
mov rbx, rax
mov rcx, qword [0x140069e58]
call fcn.14001faa8
mov rcx, qword [0x140069e60]
call fcn.14001f170
and qword [rsp + 0x28], 0
and qword [rsp + 0x20], 0
movss xmm3, dword [0x14003fd2c]
mov r8d, 0x1b44c
lea rdx, [0x14004c170]
mov rcx, qword [rbx + 0x98]
call fcn.140013c70
mov qword [0x140069920], rax
mov rcx, qword [0x140069a80]
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
mov qword [r14], rdi
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x60
pop r14
ret
mov ecx, 3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
Function at 0x140038f04
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0xb0
lea r14, [rsp + 0xc8]
xor ebp, ebp
mov rbx, qword [r14]
xor ecx, ecx
mov qword [r14], rbp
call qword [sym.imp.USER32.dll_GetSystemMetrics]
lea ecx, [rbp + 1]
mov edi, eax
call qword [sym.imp.USER32.dll_GetSystemMetrics]
xor r9d, r9d
mov qword [rsp + 0x28], rbp
lea r8, [0x1400391c8]
mov dword [rsp + 0x20], ebp
xor edx, edx
xor ecx, ecx
mov esi, eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
xor ecx, ecx
mov dword [rsp + 0x64], ebp
mov qword [rsp + 0x70], rbp
mov qword [rsp + 0x80], rbp
mov qword [rsp + 0x98], rbp
call qword [sym.imp.GDI32.dll_GetStockObject]
mov edx, 0x7f00
xor ecx, ecx
mov qword [rsp + 0x90], rax
call qword [sym.imp.USER32.dll_LoadCursorA]
lea r15, str.notepad
mov qword [rsp + 0x78], rbp
mov qword [rsp + 0x88], rax
lea rcx, [rsp + 0x60]
lea rax, [0x1400393c8]
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0x68], rax
mov dword [rsp + 0x60], 3
call qword [sym.imp.USER32.dll_RegisterClassA]
test ax, ax
jne 0x140038ff6
lea r9d, [rbp + 0x10]
xor ecx, ecx
lea r8, str.Error
lea rdx, str.Failed_to_register_window_class.
call qword [sym.imp.USER32.dll_MessageBoxA]
jmp 0x140039081
mov qword [rsp + 0x58], rbp
mov r9d, 0x80000000
mov qword [rsp + 0x50], rbp
xor r8d, r8d
mov qword [rsp + 0x48], rbp
mov rdx, r15
mov qword [rsp + 0x40], rbp
xor ecx, ecx
mov dword [rsp + 0x38], esi
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], ebp
call qword [sym.imp.USER32.dll_CreateWindowExA]
mov qword [0x140069e58], rax
test rax, rax
je 0x140039081
mov edx, 5
mov rcx, rax
call qword [sym.imp.USER32.dll_ShowWindow]
mov rcx, qword [0x140069e58]
lea rdx, [0x140044390]
call qword [sym.imp.dwmapi.dll_DwmExtendFrameIntoClientArea]
mov rcx, qword [0x140069e58]
mov edx, 0xffffffec
mov r8d, 0x800a0
call qword [sym.imp.USER32.dll_SetWindowLongA]
mov rcx, qword [0x140069e58]
call qword [sym.imp.USER32.dll_UpdateWindow]
lea r11, [rsp + 0xb0]
mov qword [r14], rbx
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
Function at 0x1400396f0
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
lea r10, [rcx + 0x9c4]
mov r9, rcx
mov eax, dword [r10]
mov r11d, 0xe3
lea r8, [r10 + 4]
mov edx, dword [r8]
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 [r10 + 0x634]
xor ecx, edx
mov dword [r10 - 0x9c0], ecx
lea r10, [r8]
sub r11, 1
jne 0x140039703
lea r10, [r9 + 0xd50]
mov r11d, 0x18c
mov eax, dword [r10]
lea r8, [r10 + 4]
mov edx, dword [r8]
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 [r10 - 0xd4c]
xor ecx, edx
mov dword [r10 - 0x9c0], ecx
lea r10, [r8]
sub r11, 1
jne 0x14003974e
mov edx, dword [r9 + 0x1380]
xor edx, dword [r9 + 4]
btr edx, 0x1f
xor edx, dword [r9 + 0x1380]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
xor ecx, edx
mov dword [r9 + 0x9c0], ecx
and dword [r9], 0
ret

Function at 0x140039da8
Capabilities:
Enumerate processes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x160
mov rax, qword [0x140069008]
xor rax, rsp
mov qword [rsp + 0x150], rax
lea r14, [rsp + 0x178]
mov rbp, rdx
mov rsi, qword [r14]
lea rcx, [rsp + 0x24]
xor ebx, ebx
xor edx, edx
mov r8d, 0x12c
mov qword [r14], rbx
call sub.VCRUNTIME140.dll_memset
xor edx, edx
lea ecx, [rbx + 2]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x130
mov rcx, rax
mov rdi, rax
call sub.KERNEL32.dll_Process32First
test eax, eax
je 0x140039e47
mov rdx, rbp
lea rcx, [rsp + 0x4c]
call qword [sym.imp.KERNEL32.dll_lstrcmpiA]
mov rcx, rdi
test eax, eax
je 0x140039e3b
lea rdx, [rsp + 0x20]
call sub.KERNEL32.dll_Process32Next
jmp 0x140039e16
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [rsp + 0x28]
jmp 0x140039e50
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [r14], rsi
mov eax, ebx
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.14003ca20
lea r11, [rsp + 0x160]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret

Function at 0x140039e80
Capabilities:
Enumerate gui resources

Disassembly:
sub rsp, 0x38
and qword [rsp + 0x20], 0
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x28], ecx
lea rcx, [0x1400321d8]
call qword [sym.imp.USER32.dll_EnumWindows]
test eax, eax
jne 0x140039eb9
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xffffffff
jne 0x140039eb9
mov rax, qword [rsp + 0x20]
test rax, rax
jne 0x140039ebb
xor eax, eax
add rsp, 0x38
ret
Function at 0x14080a108
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.14080a28f
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, 0x80
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x14080a139
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x14080a11f
add dl, dl
jne 0x14080a146
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x14080a1a6
xor eax, eax
add dl, dl
jne 0x14080a155
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x14080a25d
add dl, dl
jne 0x14080a166
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14080a173
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14080a180
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14080a18d
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x14080a19a
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x14080a12e
mov eax, 1
add dl, dl
jne 0x14080a1b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x14080a1c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x14080a1ab
sub eax, ebx
mov ebx, 1
jne 0x14080a1fc
mov ecx, 1
add dl, dl
jne 0x14080a1de
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x14080a1eb
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x14080a1d3
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14080a12e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x14080a218
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x14080a225
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x14080a20d
cmp eax, 0x7d00
jae 0x14080a24b
cmp eax, 0x500
jb 0x14080a246
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14080a12e
cmp eax, 0x7f
ja 0x14080a24e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x14080a12e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x14080a282
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x14080a12e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x180001bd0
Capabilities:
Get common file path

Disassembly:
sub rsp, 0x358
mov rax, qword [0x180011058]
xor rax, rsp
mov qword [rsp + 0x340], rax
lea rcx, [rsp + 0x20]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea rdx, str._version.dll
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_lstrcatA]
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov r11, rax
mov qword [0x1800146a8], rax
test rax, rax
jne 0x180001c63
lea r8, [rsp + 0x20]
lea rdx, [0x18000cf68]
lea rcx, [rsp + 0x130]
call qword [sym.imp.USER32.dll_wsprintfA]
lea r8, [0x18000cf88]
lea rdx, [rsp + 0x130]
mov r9d, 0x10
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
mov r11, qword [0x1800146a8]
xor eax, eax
test r11, r11
setne al
mov rcx, qword [rsp + 0x340]
xor rcx, rsp
call fcn.180004310
add rsp, 0x358
ret
Function at 0x1800025a0
Capabilities:
Parse pe header

Disassembly:
push rbx
sub rsp, 0x50
mov rbx, rdx
mov r8d, 0x30
lea rdx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
nop
mov eax, 0x5a4d
mov rcx, qword [rsp + 0x28]
cmp word [rcx], ax
je 0x1800025ce
xor al, al
jmp 0x18000260c
movsxd rdx, dword [rcx + 0x3c]
cmp dword [rdx + rcx], 0x4550
je 0x1800025df
xor al, al
jmp 0x18000260c
mov r8d, dword [rdx + rcx + 0xe8]
lea rax, [r8 + rcx]
cmp rbx, rax
jb 0x180002606
mov eax, dword [rdx + rcx + 0xec]
add rax, r8
add rax, rcx
cmp rbx, rax
jae 0x180002606
mov al, 1
jmp 0x18000260c
xor al, al
jmp 0x18000260c
add rsp, 0x50
pop rbx
ret

Function at 0x180002660
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x50
movzx eax, cx
mov rdi, rdx
mov rbx, rcx
test rax, rax
je 0x180002680
lea rbx, [rax + rcx - 0x10000]
mov qword [rsp + 0x60], rsi
cmp rbx, rdx
jae 0x18000274f
mov esi, 0x80010000
nop word [rax + rax]
lea rax, [rbx - 0x50000000]
cmp rax, 0x30000000
ja 0x1800026b7
mov rbx, rsi
jmp 0x180002746
xor eax, eax
lea rdx, [rsp + 0x20]
mov rcx, rbx
lea r8d, [rax + 0x30]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18000274f
cmp dword [rsp + 0x40], 0x10000
mov rcx, qword [rsp + 0x38]
jne 0x18000272e
cmp rcx, 0x10000
jb 0x18000272e
mov edx, 0x10000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x180002751
add rbx, 0x10000
jmp 0x180002746
mov rbx, qword [rsp + 0x20]
add rbx, rcx
movzx eax, bx
test rax, rax
je 0x180002746
lea rbx, [rbx + rax - 0x10000]
cmp rbx, rdi
jb 0x1800026a0
xor eax, eax
mov rsi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret

Function at 0x180002770
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
lea rbx, [rdx - 0x10000]
mov rdi, rcx
movzx eax, bx
test rax, rax
je 0x18000278f
sub rbx, rax
cmp rbx, rcx
jbe 0x18000284d
nop dword [rax + rax]
lea rax, [rbx - 0x50000000]
cmp rax, 0x30000000
ja 0x1800027b9
mov ebx, 0x4fff0000
jmp 0x180002844
xor eax, eax
lea rdx, [rsp + 0x20]
mov rcx, rbx
lea r8d, [rax + 0x30]
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x18000284d
cmp dword [rsp + 0x40], 0x10000
jne 0x18000282d
cmp qword [rsp + 0x38], 0x10000
jb 0x18000282d
mov edx, 0x10000
mov r9d, 0x40
mov r8d, 0x3000
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
test rax, rax
jne 0x18000284f
sub rbx, 0x10000
jmp 0x180002844
mov rbx, qword [rsp + 0x28]
add rbx, 0xffffffffffff0000
movzx eax, bx
test rax, rax
je 0x180002844
sub rbx, rax
cmp rbx, rdi
ja 0x1800027a0
xor eax, eax
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x180002860
Capabilities:
Hook routines via microsoft detours

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
sub rsp, 0x20
mov rbx, rcx
cmp rcx, 0x7ff80000
jbe 0x18000287f
lea rsi, [rcx - 0x7ff80000]
jmp 0x180002884
mov esi, 0x10000
mov qword [rsp + 0x38], rdi
cmp rcx, 0xffffffff80000000
jae 0x18000289b
lea rdi, [rcx + 0x7ff80000]
jmp 0x1800028a2
mov rdi, 0xfffffffffff80000
mov rdx, qword [0x180014758]
mov rax, qword [0x1800146c8]
mov qword [rsp + 0x30], rbp
test rdx, rdx
jne 0x1800028c9
test rax, rax
je 0x1800028e0
mov rdx, rax
mov qword [0x180014758], rax
mov rcx, qword [rdx + 0x10]
test rcx, rcx
je 0x1800028e0
cmp rcx, rsi
jb 0x1800028e0
cmp rcx, rdi
jbe 0x180002a18
mov rdx, rax
mov qword [0x180014758], rax
test rax, rax
je 0x18000291c
nop
test rdx, rdx
je 0x18000290c
mov rax, qword [rdx + 0x10]
test rax, rax
je 0x18000290c
cmp rax, rsi
jb 0x18000290c
cmp rax, rdi
jbe 0x180002a18
mov rdx, qword [rdx + 8]
mov qword [0x180014758], rdx
test rdx, rdx
jne 0x1800028f0
movzx eax, bx
sub rbx, rax
cmp rbx, 0x40000000
jbe 0x180002959
lea rcx, [rbx - 0x40000000]
mov rdx, rbx
call fcn.180002660
mov rdx, rax
test rax, rax
jne 0x1800029c0
lea rdx, [rbx - 0x40000000]
mov rcx, rsi
call fcn.180002770
mov rdx, rax
test rax, rax
jne 0x1800029c0
movabs rax, 0xffffffff40000000
cmp rbx, rax
jae 0x180002996
lea rdx, [rbx + 0x40000000]
mov rcx, rbx
call fcn.180002770
mov rdx, rax
test rax, rax
jne 0x1800029c0
lea rcx, [rbx + 0x40000000]
mov rdx, rdi
call fcn.180002660
mov rdx, rax
test rax, rax
jne 0x1800029c0
mov rdx, rbx
mov rcx, rsi
call fcn.180002770
mov rdx, rax
test rax, rax
jne 0x1800029c0
mov rdx, rdi
mov rcx, rbx
call fcn.180002660
mov rdx, rax
test rax, rax
je 0x180002a44
mov dword [rdx], 0x52727464
xor r8d, r8d
mov qword [0x180014758], rdx
mov qword [rdx + 0x10], r8
mov rax, qword [0x1800146c8]
lea rcx, [rdx + 0xffa8]
mov qword [rdx + 8], rax
mov qword [0x1800146c8], rdx
lea rax, [rdx + 0xff60]
mov r9d, 0x2a7
nop word [rax + rax]
mov qword [rcx], r8
mov r8, rax
sub rcx, 0x60
sub rax, 0x60
sub r9, 1
jne 0x180002a00
mov qword [rdx + 0x10], r8
mov rbx, qword [rdx + 0x10]
cmp rbx, rsi
jb 0x180002a44
cmp rbx, rdi
ja 0x180002a44
mov rcx, qword [rbx + 0x48]
mov qword [rdx + 0x10], rcx
mov edx, 0xcc
mov rcx, rbx
lea r8d, [rdx - 0x6c]
call fcn.180008050
mov rax, rbx
jmp 0x180002a46
xor eax, eax
mov rdi, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x30]
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop rsi
ret
Function at 0x180002a60
Capabilities:
Hook routines via microsoft detours

Disassembly:
push rbx
sub rsp, 0x20
mov rcx, qword [0x1800146c8]
lea rbx, [0x1800146c8]
test rcx, rcx
je 0x180002af1
mov qword [rsp + 0x30], rdi
xor edi, edi
cmp dword [rcx], 0x52727464
jne 0x180002ae0
lea r9, [rcx + 0x10000]
mov r8d, edi
lea rdx, [rcx + 0xa8]
nop dword [rax]
mov rax, qword [rdx]
test rax, rax
je 0x180002ab2
cmp rax, rcx
jb 0x180002ae0
cmp rax, r9
jae 0x180002ae0
inc r8d
add rdx, 0x60
cmp r8d, 0x2a9
jb 0x180002aa0
mov rax, qword [rcx + 8]
xor edx, edx
mov r8d, 0x8000
mov qword [rbx], rax
call qword [sym.imp.KERNEL32.dll_VirtualFree]
mov qword [0x180014758], rdi
jmp 0x180002ae4
lea rbx, [rcx + 8]
mov rcx, qword [rbx]
test rcx, rcx
jne 0x180002a80
mov rdi, qword [rsp + 0x30]
add rsp, 0x20
pop rbx
ret

Function at 0x180002b70
Capabilities:
Allocate or change rwx memory

Disassembly:
sub rsp, 0x28
cmp dword [0x180014830], 0
je 0x180002b87
mov eax, 0x10dd
add rsp, 0x28
ret
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r11d, eax
xor eax, eax
lock cmpxchg dword [0x180014830], r11d
jne 0x180002b7d
xor eax, eax
mov qword [rsp + 0x20], rbx
mov rbx, qword [0x1800146c8]
mov qword [0x180014848], rax
mov qword [0x180014840], rax
mov dword [0x180014834], eax
mov qword [0x180014838], rax
test rbx, rbx
je 0x180002bf2
nop dword [rax + rax]
lea r9, [rsp + 0x30]
mov edx, 0x10000
mov r8d, 0x40
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x180002bd0
xor eax, eax
mov rbx, qword [rsp + 0x20]
add rsp, 0x28
ret
Function at 0x180002c00
Capabilities:
Resume thread

Disassembly:
sub rsp, 0x28
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [0x180014830], eax
je 0x180002c1c
mov eax, 0x10dd
add rsp, 0x28
ret
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x20], rdi
mov rdi, qword [0x180014848]
xor ebp, ebp
test rdi, rdi
je 0x180002ca9
mov qword [rsp + 0x48], rsi
nop
mov rax, qword [rdi + 0x20]
mov r8d, dword [rdi + 0x28]
mov rcx, qword [rdi + 0x18]
movzx edx, byte [rax + 0x3e]
lea r9, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
cmp dword [rdi + 8], ebp
jne 0x180002c91
mov rsi, qword [rdi + 0x20]
test rsi, rsi
je 0x180002c91
xor edx, edx
mov rbx, rsi
mov rcx, rsi
lea r8d, [rdx + 0x60]
and rbx, 0xffffffffffff0000
call fcn.180008050
mov rax, qword [rbx + 0x10]
mov qword [rsi + 0x48], rax
mov qword [rbx + 0x10], rsi
mov qword [rdi + 0x20], rbp
mov rbx, qword [rdi]
mov rcx, rdi
call fcn.180004858
mov rdi, rbx
test rbx, rbx
jne 0x180002c40
mov rsi, qword [rsp + 0x48]
mov qword [0x180014848], rbp
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rbx, qword [0x1800146c8]
mov rdi, rax
test rbx, rbx
je 0x180002d04
nop word [rax + rax]
lea r9, [rsp + 0x30]
mov edx, 0x10000
mov r8d, 0x20
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov r8d, 0x10000
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x180002cd0
mov rdi, qword [0x180014840]
test rdi, rdi
je 0x180002d2d
mov rcx, qword [rdi + 8]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rbx, qword [rdi]
mov rcx, rdi
call fcn.180004858
mov rdi, rbx
test rbx, rbx
jne 0x180002d10
mov rdi, qword [rsp + 0x20]
mov rbx, qword [rsp + 0x38]
mov qword [0x180014840], rbp
mov dword [0x180014830], ebp
mov rbp, qword [rsp + 0x40]
xor eax, eax
add rsp, 0x28
ret