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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x30
mov esi, edx
mov rdi, rcx
xor ebp, ebp
cmp edx, 0x79
jne 0x140182f2a
lea ecx, [rdx - 0x69]
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
js 0x140182f2f
cmp esi, 0x5d
jne 0x140182f54
or eax, 0xffffffff
mov dword [rsp + 0x50], eax
mov dword [rsp + 0x54], eax
mov r8, qword [rsp + 0x50]
mov rdx, rdi
mov rcx, rdi
call fcn.140182aa4
mov eax, 1
jmp 0x140182ff6
mov edx, esi
mov rcx, qword [rdi + 0x1558]
call fcn.14017e558
test eax, eax
jne 0x140182f4a
cmp qword [rdi + 0x1560], rbp
je 0x140182fb0
lea rax, vtable.CMFCDisableMenuAnimation.0
mov qword [rsp + 0x20], rax
xor ecx, ecx
call fcn.14009d498
mov ebx, eax
mov dword [rsp + 0x28], eax
mov dword [0x14028f4cc], ebp
mov rcx, qword [rdi + 0x1560]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x1b8]
mov edx, esi
call qword [case.0x14006898e.0]
nop
mov dword [0x14028f4cc], ebx
jmp 0x140182ff6
cmp qword [rdi + 0x1580], rbp
je 0x140182ff4
lea rax, vtable.CMFCDisableMenuAnimation.0
mov qword [rsp + 0x20], rax
xor ecx, ecx
call fcn.14009d498
mov ebx, eax
mov dword [rsp + 0x28], eax
mov dword [0x14028f4cc], ebp
mov rcx, qword [rdi + 0x1580]
mov rdx, qword [rcx]
mov rax, qword [rdx + 0x1d0]
mov edx, esi
call qword [case.0x14006898e.0]
nop
jmp 0x140182fa8
xor eax, eax
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret

Function at 0x1401a9298
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
cmp dword [rdx + 8], 0x100
mov rdi, rdx
mov rbx, rcx
jne 0x1401a93a6
cmp qword [rdx + 0x10], 9
je 0x1401a92dc
cmp qword [rdx + 0x10], 0x1b
jne 0x1401a9330
call fcn.1400323bc
test rax, rax
je 0x1401a9330
mov rcx, rbx
call fcn.1400323bc
jmp 0x1401a931e
mov rcx, qword [rcx + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.140031da4
test rax, rax
je 0x1401a9330
mov rcx, qword [rbx + 0x40]
call qword [sym.imp.USER32.dll_GetParent]
mov rcx, rax
call fcn.140031da4
mov rdx, qword [rbx + 0x40]
xor r8d, r8d
mov rcx, qword [rax + 0x40]
call qword [sym.imp.USER32.dll_GetNextDlgTabItem]
mov rcx, rax
call fcn.140031da4
mov rcx, rax
call fcn.140039ffc
mov eax, 1
jmp 0x1401a93b1
call qword [sym.imp.USER32.dll_GetFocus]
mov rcx, rax
call fcn.140031da4
cmp rax, rbx
jne 0x1401a93a6
mov ecx, 0x11
call qword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
jns 0x1401a93a6
mov rax, qword [rdi + 0x10]
cmp rax, 0x2e
je 0x1401a939f
cmp rax, 0x43
je 0x1401a9398
cmp rax, 0x56
je 0x1401a9381
cmp rax, 0x58
je 0x1401a937a
cmp rax, 0x5a
jne 0x1401a93a6
lea edx, [rax + 0x6d]
jmp 0x1401a9386
mov edx, 0x300
jmp 0x1401a9386
mov edx, 0x302
mov rcx, qword [rbx + 0x40]
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.USER32.dll_SendMessageW]
jmp 0x1401a9326
mov edx, 0x301
jmp 0x1401a9386
mov edx, 0x303
jmp 0x1401a9386
mov rdx, rdi
mov rcx, rbx
call fcn.140069c78
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1401b3f94
Capabilities:
Parse pe header

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

Function at 0x1401b6354
Capabilities:
Read file on windows

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
mov rbp, r8
mov r14, rdx
mov rdi, rcx
test r8, r8
jg 0x1401b6382
xor eax, eax
jmp 0x1401b6468
cmp qword [rcx + 0x68], 0
je 0x1401b6393
call fcn.1401b6484
jmp 0x1401b6468
mov rax, qword [rcx + 0x38]
mov rsi, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x1401b63aa
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x1401b63ac
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x1401b63de
cmp rax, rbp
mov rbx, rbp
mov rcx, r14
cmovb rbx, rax
mov r8, rbx
call fcn.1401e46e0
mov rax, qword [rdi + 0x50]
add r14, rbx
sub rsi, rbx
sub dword [rax], ebx
mov rcx, qword [rdi + 0x38]
movsxd rax, ebx
add qword [rcx], rax
cmp qword [rdi + 0x80], 0
je 0x1401b6462
mov r8, qword [rdi + 0x18]
lea rax, [rdi + 0x70]
cmp qword [r8], rax
jne 0x1401b6415
mov rcx, qword [rdi + 0x88]
mov rdx, qword [rdi + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rdi + 0x38]
mov qword [rax], rcx
mov rax, qword [rdi + 0x50]
mov dword [rax], edx
mov ebx, 0xfff
jmp 0x1401b643e
mov r9, qword [rdi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call fcn.1401cef10
add r14, rax
sub rsi, rax
cmp rax, rbx
jne 0x1401b6462
cmp rsi, rbx
ja 0x1401b641c
test rsi, rsi
je 0x1401b6462
mov r9, qword [rdi + 0x80]
mov r8, rsi
mov edx, 1
mov rcx, r14
call fcn.1401cef10
sub rsi, rax
sub rbp, rsi
mov rax, rbp
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 0x1401c5f80
Capabilities:
Parse pe header

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov ebx, ecx
test r8d, r8d
jne 0x1401c5deb
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1401c5deb
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1401c5deb
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1401c5deb
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1401c5deb
cmp dword [rcx + 0x84], 0xe
jbe 0x1401c5deb
cmp dword [rcx + 0xf8], 0
je 0x1401c5deb
mov ecx, ebx
call fcn.1401c5e9c
mov byte [rbp + 0x28], 0
lea rax, [rbp + 0x18]
mov qword [rbp - 0x18], rax
lea rax, [rbp + 0x20]
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov eax, 2
mov dword [rbp - 0x2c], eax
mov dword [rbp - 0x28], eax
lea r9, [rbp - 0x2c]
lea r8, [rbp - 0x18]
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x30]
call fcn.1401c5c78
nop
cmp dword [rbp + 0x20], 0
je 0x1401c5e39
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.1401c5e44
int3
xor r8d, r8d
xor edx, edx
jmp 0x1401c5d7c

Function at 0x1401c856c
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x30
xor edi, edi
mov esi, edx
mov rbp, rcx
test r8, r8
jne 0x1401c85a3
call fcn.1401bfdac
mov dword [rax], 0x16
call fcn.1401bfc40
xor eax, eax
jmp 0x1401c8631
mov rdx, r9
mov rcx, r8
call fcn.1401c8440
mov rbx, rax
test rax, rax
je 0x1401c862e
lea rax, [rsp + 0x50]
mov rdx, rsi
mov qword [rsp + 0x28], rax
lea r8, [0x1401c82fc]
mov eax, dword [rsp + 0x60]
mov r9, rbx
mov rcx, rbp
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov rdx, rax
test rax, rax
jne 0x1401c861b
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, eax
call fcn.1401bfd20
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x1401c8602
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1401c8611
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov rcx, rbx
call fcn.1401d4600
jmp 0x1401c862e
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1401c862b
mov eax, dword [rsp + 0x50]
mov dword [rcx], eax
mov rdi, rdx
mov rax, rdi
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
add rsp, 0x30
pop rdi
ret
Function at 0x1401cf5f8
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1050
call fcn.1401b3cb0
sub rsp, rax
mov rax, qword [0x140283940]
xor rax, rsp
mov qword [rsp + 0x1040], rax
mov r15, r8
mov rbp, rdx
mov rbx, rcx
call fcn.1401cec88
xor edi, edi
movsxd r14, eax
cmp dword [rbx + 0x10], edi
jne 0x1401cf647
mov rax, rbp
jmp 0x1401cf74f
mov rax, qword [rbx]
mov rcx, r14
sub rax, qword [rbx + 8]
and ecx, 0x3f
cqo
mov rbx, r14
sub rax, rdx
sar rbx, 6
sar rax, 1
mov r9, r15
lea r12, [rcx + rcx*8]
mov rsi, rax
lea rax, [0x140000000]
xor r8d, r8d
mov rdx, qword [rax + rbx*8 + 0x290ca0]
mov ecx, r14d
mov rdx, qword [rdx + r12*8 + 0x30]
call fcn.1401db370
mov r13, rax
lea rax, [0x140000000]
mov rcx, qword [rax + rbx*8 + 0x290ca0]
cmp r13, qword [rcx + r12*8 + 0x30]
jne 0x1401cf74b
mov rcx, qword [rcx + r12*8 + 0x28]
lea r9, [rsp + 0x30]
mov r8d, 0x1000
mov qword [rsp + 0x20], rdi
lea rdx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1401cf74b
mov r9, r15
xor r8d, r8d
mov rdx, rbp
mov ecx, r14d
call fcn.1401db370
test rax, rax
js 0x1401cf74b
mov eax, dword [rsp + 0x30]
cmp rsi, rax
jg 0x1401cf74b
lea rdx, [rsp + 0x40]
add rdx, rax
lea rcx, [rsp + 0x40]
test rsi, rsi
je 0x1401cf73d
lea r8, [0x140000000]
cmp rcx, rdx
jae 0x1401cf73d
cmp byte [rcx], 0xd
jne 0x1401cf723
lea rax, [rdx - 1]
cmp rcx, rax
jae 0x1401cf732
cmp byte [rcx + 1], 0xa
jne 0x1401cf732
inc rcx
jmp 0x1401cf732
movzx eax, byte [rcx]
movsx rax, byte [rax + r8 + 0x283f60]
add rcx, rax
inc rdi
inc rcx
cmp rdi, rsi
jne 0x1401cf705
lea rax, [rsp + 0x40]
sub rcx, rax
lea rax, [rcx + r13]
jmp 0x1401cf74f
or rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x1040]
xor rcx, rsp
call fcn.1401b3960
mov rbx, qword [rsp + 0x1090]
add rsp, 0x1050
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
Function at 0x1401da5a8
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
movsxd r15, ecx
lea r9, [0x140290ca0]
mov rax, r15
mov rbp, r15
and eax, 0x3f
sar rbp, 6
mov ecx, 4
xor esi, esi
mov r14, rdx
lea rdi, [rax + rax*8]
mov rax, qword [r9 + rbp*8]
lea r13d, [rcx + 6]
mov r10, qword [rax + rdi*8 + 0x28]
test r8, r8
je 0x1401da5ff
cmp word [rdx], r13w
jne 0x1401da5ff
or byte [rax + rdi*8 + 0x38], cl
jmp 0x1401da604
and byte [rax + rdi*8 + 0x38], 0xfb
lea r8, [rdx + r8*2]
mov rbx, r14
cmp r14, r8
jae 0x1401da729
mov r11d, 0xd
lea r12d, [r11 - 0xb]
movzx ecx, word [rdx]
cmp cx, 0x1a
je 0x1401da74a
lea r9, [rdx + 2]
cmp cx, r11w
je 0x1401da63d
mov rdx, r9
mov word [rbx], cx
jmp 0x1401da664
cmp r9, r8
jae 0x1401da674
cmp word [r9], r13w
mov rax, r12
mov ecx, 4
cmove rax, rcx
add rdx, rax
mov eax, r13d
cmp word [r9], r13w
cmovne ax, r11w
mov word [rbx], ax
mov rax, r12
add rbx, rax
cmp rdx, r8
jb 0x1401da61e
jmp 0x1401da729
lea r9, [rsp + 0x80]
mov qword [rsp + 0x20], rsi
mov r8d, r12d
lea rdx, [rsp + 0x70]
mov rcx, r10
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1401da71e
cmp dword [rsp + 0x80], esi
je 0x1401da71e
lea r8, [0x140290ca0]
mov rax, qword [r8 + rbp*8]
test byte [rax + rdi*8 + 0x38], 0x48
je 0x1401da6f6
movzx eax, word [rsp + 0x70]
cmp ax, r13w
jne 0x1401da6c6
mov word [rbx], r13w
jmp 0x1401da726
mov ecx, 0xd
mov word [rsp + 0x78], ax
mov word [rbx], cx
mov rax, qword [r8 + rbp*8]
lea rcx, [rax + rdi*8]
mov al, byte [rsp + rsi + 0x78]
mov byte [rcx + rsi + 0x3a], al
inc rsi
cmp rsi, r12
jl 0x1401da6d3
mov rax, qword [r8 + rbp*8]
mov byte [rax + rdi*8 + 0x3c], r13b
jmp 0x1401da726
cmp word [rsp + 0x70], r13w
jne 0x1401da703
cmp rbx, r14
je 0x1401da6c0
mov rdx, 0xfffffffffffffffe
mov ecx, r15d
lea r8d, [rdx + 3]
call fcn.1401db378
cmp word [rsp + 0x70], r13w
je 0x1401da729
mov ecx, 0xd
mov word [rbx], cx
add rbx, r12
sub rbx, r14
sar rbx, 1
lea eax, [rbx + rbx]
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea r8, [0x140290ca0]
mov rdx, qword [r8 + rbp*8]
mov al, byte [rdx + rdi*8 + 0x38]
test al, 0x40
jne 0x1401da723
or al, r12b
mov byte [rdx + rdi*8 + 0x38], al
jmp 0x1401da729
Function at 0x1401db514
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x20
mov edx, dword [rcx + 0x14]
nop
shr edx, 3
test dl, 1
je 0x1401db52a
mov al, 1
jmp 0x1401db58a
mov eax, dword [rcx + 0x14]
nop
test al, 0xc0
je 0x1401db53b
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
je 0x1401db588
mov ecx, dword [rcx + 0x18]
nop
call fcn.1401cff38
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1401db588
mov r9d, 1
lea r8, [rsp + 0x38]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x1401db588
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x1401db588
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
sete al
jmp 0x1401db58a
xor al, al
add rsp, 0x20
pop rbx
ret
Function at 0x1401dc964
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor ebp, ebp
mov rbx, rax
test rax, rax
je 0x1401dc9eb
mov rsi, rbx
cmp word [rax], bp
je 0x1401dc9aa
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], bp
jne 0x1401dc994
lea rsi, [rsi + rax*2]
add rsi, 2
cmp word [rsi], bp
jne 0x1401dc990
sub rsi, rbx
add rsi, 2
sar rsi, 1
add rsi, rsi
mov rcx, rsi
call fcn.1401d463c
mov rdi, rax
test rax, rax
je 0x1401dc9d8
mov r8, rsi
mov rdx, rbx
mov rcx, rax
call fcn.1401e46e0
mov rbp, rdi
xor ecx, ecx
call fcn.1401d4600
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rbp
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x1401df454
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov ebx, ecx
call fcn.1401d5e1c
mov ecx, ebx
lea r8, [rsp + 0x30]
and ecx, 0x3ff
mov r9d, 2
bts ecx, 0xa
mov edx, 0x20000001
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
xor edx, edx
test eax, eax
je 0x1401df4f5
cmp ebx, dword [rsp + 0x30]
je 0x1401df4ee
test esi, esi
je 0x1401df4ee
mov r10, qword [rdi + 0x98]
mov r9d, edx
movzx r8d, word [r10]
lea rcx, [r10 + 2]
lea eax, [r8 - 0x41]
cmp ax, 0x19
jbe 0x1401df4c9
sub r8w, 0x61
cmp r8w, 0x19
ja 0x1401df4d6
movzx r8d, word [rcx]
inc r9d
add rcx, 2
jmp 0x1401df4b3
or rax, 0xffffffffffffffff
inc rax
cmp word [r10 + rax*2], dx
jne 0x1401df4da
cmp r9d, eax
setne dl
mov eax, edx
jmp 0x1401df4f7
mov eax, 1
jmp 0x1401df4f7
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret

Function at 0x1401e4220
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x1401e4248
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x1401e4248
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret
Function at 0x1400042a0
Capabilities:
Terminate process

Disassembly:
push rsi
sub rsp, 0x150
mov rax, qword [0x140022040]
xor rax, rsp
mov qword [rsp + 0x140], rax
mov rsi, qword [0x140022f60]
mov rcx, rsi
call fcn.1400043c0
test al, al
jne 0x1400043a3
mov qword [rsp + 0x160], rbx
lea rcx, [rsp + 0x30]
xor edx, edx
mov qword [rsp + 0x168], rdi
mov r8d, pe_nt_image_headers64
call sub.VCRUNTIME140.dll_memset
mov rax, 0xffffffffffffffff
nop dword [rax + rax]
inc rax
cmp byte [rsi + rax], 0
jne 0x140004300
add eax, 0xa
movsxd rbx, eax
mov rcx, rbx
call fcn.140014f50
mov r8, rsi
mov rdx, rbx
mov rcx, rax
mov rdi, rax
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcpy_s]
lea r8, [0x1400193a4]
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcat_s]
lea r8, str..enabled
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_strcat_s]
mov r8d, 0x12
lea rcx, [rsp + 0x30]
mov rdx, rdi
call fcn.140004490
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x30]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_bool___cdecl_std::ios_base::operator__void_const___ptr64]
mov rdi, qword [rsp + 0x168]
mov rbx, qword [rsp + 0x160]
test al, al
je 0x140004399
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_exit]
int3
lea rcx, [rsp + 0x30]
call fcn.140004070
mov rcx, qword [rsp + 0x140]
xor rcx, rsp
call fcn.140014ec0
add rsp, 0x150
pop rsi
ret

Function at 0x140004930
Capabilities:
Write file on windows

Disassembly:
push rbx
push rdi
push r15
sub rsp, 0x20
cmp qword [rcx + 0x68], 0
mov rbx, r8
mov r15, rdx
mov rdi, rcx
je 0x140004958
add rsp, 0x20
pop r15
pop rdi
pop rbx
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsputn_char_const____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x40]
mov qword [rsp + 0x40], rbp
mov qword [rsp + 0x48], rsi
mov rsi, rbx
mov qword [rsp + 0x58], r14
mov r9, qword [rax]
test r9, r9
je 0x14000497e
mov rax, qword [rcx + 0x58]
mov ecx, dword [rax]
jmp 0x140004980
xor ecx, ecx
movsxd rbp, ecx
test rbx, rbx
jle 0x1400049d9
test ecx, ecx
jle 0x1400049b9
cmp rbx, rbp
mov rcx, r9
cmovl rbp, rbx
mov r8, rbp
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rdi + 0x58]
add r15, rbp
sub rbx, rbp
sub dword [rax], ebp
mov rcx, qword [rdi + 0x40]
movsxd rax, ebp
add qword [rcx], rax
test rbx, rbx
jle 0x1400049d9
mov r9, qword [rdi + 0x80]
test r9, r9
je 0x1400049d9
mov r8, rbx
mov edx, 1
mov rcx, r15
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
sub rbx, rax
mov r14, qword [rsp + 0x58]
sub rsi, rbx
mov rbp, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop r15
pop rdi
pop rbx
ret
Function at 0x140004a00
Capabilities:
Read file on windows

Disassembly:
push rbp
push rsi
push r14
sub rsp, 0x30
mov rbp, r8
mov r14, rdx
mov rsi, rcx
test r8, r8
jg 0x140004a22
xor eax, eax
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
cmp qword [rcx + 0x68], 0
je 0x140004a38
add rsp, 0x30
pop r14
pop rsi
pop rbp
jmp qword [sym.imp.MSVCP140.dll_protected_virtual:_long_long___int64____cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::xsgetn_char____ptr64__long_long___int64_____ptr64]
mov rax, qword [rcx + 0x38]
mov qword [rsp + 0x28], rbx
mov rbx, rbp
mov rdx, qword [rax]
test rdx, rdx
je 0x140004a54
mov rax, qword [rcx + 0x50]
mov ecx, dword [rax]
jmp 0x140004a56
xor ecx, ecx
movsxd rax, ecx
test ecx, ecx
je 0x140004a92
mov qword [rsp + 0x20], rdi
cmp rax, rbp
mov rdi, rbp
mov rcx, r14
cmovb rdi, rax
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rsi + 0x50]
add r14, rdi
sub rbx, rdi
sub dword [rax], edi
mov rcx, qword [rsi + 0x38]
movsxd rax, edi
mov rdi, qword [rsp + 0x20]
add qword [rcx], rax
cmp qword [rsi + 0x80], 0
je 0x140004b2e
mov r8, qword [rsi + 0x18]
lea rax, [rsi + 0x70]
cmp qword [r8], rax
jne 0x140004acd
mov rcx, qword [rsi + 0x88]
mov rdx, qword [rsi + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rsi + 0x38]
mov qword [rax], rcx
mov rax, qword [rsi + 0x50]
mov dword [rax], edx
cmp rbx, 0xfff
jbe 0x140004b0e
nop word [rax + rax]
mov r9, qword [rsi + 0x80]
mov edx, 1
mov r8d, 0xfff
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
add r14, rax
sub rbx, rax
cmp rax, 0xfff
jne 0x140004b2e
cmp rbx, rax
ja 0x140004ae0
test rbx, rbx
je 0x140004b2e
mov r9, qword [rsi + 0x80]
mov r8, rbx
mov edx, 1
mov rcx, r14
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
sub rbx, rax
sub rbp, rbx
mov rbx, qword [rsp + 0x28]
mov rax, rbp
add rsp, 0x30
pop r14
pop rsi
pop rbp
ret
Function at 0x140004f90
Capabilities:
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rdi
sub rsp, 0x80
mov rax, qword [0x140022040]
xor rax, rsp
mov qword [rsp + 0x78], rax
mov edi, edx
mov rbx, rcx
cmp edx, 0xffffffff
jne 0x140004fbd
xor eax, eax
jmp 0x140005129
mov rax, qword [rcx + 0x40]
mov rdx, qword [rax]
test rdx, rdx
je 0x140004ff7
mov rax, qword [rcx + 0x58]
movsxd r8, dword [rax]
lea rcx, [rdx + r8]
cmp rdx, rcx
jae 0x140004ff7
lea ecx, [r8 - 1]
mov dword [rax], ecx
mov eax, edi
mov rdx, qword [rbx + 0x40]
mov r8, qword [rdx]
lea rcx, [r8 + 1]
mov qword [rdx], rcx
mov byte [r8], dil
jmp 0x140005129
cmp qword [rbx + 0x80], 0
mov qword [rsp + 0xa0], rsi
je 0x14000511c
mov r8, qword [rbx + 0x18]
lea rax, [rbx + 0x70]
cmp qword [r8], rax
jne 0x14000503a
mov rcx, qword [rbx + 0x88]
mov rdx, qword [rbx + 0x90]
mov qword [r8], rcx
sub edx, ecx
mov rax, qword [rbx + 0x38]
mov qword [rax], rcx
mov rax, qword [rbx + 0x50]
mov dword [rax], edx
mov rcx, qword [rbx + 0x68]
test rcx, rcx
jne 0x140005065
mov rdx, qword [rbx + 0x80]
movsx ecx, dil
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x140005121
lea rax, [rsp + 0x40]
mov byte [rsp + 0x50], dil
mov qword [rsp + 0x38], rax
lea rdx, [rbx + 0x74]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x30], rax
lea r9, [rsp + 0x51]
lea rax, [rsp + 0x58]
mov qword [rsp + 0x28], rax
lea r8, [rsp + 0x50]
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::out_struct__Mbstatet____ptr64__char_const____ptr64__char_const____ptr64__char_const____ptr64____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x1400050d4
sub eax, 1
je 0x1400050d4
cmp eax, 2
jne 0x14000511c
movsx ecx, byte [rsp + 0x50]
mov rdx, qword [rbx + 0x80]
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fputc]
mov ecx, 0xffffffff
cmp eax, ecx
cmovne ecx, edi
mov eax, ecx
jmp 0x140005121
mov rsi, qword [rsp + 0x40]
lea rax, [rsp + 0x58]
sub rsi, rax
je 0x140005102
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x58]
mov r8, rsi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rsi, rax
jne 0x14000511c
lea rax, [rsp + 0x50]
mov byte [rbx + 0x71], 1
cmp qword [rsp + 0x48], rax
mov ecx, 0xffffffff
cmovne ecx, edi
mov eax, ecx
jmp 0x140005121
mov eax, 0xffffffff
mov rsi, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x78]
xor rcx, rsp
call fcn.140014ec0
mov rbx, qword [rsp + 0xa8]
add rsp, 0x80
pop rdi
ret
Function at 0x140005460
Capabilities:
Write file on windows

Disassembly:
push rbx
sub rsp, 0x60
mov rax, qword [0x140022040]
xor rax, rsp
mov qword [rsp + 0x58], rax
cmp qword [rcx + 0x68], 0
mov rbx, rcx
je 0x140005533
cmp byte [rcx + 0x71], 0
je 0x140005533
mov rax, qword [rcx]
mov edx, 0xffffffff
mov qword [rsp + 0x78], rdi
call qword [rax + 0x18]
cmp eax, 0xffffffff
je 0x14000552f
mov rcx, qword [rbx + 0x68]
lea rax, [rsp + 0x30]
lea rdx, [rbx + 0x74]
mov qword [rsp + 0x20], rax
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x38]
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::codecvt_char__char__struct__Mbstatet_::unshift_struct__Mbstatet____ptr64__char____ptr64__char____ptr64__char____ptr64____ptr64_const___ptr64]
test eax, eax
je 0x1400054f4
sub eax, 1
je 0x1400054f8
cmp eax, 2
jne 0x14000552f
mov byte [rbx + 0x71], 0
mov al, 1
mov rdi, qword [rsp + 0x78]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140014ec0
add rsp, 0x60
pop rbx
ret
mov byte [rbx + 0x71], 0
mov rdi, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
sub rdi, rax
je 0x140005526
mov r9, qword [rbx + 0x80]
lea rcx, [rsp + 0x38]
mov r8, rdi
mov edx, 1
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
cmp rdi, rax
jne 0x14000552f
cmp byte [rbx + 0x71], 0
sete al
jmp 0x1400054dc
xor al, al
jmp 0x1400054dc
mov al, 1
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140014ec0
add rsp, 0x60
pop rbx
ret