joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400a2fd8
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rdi
sub rsp, 0x30
mov rax, qword [rcx]
mov rdi, rdx
mov rbx, rcx
call qword [rax + 0x218]
test al, al
jne 0x1400a3024
mov eax, dword [rdi]
sub eax, 9
cmp eax, 0xc
ja 0x1400a3024
mov rcx, qword [rbx + 0x740]
mov rdx, rdi
test rcx, rcx
jne 0x1400a321a
mov rcx, rbx
call fcn.14009c74c
jmp 0x1400a322a
cmp dword [rdi], 0x13
jne 0x1400a3053
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x208]
test al, al
je 0x1400a322a
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x30]
mov rcx, rbx
call fcn.1400a5494
jmp 0x1400a322a
cmp dword [rdi], 3
mov ebp, InitCommonControls
jne 0x1400a3073
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x208]
test al, al
je 0x1400a3073
cmp word [rdi + 0x1c], bp
je 0x1400a303d
cmp dword [rdi], ebp
jne 0x1400a30ca
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x208]
test al, al
je 0x1400a322a
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
lea rbx, [rbx + 0x728]
mov rdi, qword [rbx]
and ax, cx
mov rcx, rbx
je 0x1400a30c0
call qword [rdi + 0x20]
test al, al
mov rcx, rbx
sete dl
call qword [rdi + 0x30]
jmp 0x1400a322a
mov dl, 1
call qword [rdi + 0x28]
jmp 0x1400a322a
mov rcx, qword [rbx + 0x740]
test rcx, rcx
je 0x1400a30ea
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp byte [rax + 0x470], 0
je 0x1400a30ea
cmp dword [rdi], 0xf
je 0x1400a3077
cmp dword [rdi], 0xe
jne 0x1400a3129
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x208]
test al, al
je 0x1400a322a
mov byte [rsp + 0x28], 0
lea r8, str.itemclick
and qword [rsp + 0x20], 0
xor r9d, r9d
mov rcx, qword [rbx + 0x58]
mov rdx, rbx
call fcn.140070e64
jmp 0x1400a322a
cmp dword [rdi], 9
je 0x1400a322a
cmp dword [rdi], 0xb
jne 0x1400a3194
mov rcx, rbx
call fcn.1400a4d3c
test al, al
je 0x1400a3174
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x208]
test al, al
je 0x1400a3174
mov rcx, qword [rbx + 0x58]
lea r8, str.itemmouseenter
mov byte [rsp + 0x28], 0
xor r9d, r9d
and qword [rsp + 0x20], 0
mov rdx, rbx
call fcn.140070e64
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x208]
test al, al
je 0x1400a322a
or dword [rbx + 0x738], 8
jmp 0x1400a3046
cmp dword [rdi], 0xa
jne 0x1400a31b5
mov eax, dword [rbx + 0x738]
test al, 8
je 0x1400a322a
and eax, 0xfffffff7
mov dword [rbx + 0x738], eax
jmp 0x1400a3046
cmp dword [rdi], 0x1b
jne 0x1400a31d8
mov rax, qword [rdi + 0x28]
lea r8, str.timer
mov r9, qword [rdi + 0x20]
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
jmp 0x1400a3118
cmp dword [rdi], 0x14
jne 0x1400a320b
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x1c0]
test al, al
je 0x1400a320b
mov rax, qword [rdi + 0x28]
lea r8, str.menu
mov r9, qword [rdi + 0x20]
mov byte [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
jmp 0x1400a3118
mov rcx, qword [rbx + 0x740]
mov rdx, rdi
test rcx, rcx
je 0x1400a3222
mov rax, qword [rcx]
call qword [rax + 0x30]
jmp 0x1400a322a
mov rcx, rbx
call fcn.140072758
mov rbx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
Function at 0x1400a358c
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x30
mov rax, qword [rcx]
mov rdi, rdx
mov rbx, rcx
call qword [rax + 0x218]
test al, al
jne 0x1400a35d1
mov eax, dword [rdi]
sub eax, 9
cmp eax, 0xc
ja 0x1400a35d1
mov rcx, qword [rbx + 0x5b8]
mov rdx, rdi
test rcx, rcx
je 0x1400a36c9
mov rax, qword [rcx]
call qword [rax + 0x30]
jmp 0x1400a36d1
mov rcx, qword [rbx + 0x5b8]
test rcx, rcx
je 0x1400a3644
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
cmp byte [rax + 0x470], 0
je 0x1400a3644
cmp dword [rdi], 0xf
jne 0x1400a3644
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x208]
test al, al
je 0x1400a36d1
mov ecx, reloc.COMCTL32.dll_InitCommonControls
call qword [sym.imp.USER32.dll_GetKeyState]
mov ecx, 0x8000
lea rbx, [rbx + 0x5a0]
mov rdi, qword [rbx]
and ax, cx
mov rcx, rbx
je 0x1400a363a
call qword [rdi + 0x20]
test al, al
mov rcx, rbx
sete dl
call qword [rdi + 0x30]
jmp 0x1400a36d1
mov dl, 1
call qword [rdi + 0x28]
jmp 0x1400a36d1
cmp dword [rdi], 0xd
je 0x1400a35f1
cmp dword [rdi], 0xe
jne 0x1400a3681
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x208]
test al, al
je 0x1400a36d1
mov rcx, qword [rbx + 0x58]
lea r8, str.itemclick
mov byte [rsp + 0x28], 0
xor r9d, r9d
and qword [rsp + 0x20], 0
mov rdx, rbx
call fcn.140070e64
jmp 0x1400a36d1
cmp dword [rdi], 9
je 0x1400a36d1
cmp dword [rdi], 0xb
jne 0x1400a36ac
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x208]
test al, al
je 0x1400a36d1
or dword [rbx + 0x5b0], 8
mov rcx, rbx
call fcn.1400a5494
jmp 0x1400a36d1
cmp dword [rdi], 0xa
jne 0x1400a36c6
mov eax, dword [rbx + 0x5b0]
test al, 8
je 0x1400a36d1
and eax, 0xfffffff7
mov dword [rbx + 0x5b0], eax
jmp 0x1400a36a2
mov rdx, rdi
mov rcx, rbx
call fcn.1400a323c
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x1400a3bcc
Capabilities:
Log keystrokes via polling

Disassembly:
sub rcx, 0x728
jmp method.DuiLib::CListUI.virtual_632
Function at 0x1400b1a98
Capabilities:
Get graphical window text

Disassembly:
push rbp
sub rsp, 0x40
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rbx
mov qword [rbp + 0x28], rdi
mov rax, qword [0x140160188]
xor rax, rbp
mov qword [rbp], rax
cmp byte [rcx + 0x30], 0
mov rdi, rcx
je 0x1400b1b7d
cmp qword [rcx + 0x20], 0
je 0x1400b1b7d
mov rcx, qword [rcx + 8]
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
lea r8d, [rax + 1]
movsxd rax, r8d
add rax, rax
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x1400b1af8
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1400cf370
sub rsp, rcx
lea rbx, [rsp + 0x30]
test rbx, rbx
je 0x1400b1b7d
mov rcx, qword [rdi + 8]
mov rdx, rbx
call qword [sym.imp.USER32.dll_GetWindowTextW]
mov rcx, qword [rdi + 0x20]
mov rdx, rbx
add rcx, 0x1f0
call fcn.140075414
mov rbx, qword [rdi + 0x20]
mov rcx, rbx
mov rax, qword [rbx]
call qword [rax + gethostname]
mov byte [rsp + 0x28], 0
lea r8, str.textchanged
and qword [rsp + 0x20], 0
mov rcx, rax
xor r9d, r9d
mov rdx, rbx
call fcn.140070e64
mov rcx, qword [rdi + 0x20]
mov rax, qword [rcx]
call qword [rax + gethostname]
mov rcx, rax
call fcn.14006c76c
test al, al
je 0x1400b1b7d
mov rcx, qword [rdi + 0x20]
call fcn.14007318c
xor eax, eax
mov rcx, qword [rbp]
xor rcx, rbp
call fcn.1400ce670
mov rbx, qword [rbp + 0x20]
mov rdi, qword [rbp + 0x28]
lea rsp, [rbp + 0x10]
pop rbp
ret

Function at 0x1400b810c
Capabilities:
Get hostname
Initialize winsock library
Resolve dns

Disassembly:
sub rsp, 0x2e8
mov rax, qword [0x140160188]
xor rax, rsp
mov qword [rsp + 0x2d0], rax
mov ecx, 0x202
lea rdx, [rsp + 0x30]
call sub.WS2_32.dll_WSAStartup
test eax, eax
jne 0x1400b81ad
xor edx, edx
lea rcx, [rsp + 0x1d0]
mov r8d, 0xff
call fcn.1400d1170
mov edx, 0xff
lea rcx, [rsp + 0x1d0]
call sub.WS2_32.dll_gethostname
lea rcx, [rsp + 0x1d0]
call sub.WS2_32.dll_gethostbyname
test rax, rax
je 0x1400b81ad
mov rdx, qword [rax + 0x18]
lea rcx, [rsp + 0x20]
mov r8d, 4
mov rdx, qword [rdx]
call fcn.1400d0d10
movzx ecx, byte [rsp + 0x21]
movzx eax, byte [rsp + 0x20]
shl eax, 8
add eax, ecx
movzx ecx, byte [rsp + 0x22]
shl eax, 8
add eax, ecx
movzx ecx, byte [rsp + 0x23]
shl eax, 8
add eax, ecx
jmp 0x1400b81af
xor eax, eax
mov rcx, qword [rsp + 0x2d0]
xor rcx, rsp
call fcn.1400ce670
add rsp, 0x2e8
ret

Function at 0x1400bdba0
Capabilities:
Log keystrokes via polling

Disassembly:
sub rcx, 0x728
jmp method.DuiLib::CMenuUI.virtual_632

Function at 0x1400c2a60
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov eax, dword [rdx]
mov rdi, rdx
sub eax, 0xd
mov rbx, rcx
test eax, 0xfffffff7
jne 0x1400c2a81
call fcn.1400c39dc
mov rdx, rdi
mov rcx, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp method.DuiLib::CListUI.virtual_632

Function at 0x1400c2a98
Capabilities:
Log keystrokes via polling

Disassembly:
sub rcx, 0x728
jmp method.DuiLib::CListExUI.virtual_632
Function at 0x1400c5a58
Capabilities:
Get keyboard layout
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x250
mov rax, qword [0x140160188]
xor rax, rsp
mov qword [rsp + 0x240], rax
xor ecx, ecx
mov qword [rsp + 0x20], rdx
mov edi, r8d
mov rsi, rdx
call qword [sym.imp.USER32.dll_GetKeyboardLayout]
xor edx, edx
mov ecx, edi
mov r8, rax
call qword [sym.imp.USER32.dll_MapVirtualKeyExW]
mov ebx, eax
cmp edi, 0x21
jb 0x1400c5ab4
cmp edi, 0x28
jbe 0x1400c5ab0
lea eax, [rdi - 0x2d]
cmp eax, 1
ja 0x1400c5ab4
bts ebx, 8
xor edx, edx
lea rcx, [rsp + 0x30]
mov r8d, 0x208
call fcn.1400d1170
shl ebx, 0x10
lea rdx, [rsp + 0x30]
mov ecx, ebx
mov r8d, 0x104
call qword [sym.imp.USER32.dll_GetKeyNameTextW]
or r8d, 0xffffffff
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.1400751f0
mov rax, rsi
mov rcx, qword [rsp + 0x240]
xor rcx, rsp
call fcn.1400ce670
lea r11, [rsp + 0x250]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop rdi
ret
Function at 0x1400ce380
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x880
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov rax, qword [0x140160188]
xor rax, rsp
mov qword [rsp + 0x870], rax
call fcn.14002ccc0
mov rdi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x1400ce3cd
mov rcx, rax
call fcn.140025df0
nop
mov ecx, dword [0x140164608]
lea rsi, [0x1401641e0]
xor ebp, ebp
test cl, 1
jne 0x1400ce415
or ecx, 1
mov dword [0x140164608], ecx
xor edx, edx
mov r8d, 0x412
mov rcx, rsi
call fcn.1400d1170
mov qword [0x1401645f8], rbp
mov byte [0x140164600], bpl
lea rcx, [0x1400fea10]
call fcn.1400cea3c
nop
cmp byte [0x140164600], 0
jne 0x1400ce5d0
mov byte [0x140164600], 1
xor edx, edx
mov r8d, 0x410
lea rcx, [rsp + 0x40]
call fcn.1400d1170
mov qword [rsp + 0x20], rbp
lea r8, [rsp + 0x20]
mov edx, 0x1a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
test eax, eax
jne 0x1400ce481
lea rdx, [rsp + 0x40]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.SHELL32.dll_SHGetPathFromIDListW]
test eax, eax
je 0x1400ce47c
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x1400ce481
call qword [sym.imp.ole32.dll_CoTaskMemFree]
jmp 0x1400ce481
mov word [rsp + 0x40], bp
lea rcx, [rsp + 0x40]
sub rcx, 2
nop word [rax + rax]
lea rcx, [rcx + 2]
cmp word [rcx], 0
jne 0x1400ce490
mov eax, dword [0x14012af90]
mov dword [rcx], eax
lea rax, [rsp + 0x40]
sub rax, 2
nop dword [rax + rax]
lea rax, [rax + 2]
cmp word [rax], 0
jne 0x1400ce4b0
movups xmm0, xmmword [0x140125f90]
movups xmmword [rax], xmm0
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x1400ce4d9
mov word [rsp + 0x40], bp
xor edx, edx
mov r8d, 0x412
lea rcx, [rsp + 0x450]
call fcn.1400d1170
lea rcx, [rsp + 0x40]
mov rbx, 0xffffffffffffffff
mov rax, rbx
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400ce500
test rax, rax
je 0x1400ce59a
mov r8d, 0x207
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x450]
call fcn.1400d8300
lea rcx, [rsp + 0x450]
mov rax, rbx
inc rax
cmp word [rcx + rax*2], 0
jne 0x1400ce536
test rax, rax
je 0x1400ce59a
lea rcx, [rsp + 0x450]
sub rcx, 2
lea rcx, [rcx + 2]
cmp word [rcx], 0
jne 0x1400ce551
mov eax, dword [0x14012af90]
mov dword [rcx], eax
lea rcx, [rsp + 0x450]
sub rcx, 2
nop
lea rcx, [rcx + 2]
cmp word [rcx], 0
jne 0x1400ce570
movups xmm0, xmmword [str.2345Image.hzv]
movups xmmword [rcx], xmm0
movsd xmm1, qword [0x1401191c0]
movsd qword [rcx + 0x10], xmm1
mov eax, dword [0x1401191c8]
mov dword [rcx + 0x18], eax
call fcn.14002f240
lea rcx, [rsp + 0x450]
nop word [rax + rax]
inc rbx
cmp word [rcx + rbx*2], 0
jne 0x1400ce5b0
test rbx, rbx
je 0x1400ce5d0
lea rdx, [rsp + 0x450]
mov rcx, rax
call fcn.14002f330
nop
test rdi, rdi
je 0x1400ce5e2
mov rcx, rdi
call fcn.140025e00
mov qword [rsp + 0x28], rbp
mov rax, rsi
mov rcx, qword [rsp + 0x870]
xor rcx, rsp
call fcn.1400ce670
lea r11, [rsp + 0x880]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
Function at 0x1400e2720
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x1400e2484

Function at 0x1400e9f14
Capabilities:
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov qword [rax + 8], rcx
push rbp
mov rbp, rsp
sub rsp, 0x20
test rcx, rcx
jne 0x1400e9db4
call fcn.1400d6d38
mov dword [rax], 0x16
call fcn.1400d3ca4
or eax, 0xffffffff
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop rbp
ret
mov eax, dword [rcx + 0x14]
shr eax, 0xd
test al, 1
je 0x1400e9d9c
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
shr ecx, 0xc
test cl, 1
jne 0x1400e9d9c
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
mov rax, qword [rbp + 0x10]
shr ecx, 1
test cl, 1
je 0x1400e9de6
lock or dword [rax + 0x14], 0x10
jmp 0x1400e9d9c
lock or dword [rax + 0x14], 1
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
test ecx, 0x4c0
jne 0x1400e9e03
mov rcx, qword [rbp + 0x10]
call fcn.1400eab68
mov rax, qword [rbp + 0x10]
mov rcx, qword [rax + 8]
mov qword [rax], rcx
mov rbx, qword [rbp + 0x10]
mov rcx, rbx
call fcn.1400e61e8
mov rdx, qword [rbp + 0x10]
mov ecx, eax
mov r8d, dword [rdx + 0x20]
mov rdx, qword [rdx + 8]
call fcn.1400ea44c
mov dword [rbx + 0x10], eax
mov rax, qword [rbp + 0x10]
mov edx, dword [rax + 0x10]
lea ecx, [rdx + 1]
cmp ecx, 1
ja 0x1400e9e5a
neg edx
sbb ecx, ecx
and ecx, 8
add ecx, 8
lock or dword [rax + 0x14], ecx
mov rax, qword [rbp + 0x10]
and dword [rax + 0x10], 0
jmp 0x1400e9d9c
mov ecx, dword [rax + 0x14]
test cl, 6
jne 0x1400e9ec6
mov rcx, qword [rbp + 0x10]
call fcn.1400e61e8
cmp eax, 0xffffffff
je 0x1400e9ead
mov rcx, qword [rbp + 0x10]
call fcn.1400e61e8
cmp eax, 0xfffffffe
je 0x1400e9ead
mov rbx, qword [rbp + 0x10]
mov rcx, rbx
call fcn.1400e61e8
movsxd rdi, eax
lea rsi, [0x140165310]
mov rcx, rbx
sar rdi, 6
call fcn.1400e61e8
and eax, 0x3f
shl rax, 6
add rax, qword [rsi + rdi*8]
jmp 0x1400e9eb4
lea rax, [0x140160530]
mov al, byte [rax + 0x38]
and al, 0x82
cmp al, 0x82
jne 0x1400e9ec6
mov rax, qword [rbp + 0x10]
lock or dword [rax + 0x14], 0x20
mov rax, qword [rbp + 0x10]
cmp dword [rax + 0x20], 0x200
jne 0x1400e9efc
mov ecx, dword [rax + 0x14]
shr ecx, 6
test cl, 1
je 0x1400e9ef8
mov rax, qword [rbp + 0x10]
mov ecx, dword [rax + 0x14]
shr ecx, 8
test cl, 1
jne 0x1400e9ef8
mov rax, qword [rbp + 0x10]
mov dword [rax + 0x20], 0x1000
mov rax, qword [rbp + 0x10]
dec dword [rax + 0x10]
mov rcx, qword [rax]
movzx edx, byte [rcx]
inc rcx
mov qword [rax], rcx
mov eax, edx
jmp 0x1400e9d9f
jmp 0x1400e9d6c
Function at 0x140002194
Capabilities:
Access the windows event log

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r14
push r15
mov rbp, rsp
sub rsp, 0x80
mov rax, qword [0x140021020]
xor rax, rsp
mov qword [rbp - 8], rax
mov rdi, rdx
mov rsi, rcx
lea rdx, str..NET_Runtime
xor ecx, ecx
call qword [sym.imp.ADVAPI32.dll_RegisterEventSourceW]
mov r14, rax
xor r15d, r15d
mov qword [rbp - 0x18], r15
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], r15w
lea r8d, [r15 + 0x28]
lea rdx, str.Description:_A_.NET_application_failed._n
lea rcx, [rbp - 0x28]
call fcn.1400041a8
lea r8d, [r15 + 0xd]
lea rdx, str.Application:
lea rcx, [rbp - 0x28]
call fcn.1400041a8
or rbx, 0xffffffffffffffff
mov r8, rbx
inc r8
cmp word [rdi + r8*2], r15w
jne 0x140002213
mov rdx, rdi
mov rcx, rax
call fcn.1400041a8
mov edi, 1
mov r8d, edi
lea rdx, [0x14001b430]
mov rcx, rax
call fcn.1400041a8
lea r8d, [rdi + 5]
lea rdx, str.Path:
lea rcx, [rbp - 0x28]
call fcn.1400041a8
inc rbx
cmp word [rsi + rbx*2], r15w
jne 0x140002253
mov r8, rbx
mov rdx, rsi
mov rcx, rax
call fcn.1400041a8
mov r8, rdi
lea rdx, [0x14001b430]
mov rcx, rax
call fcn.1400041a8
mov r8d, 9
lea rdx, str.Message:
lea rcx, [rbp - 0x28]
call fcn.1400041a8
lea rdx, [0x1400214d8]
cmp qword [0x1400214f0], 8
cmovae rdx, qword [0x1400214d8]
mov r8, qword [0x1400214e8]
mov rcx, rax
call fcn.1400041a8
mov r8, rdi
lea rdx, [0x14001b430]
mov rcx, rax
call fcn.1400041a8
lea rax, [rbp - 0x28]
cmp qword [rbp - 0x10], 8
cmovae rax, qword [rbp - 0x28]
mov qword [rbp - 0x30], rax
xor r8d, r8d
mov edx, edi
mov qword [rsp + 0x40], r15
lea rax, [rbp - 0x30]
mov qword [rsp + 0x38], rax
mov dword [rsp + 0x30], r15d
mov word [rsp + 0x28], di
mov qword [rsp + 0x20], r15
mov r9d, 0x3ff
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_ReportEventW]
mov rcx, r14
call qword [sym.imp.ADVAPI32.dll_DeregisterEventSource]
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x14000235b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002356
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140002356
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14000fa24
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.14000fa00
mov rbx, qword [rsp + 0xc0]
add rsp, 0x80
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x1400053ec
Capabilities:
Print debug messages

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
mov qword [rax + 0x10], rdx
mov qword [rax + 0x18], r8
mov qword [rax + 0x20], r9
push rbx
push rsi
push rdi
push r12
push r13
push r14
sub rsp, 0x58
lea r12, [0x1400225d8]
mov qword [rax - 0x58], r12
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
lea rdi, [rsp + 0x98]
call fcn.1400050fc
mov r14, rax
mov rcx, qword [rax]
or rcx, 1
mov qword [rsp + 0x28], rdi
and qword [rsp + 0x20], 0
mov r9, qword [rsp + 0x90]
xor r8d, r8d
xor edx, edx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___stdio_common_vswprintf]
or ecx, 0xffffffff
test eax, eax
cmovs eax, ecx
inc eax
movsxd rbx, eax
mov rdx, rbx
lea rcx, [rsp + 0x38]
call fcn.140005614
nop
mov rcx, qword [r14]
or rcx, 1
mov qword [rsp + 0x28], rdi
and qword [rsp + 0x20], 0
mov r9, qword [rsp + 0x90]
mov r8, rbx
mov rbx, qword [rsp + 0x38]
mov rdx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___stdio_common_vswprintf]
mov r13d, 8
mov rax, qword gs:[0x58]
mov rsi, qword [rax]
mov rax, qword [rsi + r13]
mov edi, 2
test rax, rax
jne 0x1400054e6
mov ecx, edi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rdx, rax
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputws]
mov ecx, edi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rdx, rax
lea ecx, [rdi + 8]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputwc]
jmp 0x1400054ef
mov rcx, rbx
call qword [0x140015408]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
cmp dword [0x140022608], 0
je 0x14000554f
mov ecx, edi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___acrt_iob_func]
mov rdi, qword [0x140022600]
cmp rdi, rax
jne 0x14000551c
cmp qword [rsi + r13], 0
je 0x14000554f
lea rax, [rsp + 0x98]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, qword [rsp + 0x90]
mov rdx, rdi
mov rcx, qword [r14]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll___stdio_common_vfwprintf]
mov ecx, 0xa
mov rdx, rdi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputwc]
nop
test rbx, rbx
je 0x14000556b
mov rdx, qword [rsp + 0x48]
sub rdx, rbx
sar rdx, 1
add rdx, rdx
mov rcx, rbx
call fcn.140001340
nop
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
add rsp, 0x58
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
Function at 0x14000b990
Capabilities:
Query environment variable

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x20
xor r14d, r14d
mov rbx, rdx
mov qword [rdx + 0x10], r14
mov rdi, rcx
cmp qword [rdx + 0x18], 8
mov rax, rdx
jb 0x14000b9c3
mov rax, qword [rdx]
xor r8d, r8d
mov word [rax], r14w
xor edx, edx
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
mov ebp, eax
test eax, eax
jne 0x14000ba0f
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xcb
je 0x14000ba0b
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx r8d, ax
mov rdx, rdi
or r8d, 0x80070000
lea rcx, str.Failed_to_read_environment_variable___s___HRESULT:_0x_X
test eax, eax
cmovle r8d, eax
call fcn.1400053ec
xor al, al
jmp 0x14000ba55
mov rcx, 0xffffffffffffffff
mov eax, 2
mul rbp
cmovo rax, rcx
mov rcx, rax
call fcn.14000fcec
mov r8d, ebp
mov rdx, rax
mov rcx, rdi
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
je 0x14000b9e5
mov rdx, rsi
mov rcx, rbx
call fcn.14000412c
mov rcx, rsi
call fcn.14000fa24
mov al, 1
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov rdi, qword [rsp + 0x48]
add rsp, 0x20
pop r14
ret
Function at 0x180001e60
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
push rbx
sub rsp, 0x20
mov r9d, 0x6c078965
mov r8d, 0xffffffff
mov rbx, rcx
call fcn.180001e30
mov rax, rbx
add rsp, 0x20
pop rbx
ret

Function at 0x1800020d0
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
push rbx
sub rsp, 0x20
mov eax, dword [rcx]
mov rbx, rcx
cmp eax, 0x270
jne 0x1800020e9
call fcn.180002380
jmp 0x1800020f5
cmp eax, 0x4e0
jb 0x1800020f5
call fcn.180002290
mov eax, dword [rbx]
mov edx, dword [rbx + rax*4 + 4]
inc eax
mov dword [rbx], eax
mov ecx, edx
mov eax, dword [rbx + 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, 0x20
pop rbx
ret
jmp 0x1800020d0
mov rcx, qword [rcx]
jmp 0x180002140

Function at 0x180002250
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
push rbx
sub rsp, 0x20
mov eax, dword [rcx]
mov rbx, rcx
cmp eax, 0x270
jne 0x1800020e9
call fcn.180002380
jmp 0x1800020f5
cmp eax, 0x4e0
jb 0x1800020f5
call fcn.180002290
mov eax, dword [rbx]
mov edx, dword [rbx + rax*4 + 4]
inc eax
mov dword [rbx], eax
mov ecx, edx
mov eax, dword [rbx + 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, 0x20
pop rbx
ret
jmp 0x1800020d0
mov rcx, qword [rcx]
jmp 0x180002140

Function at 0x180002290
Capabilities:
Encode data using add xor sub operations
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov qword [rsp + 8], rbx
lea r10, [rcx + 0x9c4]
mov r9, rcx
mov r11d, dword [r10]
mov ebx, 0xe3
nop word [rax + rax]
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
mov edx, eax
xor edx, r11d
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x634]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x1800022b0
lea r10, [r9 + 0xd50]
mov ebx, 0x18c
mov r11d, dword [r10]
nop
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
mov edx, eax
xor edx, r11d
add r10, 4
btr edx, 0x1f
xor edx, eax
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
and ecx, 0x9908b0df
xor ecx, dword [r8 - 0xd4c]
xor ecx, edx
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x180002300
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
btr edx, 0x1f
mov dword [r9], ebx
mov rbx, qword [rsp + 8]
xor edx, eax
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
ret