joyce8/EMBER2024-capa huggingface dataset:
Function at 0x18001d700
Capabilities:
Hash data with crc32

Disassembly:
push rdi
sub rsp, 0x40
mov r8, qword [0x1801197e8]
xor eax, eax
mov qword [rsp + 0x50], rbx
mov rbx, r8
mov qword [rsp + 0x60], rsi
mov rsi, rcx
mov qword [rsp + 0x20], rax
mov ecx, dword [r8 + 0x2ee4]
mov edi, dword [r8 + 0x2ee0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x34], rax
mov dword [rsp + 0x30], eax
mov byte [rsp + 0x3c], al
cmp edi, ecx
jne 0x18001d7e8
inc edi
test ecx, ecx
je 0x18001d75d
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x18001d762
mov eax, 8
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
jle 0x18001d7e8
mov qword [rsp + 0x58], rbp
test rbx, rbx
je 0x18001d77c
inc dword [r8 + 0x3b0]
movsxd rcx, edi
shl rcx, 5
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rdx, qword [rbx + 0x2ee8]
mov rbp, rax
test rdx, rdx
je 0x18001d7cf
movsxd r8, dword [rbx + 0x2ee0]
mov rcx, rax
shl r8, 5
call sub.VCRUNTIME140.dll_memcpy
mov rcx, qword [rbx + 0x2ee8]
test rcx, rcx
je 0x18001d7c9
mov rax, qword [0x1801197e8]
test rax, rax
je 0x18001d7c9
dec dword [rax + 0x3b0]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov r8, qword [0x1801197e8]
mov qword [rbx + 0x2ee8], rbp
mov rbp, qword [rsp + 0x58]
mov dword [rbx + 0x2ee4], edi
movsxd rcx, dword [rbx + 0x2ee0]
mov rax, qword [rbx + 0x2ee8]
movups xmm0, xmmword [rsp + 0x20]
shl rcx, 5
movups xmm1, xmmword [rsp + 0x30]
movups xmmword [rcx + rax], xmm0
movups xmmword [rcx + rax + 0x10], xmm1
movsxd rcx, dword [rbx + 0x2ee0]
mov rdi, rcx
shl rdi, 5
lea eax, [rcx + 1]
mov dword [rbx + 0x2ee0], eax
add rdi, qword [rbx + 0x2ee8]
mov rbx, 0xffffffffffffffff
cmp byte [rsi + rbx + 1], 0
lea rbx, [rbx + 1]
jne 0x18001d832
test r8, r8
je 0x18001d849
inc dword [r8 + 0x3b0]
lea rcx, [rbx + 1]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
lea r8, [rbx + 1]
mov rdx, rsi
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov rbx, qword [rsp + 0x50]
lea r8, [rsi + 1]
mov qword [rdi], rax
mov r10d, 0xffffffff
movzx r9d, byte [rsi]
mov edx, r10d
mov rsi, qword [rsp + 0x60]
test r9b, r9b
je 0x18001d8c0
lea r11, [0x1800e8730]
nop dword [rax]
cmp r9b, 0x23
jne 0x18001d8a3
cmp byte [r8], r9b
jne 0x18001d8a3
cmp byte [r8 + 1], r9b
cmove edx, r10d
movzx ecx, dl
movzx eax, r9b
movzx r9d, byte [r8]
xor rcx, rax
shr edx, 8
inc r8
xor edx, dword [r11 + rcx*4]
test r9b, r9b
jne 0x18001d890
not edx
mov rax, rdi
mov dword [rdi + 8], edx
add rsp, 0x40
pop rdi
ret
Function at 0x18001d8d0
Capabilities:
Hash data with crc32

Disassembly:
push r13
push r14
sub rsp, 0x38
mov r13, qword [0x1801197e8]
mov qword [rsp + 0x50], rbx
mov rbx, rdx
mov qword [rsp + 0x60], rbp
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x30], rdi
mov rdi, rcx
mov qword [rsp + 0x28], r12
test rdx, rdx
jne 0x18001d919
mov rbx, 0xffffffffffffffff
nop word [rax + rax]
inc rbx
cmp byte [rcx + rbx], 0
jne 0x18001d910
test r13, r13
je 0x18001d925
inc dword [r13 + 0x3b0]
lea rcx, [rbx + 1]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov r8, rbx
mov rdx, rdi
mov rcx, rax
mov qword [rsp + 0x58], rax
mov r14, rax
lea r12, [rax + rbx]
call sub.VCRUNTIME140.dll_memcpy
xor ebp, ebp
mov byte [r12], 0
xor esi, esi
mov rdi, r14
cmp r14, r12
jae 0x18001daea
mov qword [rsp + 0x20], r15
movzx eax, byte [rdi]
cmp al, 0xa
je 0x18001db34
cmp al, 0xd
je 0x18001db34
mov rbx, rdi
cmp rdi, r12
jae 0x18001d993
nop
movzx eax, byte [rbx]
cmp al, 0xa
je 0x18001d993
cmp al, 0xd
je 0x18001d993
inc rbx
cmp rbx, r12
jb 0x18001d980
mov byte [rbx], 0
movzx eax, byte [rdi]
cmp al, 0x3b
je 0x18001dad3
cmp al, 0x5b
jne 0x18001daba
cmp rbx, rdi
jbe 0x18001daba
cmp byte [rbx - 1], 0x5d
lea r14, [rbx - 1]
jne 0x18001daba
lea rsi, [rdi + 1]
mov byte [r14], 0
mov r8, r14
mov rcx, rsi
sub r8, rsi
mov edx, 0x5d
call sub.VCRUNTIME140.dll_memchr
mov r15, rax
test rax, rax
je 0x18001da02
lea rcx, [rax + 1]
mov edx, 0x5b
sub r14, rcx
mov r8, r14
call sub.VCRUNTIME140.dll_memchr
test rax, rax
je 0x18001da02
mov byte [r15], 0
jmp 0x18001da0c
lea rsi, str.Window
mov rax, rdi
movzx r9d, byte [rsi]
lea r11, [rax + 1]
mov r10, qword [0x1801197e8]
mov r14d, 0xffffffff
lea r8, [rsi + 1]
mov eax, r14d
test r9b, r9b
je 0x18001da66
nop dword [rax]
cmp r9b, 0x23
jne 0x18001da43
cmp byte [r8], r9b
jne 0x18001da43
cmp byte [r8 + 1], r9b
cmove eax, r14d
movzx edx, al
movzx ecx, r9b
movzx r9d, byte [r8]
xor rdx, rcx
shr eax, 8
lea rcx, [0x1800e8730]
inc r8
xor eax, dword [rcx + rdx*4]
test r9b, r9b
jne 0x18001da30
mov r8d, dword [r10 + 0x2ed0]
xor ecx, ecx
not eax
test r8d, r8d
jle 0x18001da90
mov r9, qword [r10 + 0x2ed8]
lea rdx, [r9 + 8]
cmp dword [rdx], eax
je 0x18001da96
inc ecx
add rdx, 0x30
cmp ecx, r8d
jl 0x18001da81
xor esi, esi
xor ebp, ebp
jmp 0x18001dad3
movsxd rax, ecx
lea rsi, [rax + rax*2]
shl rsi, 4
add rsi, r9
je 0x18001da92
mov rax, qword [rsi + 0x10]
mov r8, r11
mov rdx, rsi
mov rcx, r13
call rax
mov rbp, rax
jmp 0x18001dad3
test rsi, rsi
je 0x18001dad3
test rbp, rbp
je 0x18001dad3
mov r9, rdi
mov r8, rbp
mov rdx, rsi
mov rcx, r13
call qword [rsi + Ordinal_26]
lea rdi, [rbx + 1]
cmp rdi, r12
jb 0x18001d963
mov r14, qword [rsp + 0x58]
mov r15, qword [rsp + 0x20]
mov r12, qword [rsp + 0x28]
mov rdi, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
test r14, r14
je 0x18001db1a
mov rax, qword [0x1801197e8]
test rax, rax
je 0x18001db1a
dec dword [rax + 0x3b0]
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov byte [r13 + 0x2eb4], 1
add rsp, 0x38
pop r14
pop r13
ret
inc rdi
jmp 0x18001d963
Function at 0x18001db40
Capabilities:
Write file on windows

Disassembly:
push rbx
push r14
push r15
sub rsp, 0x20
mov rbx, qword [0x1801197e8]
xor r15d, r15d
mov r14, rcx
mov dword [rbx + 0x2eb8], r15d
test rcx, rcx
je 0x18001dc6b
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], rdi
lea rdi, [rbx + 0x2ec0]
mov dword [rbx + 0x2eb8], r15d
mov ecx, dword [rdi + 4]
test ecx, ecx
jns 0x18001dba4
mov eax, ecx
cdq
sub eax, edx
mov edx, r15d
sar eax, 1
add eax, ecx
mov rcx, rdi
test eax, eax
cmovg edx, eax
call fcn.18001ef30
mov dword [rdi], r15d
cmp dword [rdi + 4], r15d
jne 0x18001dbba
mov edx, 8
mov rcx, rdi
call fcn.18001ef30
movsxd rcx, dword [rdi]
mov ebp, r15d
mov rax, qword [rdi + 8]
mov byte [rcx + rax], r15b
inc dword [rdi]
cmp dword [rbx + 0x2ed0], r15d
jle 0x18001dc05
mov rsi, r15
nop word [rax + rax]
mov r9, qword [rbx + 0x2ed8]
mov r8, rdi
add r9, rsi
mov rcx, rbx
mov rdx, r9
call qword [r9 + reloc.WLDAP32.dll_Ordinal_32]
inc ebp
add rsi, 0x30
cmp ebp, dword [rbx + 0x2ed0]
jl 0x18001dbe0
mov eax, dword [rdi]
lea rdx, [0x1800f5f94]
test eax, eax
lea rdi, [0x18010fca7]
lea ecx, [rax - 1]
mov rax, qword [rbx + 0x2ec8]
cmove ecx, r15d
test rax, rax
movsxd rsi, ecx
mov rcx, r14
cmovne rdi, rax
call fcn.18000e760
mov rbp, qword [rsp + 0x40]
mov rbx, rax
test rax, rax
je 0x18001dc61
mov r9, rax
mov r8, rsi
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 rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
add rsp, 0x20
pop r15
pop r14
pop rbx
ret
Function at 0x1800293b0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
test r9d, 0xff000000
je 0x180029541
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x40
movss xmm3, dword [rsp + 0x70]
xorps xmm0, xmm0
comiss xmm3, xmm0
mov edi, r9d
mov rsi, r8
mov rbp, rdx
mov rbx, rcx
jbe 0x180029420
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x20], eax
call fcn.180028dd0
mov r8d, dword [rbx + 0x80]
mov r9d, edi
mov rdx, qword [rbx + 0x88]
mov rcx, rbx
call fcn.180028430
mov dword [rbx + 0x80], 0
jmp 0x18002952d
mov edx, 6
movaps xmmword [rsp + 0x30], xmm6
lea r8d, [rdx - 2]
call fcn.180027310
movzx edx, word [rbx + 0x4c]
mov rax, qword [rbx + 0x38]
movss xmm1, dword [rsi]
movss xmm2, dword [rbp + 4]
movss xmm3, dword [rbp]
lea ecx, [rdx + 1]
movss xmm6, dword [rax + 4]
movss xmm5, dword [rax]
movss xmm4, dword [rsi + 4]
mov rax, qword [rbx + 0x58]
mov word [rax], dx
mov rax, qword [rbx + 0x58]
mov word [rax + 2], cx
lea ecx, [rdx + 2]
mov rax, qword [rbx + 0x58]
mov word [rax + 4], cx
mov rax, qword [rbx + 0x58]
mov word [rax + 6], dx
add dx, 3
mov rax, qword [rbx + 0x58]
mov word [rax + 8], cx
mov rax, qword [rbx + 0x58]
mov word [rax + 0xa], dx
movsd xmm0, qword [rbp]
mov rax, qword [rbx + 0x50]
movsd qword [rax], xmm0
mov rax, qword [rbx + 0x50]
movss dword [rax + 8], xmm5
movss dword [rax + 0xc], xmm6
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x10], edi
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x14], xmm1
movss dword [rax + 0x18], xmm2
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x1c], xmm5
movss dword [rax + 0x20], xmm6
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x24], edi
movsd xmm0, qword [rsi]
mov rax, qword [rbx + 0x50]
movsd qword [rax + 0x28], xmm0
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x30], xmm5
movss dword [rax + 0x34], xmm6
mov rax, qword [rbx + 0x50]
mov dword [rax + 0x38], edi
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x3c], xmm3
movss dword [rax + 0x40], xmm4
mov rax, qword [rbx + 0x50]
movss dword [rax + 0x44], xmm5
movss dword [rax + 0x48], xmm6
mov rax, qword [rbx + 0x50]
movaps xmm6, xmmword [rsp + 0x30]
mov dword [rax + 0x4c], edi
add qword [rbx + 0x50], 0x50
add dword [rbx + 0x4c], 4
add qword [rbx + 0x58], 0xc
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret
Function at 0x180031280
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x50
mov rax, qword [0x18010f050]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rcx, qword [0x180119cd0]
lea rdx, [rsp + 0x38]
mov rdi, qword [0x1801197e8]
call qword [sym.imp.USER32.dll_GetClientRect]
mov eax, dword [rsp + 0x40]
lea rcx, [rsp + 0x30]
sub eax, dword [rsp + 0x38]
movd xmm1, eax
mov eax, dword [rsp + 0x44]
sub eax, dword [rsp + 0x3c]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [rdi + 0x10], xmm1
movss dword [rdi + 0x14], xmm0
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov rcx, qword [rsp + 0x30]
xorps xmm1, xmm1
mov rax, rcx
xorps xmm0, xmm0
sub rax, qword [0x180119cd8]
cvtsi2ss xmm0, qword [0x180119ce0]
cvtsi2ss xmm1, rax
divss xmm1, xmm0
movss dword [rdi + 0x18], xmm1
mov qword [0x180119cd8], rcx
mov ecx, reloc.WS2_32.dll_recvfrom
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, reloc.WS2_32.dll_recv
and al, 1
mov byte [rdi + 0x138], al
call qword [sym.imp.USER32.dll_GetKeyState]
shr eax, 0xf
mov ecx, reloc.WS2_32.dll_select
and al, 1
mov byte [rdi + 0x139], al
call qword [sym.imp.USER32.dll_GetKeyState]
mov rcx, qword [0x1801197e8]
shr eax, 0xf
and al, 1
mov byte [rdi + 0x13b], 0
mov byte [rdi + 0x13a], al
cmp byte [rcx + 0x397], 0
lea rbx, [rcx + 0x120]
je 0x1800313ac
cvttss2si eax, dword [rbx]
lea rdx, [rsp + 0x20]
mov dword [rsp + 0x20], eax
cvttss2si eax, dword [rcx + 0x124]
mov rcx, qword [0x180119cd0]
mov dword [rsp + 0x24], eax
call qword [sym.imp.USER32.dll_ClientToScreen]
mov edx, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x20]
call qword [sym.imp.USER32.dll_SetCursorPos]
mov dword [rbx], 0xff7fffff
mov dword [rbx + 4], 0xff7fffff
call qword [sym.imp.USER32.dll_GetForegroundWindow]
test rax, rax
je 0x18003141d
mov rdx, qword [0x180119cd0]
cmp rax, rdx
je 0x1800313dd
mov rcx, rax
call qword [sym.imp.USER32.dll_IsChild]
test eax, eax
je 0x18003141d
lea rcx, [rsp + 0x28]
call qword [sym.imp.USER32.dll_GetCursorPos]
test eax, eax
je 0x18003141d
mov rcx, qword [0x180119cd0]
lea rdx, [rsp + 0x28]
call qword [sym.imp.USER32.dll_ScreenToClient]
test eax, eax
je 0x18003141d
movd xmm0, dword [rsp + 0x28]
movd xmm1, dword [rsp + 0x2c]
cvtdq2ps xmm0, xmm0
cvtdq2ps xmm1, xmm1
movss dword [rbx], xmm0
movss dword [rbx + 4], xmm1
cmp byte [rdi + 0xc0], 0
je 0x18003142d
mov eax, 0xffffffff
jmp 0x18003143a
mov rax, qword [0x1801197e8]
mov eax, dword [rax + 0x1e70]
cmp dword [reloc.WS2_32.dll_htonl], eax
je 0x18003144d
mov dword [reloc.WS2_32.dll_htonl], eax
call fcn.180030e70
call fcn.180030fd0
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1800d2550
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rdi
ret
Function at 0x180042d20
Capabilities:
Log keystrokes via polling

Disassembly:
push rdi
sub rsp, 0x20
movzx edi, cl
call qword [sym.imp.USER32.dll_GetForegroundWindow]
cmp rax, qword [0x1801197f8]
jne 0x180042da6
mov qword [rsp + 0x30], rbx
mov ecx, edi
mov ebx, edi
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
test ax, ax
jns 0x180042d61
lea rdx, [0x180000000]
mov cl, 1
lea rax, [rdx + 0x119dd0]
add rax, rbx
jmp 0x180042d80
cmp rbx, 0xff
jae 0x180042dac
lea rdx, [0x180000000]
lea rax, [rdx + 0x119dd0]
add rax, rbx
xor cl, cl
mov byte [rax], 0
mov byte [rdi + rdx + 0x119ed0], cl
cmp byte [rax], 0
jne 0x180042da1
test cl, cl
je 0x180042da1
cmp byte [0x180110524], 0
mov byte [rax], 1
sete byte [0x180110524]
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
call fcn.1800d2cd8
int3

Function at 0x180043530
Capabilities:
Hook routines via microsoft detours
Resume thread

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, qword [0x1801197f8]
call fcn.18000ac40
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rcx, rax
call fcn.18000b300
mov rcx, rbx
call qword [sym.imp.USER32.dll_IsWindowUnicode]
mov edx, 0xfffffffc
mov rcx, rbx
test eax, eax
je 0x18004356d
call qword [sym.imp.USER32.dll_GetWindowLongPtrW]
jmp 0x180043573
call qword [sym.imp.USER32.dll_GetWindowLongPtrA]
lea rdx, [0x1800435a0]
mov qword [0x1801197f0], rax
lea rcx, [0x1801197f0]
call fcn.18000b3a0
add rsp, 0x30
pop rbx
jmp fcn.18000ae70
Function at 0x180048cc0
Capabilities:
Create thread

Disassembly:
sub rsp, 0x38
cmp edx, 1
jne 0x180048ce8
xor eax, eax
lea r8, [0x180048640]
mov r9, rcx
mov qword [rsp + 0x28], rax
xor edx, edx
mov dword [rsp + 0x20], eax
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov eax, 1
add rsp, 0x38
ret

Function at 0x180049730
Capabilities:
Enumerate threads

Disassembly:
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r14
push r15
sub rsp, 0x80
mov rax, qword [0x18010f050]
xor rax, rsp
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
xor r15d, r15d
xor edx, edx
mov r14d, eax
mov esi, r15d
lea rdi, [r15 - 1]
lea ecx, [rdi + 5]
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rbp, rax
cmp rax, rdi
je 0x180049857
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x30], Ordinal_33
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_Thread32First]
test eax, eax
je 0x18004984e
mov qword [rsp + 0xa0], rbx
cmp dword [rsp + 0x3c], r14d
jne 0x180049830
mov r8d, dword [rsp + 0x38]
mov edx, 1
lea ecx, [rdx + 0x3f]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rbx, rax
test rax, rax
je 0x180049830
xor eax, eax
mov dword [rsp + 0x50], r15d
mov qword [rsp + 0x64], rax
lea r9, [rsp + 0x60]
mov dword [rsp + 0x6c], eax
lea r8, [rsp + 0x58]
lea rax, [rsp + 0x68]
xorps xmm0, xmm0
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov rcx, rbx
movups xmmword [rsp + 0x54], xmm0
call qword [sym.imp.KERNEL32.dll_GetThreadTimes]
test eax, eax
je 0x180049827
movsxd rax, dword [rsp + 0x54]
mov ecx, dword [rsp + 0x50]
shl rax, 0x20
or rax, rcx
je 0x180049827
cmp rax, rdi
jae 0x180049827
mov esi, dword [rsp + 0x38]
mov rdi, rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rsp + 0x30]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_Thread32Next]
test eax, eax
jne 0x1800497a5
mov rbx, qword [rsp + 0xa0]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, esi
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.1800d2550
lea r11, [rsp + 0x80]
mov rbp, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rdi
ret
Function at 0x180049880
Capabilities:
Enumerate threads
Resume thread

Disassembly:
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x18010f050]
xor rax, rsp
mov qword [rsp + 0x40], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
mov ecx, 4
mov dword [rsp + 0x20], Ordinal_33
mov edx, eax
mov edi, eax
call qword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov rcx, rax
lea rdx, [rsp + 0x20]
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_Thread32First]
test eax, eax
je 0x180049932
mov qword [rsp + 0x60], rbx
cmp dword [rsp + 0x2c], edi
jne 0x180049912
mov r8d, dword [rsp + 0x28]
mov edx, 1
lea ecx, [rdx + 1]
call qword [sym.imp.KERNEL32.dll_OpenThread]
mov rbx, rax
test rax, rax
je 0x180049912
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x180049909
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rsp + 0x20]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_Thread32Next]
test eax, eax
jne 0x1800498d0
mov rbx, qword [rsp + 0x60]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.1800d2550
mov rsi, qword [rsp + 0x68]
add rsp, 0x50
pop rdi
ret
Function at 0x180049ec0
Capabilities:
Get common file path
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x250
mov rax, qword [0x18010f050]
xor rax, rsp
mov qword [rsp + 0x240], rax
mov qword [0x180119870], rcx
mov ecx, 3
call fcn.180098ab0
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x208
call sub.VCRUNTIME140.dll_memset
mov ecx, 8
call fcn.1800d25b4
xor ecx, ecx
mov qword [0x180119858], rax
lea rdx, [0x1800f7528]
mov qword [rax], rcx
sub rax, rdx
nop word [rax + rax]
movzx ecx, byte [rdx]
mov byte [rax + rdx], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x180049f30
mov r8d, 0x208
lea rdx, [rsp + 0x30]
lea rcx, str.Hook64_Path
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
mov rbx, 0xffffffffffffffff
lea rax, [rsp + 0x30]
mov rdi, rbx
cmp byte [rax + rdi + 1], 0
lea rdi, [rdi + 1]
jne 0x180049f65
lea rcx, [rdi + 1]
call fcn.1800d25b4
lea r8, [rdi + 1]
xor edx, edx
mov rcx, rax
mov rsi, rax
call sub.VCRUNTIME140.dll_memset
lea rax, [rsp + 0x30]
mov qword [0x180119850], rsi
sub rsi, rax
lea rdx, [rsp + 0x30]
nop
movzx ecx, byte [rdx]
mov byte [rsi + rdx], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x180049fa0
lea rdx, [rsp + 0x30]
mov ecx, 0x208
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea rax, [rsp + 0x30]
mov rdi, rbx
nop word [rax + rax]
cmp byte [rax + rdi + 1], 0
lea rdi, [rdi + 1]
jne 0x180049fd0
lea rcx, [rdi + 1]
call fcn.1800d25b4
lea r8, [rdi + 1]
xor edx, edx
mov rcx, rax
mov rsi, rax
call sub.VCRUNTIME140.dll_memset
lea rax, [rsp + 0x30]
mov qword [0x180119838], rsi
sub rsi, rax
lea r8, [rsp + 0x30]
nop dword [rax]
movzx ecx, byte [r8]
mov byte [rsi + r8], cl
lea r8, [r8 + 1]
test cl, cl
jne 0x18004a010
mov r9, qword [0x180119850]
lea rax, str.Settings.ini
lea r8, str._s_s
mov qword [rsp + 0x20], rax
mov edx, 0x208
lea rcx, [rsp + 0x30]
call fcn.180004d80
lea rax, [rsp + 0x30]
nop
cmp byte [rax + rbx + 1], 0
lea rbx, [rbx + 1]
jne 0x18004a050
lea rcx, [rbx + 1]
call fcn.1800d25b4
lea r8, [rbx + 1]
xor edx, edx
mov rcx, rax
mov rdi, rax
call sub.VCRUNTIME140.dll_memset
lea rax, [rsp + 0x30]
mov qword [0x180119840], rdi
sub rdi, rax
lea rdx, [rsp + 0x30]
nop dword [rax]
movzx ecx, byte [rdx]
mov byte [rdi + rdx], cl
lea rdx, [rdx + 1]
test cl, cl
jne 0x18004a090
call fcn.18004a6d0
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.1800d2550
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret
Function at 0x18004b480
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rdi
push r14
mov rdi, qword [rdx]
lea eax, [r8 - 0x80000000]
mov ebp, 0x80000000
mov rbx, rdx
cmp r8d, ebp
movabs r11, 0x5851f42d4c957f2d
lea r14d, [r8 + rbp]
cmovae r14d, eax
lea ecx, [r9 + rbp]
cmp r9d, ebp
lea eax, [r9 - 0x80000000]
cmovae ecx, eax
sub ecx, r14d
cmp ecx, 0xffffffff
jne 0x18004b4fe
mov rcx, qword [rdx + 8]
mov rax, rcx
imul rax, r11
add rax, rdi
mov qword [rdx + 8], rax
mov rdx, rcx
mov rax, rcx
shr rdx, 0x2d
shr rax, 0x1b
xor edx, eax
shr rcx, 0x3b
ror edx, cl
jmp 0x18004b593
lea r8d, [rcx + 1]
mov qword [rsp + 0x10], rsi
mov rcx, qword [rdx + 8]
mov r9, rcx
mov esi, r8d
mov rax, rcx
imul r9, r11
shr rax, 0x1b
add r9, rdi
mov qword [rdx + 8], r9
mov rdx, rcx
shr rcx, 0x3b
shr rdx, 0x2d
xor edx, eax
ror edx, cl
mov ecx, edx
imul rcx, rsi
cmp ecx, r8d
jae 0x18004b588
xor edx, edx
mov eax, r8d
neg eax
div r8d
cmp ecx, edx
jae 0x18004b588
nop dword [rax + rax]
mov r8, r9
mov rax, r9
mov r10, r9
shr r8, 0x2d
shr r9, 0x3b
movzx ecx, r9b
shr rax, 0x1b
xor r8d, eax
ror r8d, cl
imul r10, r11
mov ecx, r8d
add r10, rdi
imul rcx, rsi
mov r9, r10
cmp ecx, edx
jb 0x18004b550
mov qword [rbx + 8], r10
mov rsi, qword [rsp + 0x10]
shr rcx, 0x20
mov edx, ecx
mov rbx, qword [rsp + 0x18]
add edx, r14d
mov rdi, qword [rsp + 0x28]
cmp edx, ebp
lea eax, [rdx + rbp]
mov rbp, qword [rsp + 0x20]
lea ecx, [rdx - 0x80000000]
cmovae eax, ecx
pop r14
ret
Function at 0x18005a050
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x28
mov qword [rsp + 0x70], rbx
mov r12, rdx
mov rbx, rcx
call qword [sym.imp.api_ms_win_crt_locale_l1_1_0.dll_localeconv]
xor edi, edi
lea r13, [0x1800f08a0]
xorps xmm1, xmm1
mov r10d, edi
mov esi, edi
mov r9d, edi
mov r8, qword [rax]
mov r11d, edi
movsx r14d, byte [r8]
mov qword [r12], rbx
movzx eax, byte [rbx]
test byte [rax + r13 + 1], 8
je 0x18005a0af
nop dword [rax]
movzx eax, byte [rbx + 1]
inc rbx
test byte [rax + r13 + 1], 8
jne 0x18005a0a0
mov qword [rsp + 0x20], r15
lea rdx, [rbx + 1]
mov ebp, 1
cmp al, 0x2d
jne 0x18005a0c6
mov r15d, ebp
jmp 0x18005a0cf
cmp al, 0x2b
mov r15d, edi
cmovne rdx, rbx
cmp byte [rdx], 0x30
mov rbx, qword [rsp + 0x70]
jne 0x18005a208
movzx eax, byte [rdx + 1]
sub al, 0x58
test al, 0xdf
jne 0x18005a208
movsd xmm2, qword [0x1800fc178]
add rdx, 2
nop word [rax + rax]
movzx r8d, byte [rdx]
movsx rcx, r8b
cmp ecx, r14d
jne 0x18005a11a
test r11d, r11d
jne 0x18005a16f
mov r11d, ebp
inc rdx
jmp 0x18005a100
test byte [r8 + r13 + 1], 0x10
je 0x18005a16f
test r10d, r10d
jne 0x18005a131
cmp r8b, 0x30
jne 0x18005a131
inc esi
jmp 0x18005a162
inc r10d
cmp r10d, 0x1e
jg 0x18005a15f
test byte [rcx + r13 + 1], 2
je 0x18005a147
add ecx, 0xffffffd0
jmp 0x18005a14d
or ecx, 0x20
sub ecx, 0x57
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
mulsd xmm1, xmm2
addsd xmm1, xmm0
jmp 0x18005a162
inc r9d
test r11d, r11d
je 0x18005a16a
dec r9d
inc rdx
jmp 0x18005a100
lea eax, [rsi + r10]
test eax, eax
je 0x18005a208
mov qword [r12], rdx
lea r9d, [r9*4]
movzx eax, byte [rdx]
sub al, 0x50
test al, 0xdf
jne 0x18005a1ee
movzx ecx, byte [rdx + 1]
cmp cl, 0x2d
jne 0x18005a1a0
mov eax, 2
jmp 0x18005a1ae
cmp cl, 0x2b
mov rax, rdi
mov ebp, edi
sete al
inc rax
lea r8, [rdx + rax]
movzx edx, byte [rdx + rax]
test byte [rdx + r13 + 1], 2
je 0x18005a208
nop
movsx eax, dl
lea edi, [rdi + rdi*4]
inc r8
lea edi, [rdi - 0x18]
lea edi, [rax + rdi*2]
movzx eax, byte [r8]
movzx edx, al
test byte [rax + r13 + 1], 2
jne 0x18005a1c0
mov eax, edi
mov qword [r12], r8
neg eax
test ebp, ebp
cmove eax, edi
add r9d, eax
test r15d, r15d
je 0x18005a1fa
xorps xmm1, xmmword [0x1800fc450]
mov edx, r9d
movaps xmm0, xmm1
call qword [sym.imp.api_ms_win_crt_math_l1_1_0.dll_ldexp]
jmp 0x18005a20b
xorps xmm0, xmm0
mov r15, qword [rsp + 0x20]
add rsp, 0x28
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret

Function at 0x18005c460
Capabilities:
Encode data using xor

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, r8
mov r10, rcx
cmp r8, 0x28
ja 0x18005c47c
add rsp, 0x30
pop rbx
jmp fcn.18005c2e0
lea rax, [r8 + 1]
movabs rcx, 0x7fffffffffffffe7
cmp rax, rcx
ja 0x18005c4b2
mov rax, qword [r10 + 0x18]
mov r9d, reloc.WS2_32.dll_sendto
mov ecx, dword [rax + 0x50]
mov dword [rsp + 0x20], ecx
mov rcx, r10
call fcn.18005c240
mov qword [rax + 0x10], rbx
add rsp, 0x30
pop rbx
ret
mov rcx, r10
call fcn.180071c50
int3