joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140001000
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov rax, rsp
push rbp
push rdi
push r14
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x50], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov rax, qword [0x140232230]
xor rax, rsp
mov qword [rbp - 8], rax
mov r14, rcx
mov qword [0x1402391c0], rcx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rdi, rax
lea r8, [0x1401b58f0]
mov edx, 0x79
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbx, rax
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov esi, eax
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
xor edi, edi
mov qword [rbp - 0x38], rdi
mov qword [rbp - 0x30], rdi
mov qword [rbp - 0x30], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x38], rdi
mov byte [rbp - 0x48], dil
mov r8d, esi
mov rdx, rax
lea rcx, [rbp - 0x48]
call fcn.140001750
nop
lea r8, [rbp - 0x48]
lea rdx, str.PeerBlock_1.2
lea rcx, [rbp - 0x28]
call fcn.140001270
mov rbx, rax
lea rax, [rbp - 0x48]
cmp rax, rbx
je 0x1400010f3
cmp qword [rbp - 0x30], 0x10
jb 0x1400010d6
mov rcx, qword [rbp - 0x48]
call fcn.1401669a0
mov qword [rbp - 0x30], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x38], rdi
mov byte [rbp - 0x48], 0
mov rdx, rbx
lea rcx, [rbp - 0x48]
call fcn.1400021f0
nop
cmp qword [rbp - 0x10], 0x10
jb 0x140001103
mov rcx, qword [rbp - 0x28]
call fcn.1401669a0
mov qword [rbp - 0x10], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x18], rdi
mov byte [rbp - 0x28], 0
lea r8, [rbp - 0x48]
cmp qword [rbp - 0x30], 0x10
cmovae r8, qword [rbp - 0x48]
mov edx, 0x422
mov rcx, r14
call qword [sym.imp.USER32.dll_SetDlgItemTextA]
mov rcx, r14
call fcn.140001890
nop
cmp qword [rbp - 0x30], 0x10
jb 0x140001148
mov rcx, qword [rbp - 0x48]
call fcn.1401669a0
mov qword [rbp - 0x30], reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x38], rdi
mov byte [rbp - 0x48], 0
mov eax, 1
mov rcx, qword [rbp - 8]
xor rcx, rsp
call fcn.140166980
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
Function at 0x140007a80
Capabilities:
Check if file exists

Disassembly:
sub rsp, 0x28
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
sete al
add rsp, 0x28
ret

Function at 0x140007ab0
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0x30
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbp
mov rax, rdx
mov rsi, rcx
xor r14d, r14d
mov dword [rsp + 0x20], r14d
mov edx, r8d
mov rcx, rax
call qword [sym.imp.USER32.dll_GetDlgItem]
mov rbp, rax
test rax, rax
je 0x140007b63
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
lea ebx, [rax + 1]
movsxd rcx, ebx
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.140145c6c
mov rdi, rax
mov qword [rsp + 0x68], rax
mov r8d, ebx
mov rdx, rax
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetWindowTextW]
movsxd r8, eax
mov qword [rsi + 0x18], 7
mov qword [rsi + 0x10], r14
mov word [rsi], r14w
mov rdx, rdi
mov rcx, rsi
call fcn.14000dc20
mov dword [rsp + 0x20], 1
mov rcx, rdi
call fcn.140167434
jmp 0x140007b8e
mov qword [rsi + 0x18], 7
mov qword [rsi + 0x10], r14
mov word [rsi], r14w
xor r8d, r8d
lea rdx, [0x1401b6720]
mov rcx, rsi
call fcn.14000dc20
nop
mov dword [rsp + 0x20], 1
mov rax, rsi
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
Function at 0x140020ea0
Capabilities:
Move file

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x7b8]
sub rsp, 0x8b0
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rdi
mov rax, qword [0x140232230]
xor rax, rsp
mov qword [rbp + 0x7a0], rax
mov rdi, rdx
mov rbx, rcx
mov r8d, 1
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x140020ff2
mov qword [rsp + 0x20], rdi
mov r9, rbx
lea r8, str.Cant_move_file_from:__s__to:__s___
mov edx, 0x400
lea rcx, [rbp - 0x60]
call fcn.140167410
lea rax, [rsp + 0x60]
mov qword [rbp - 0x70], rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x80], rax
mov qword [rsp + 0x78], 7
xor edi, edi
mov qword [rsp + 0x70], rdi
mov word [rsp + 0x60], di
cmp word [rbp - 0x60], di
jne 0x140020f3c
mov r8d, edi
jmp 0x140020f4e
lea rax, [rbp - 0x60]
or r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], di
jne 0x140020f44
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x60]
call fcn.14000dc20
nop
mov qword [rsp + 0x48], 7
mov qword [rsp + 0x40], rdi
mov word [rsp + 0x30], di
mov r8d, reloc.WS2_32.dll_listen
lea rdx, str._path___move_
lea rcx, [rsp + 0x30]
call fcn.14000dc20
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x30]
call fcn.140078b90
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x30]
call fcn.1401670f4
nop
lea rax, vtable.win32_error.0
mov qword [rsp + 0x30], rax
lea rax, str.MoveFileEx
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rdi
mov dword [rsp + 0x58], ebx
lea rax, vtable.path_error.0
mov qword [rsp + 0x30], rax
lea rdx, [0x14022d858]
lea rcx, [rsp + 0x30]
call fcn.140170da8
int3
mov rcx, qword [rbp + 0x7a0]
xor rcx, rsp
call fcn.140166980
lea r11, [rsp + 0x8b0]
mov rbx, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x1400214c0
Capabilities:
Check if file exists
Delete file

Disassembly:
mov rax, rsp
push rbp
lea rbp, [rax - 0x7a8]
sub rsp, 0x8a0
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rdi
mov rax, qword [0x140232230]
xor rax, rsp
mov qword [rbp + 0x790], rax
mov rbx, rcx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x14002161e
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14002161e
mov r9, rbx
lea r8, [0x1401b8530]
mov edx, 0x400
lea rcx, [rbp - 0x70]
call fcn.140167410
lea rax, [rsp + 0x50]
mov qword [rbp - 0x80], rax
lea rax, [rsp + 0x20]
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x68], 7
xor edi, edi
mov qword [rsp + 0x60], rdi
mov word [rsp + 0x50], di
cmp word [rbp - 0x70], di
jne 0x140021562
mov r8d, edi
jmp 0x14002157a
lea rax, [rbp - 0x70]
or r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], di
jne 0x140021570
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x50]
call fcn.14000dc20
nop
mov qword [rsp + 0x38], 7
mov qword [rsp + 0x30], rdi
mov word [rsp + 0x20], di
mov r8d, reloc.WS2_32.dll_ntohs
lea rdx, str._path___remove_
lea rcx, [rsp + 0x20]
call fcn.14000dc20
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x20]
call fcn.140078b90
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x20]
call fcn.1401670f4
nop
lea rax, vtable.win32_error.0
mov qword [rsp + 0x20], rax
lea rax, str.DeleteFile
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0x48], ebx
lea rax, vtable.path_error.0
mov qword [rsp + 0x20], rax
lea rdx, [0x14022d858]
lea rcx, [rsp + 0x20]
call fcn.140170da8
int3
mov rcx, qword [rbp + 0x790]
xor rcx, rsp
call fcn.140166980
lea r11, [rsp + 0x8a0]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret
Function at 0x140021650
Capabilities:
Check if file exists
Copy file

Disassembly:
push rbp
lea rbp, [rsp - 0xfb0]
mov eax, 0x10b0
call fcn.14017fcc0
sub rsp, rax
mov qword [rbp - 0x78], 0xfffffffffffffffe
mov qword [rsp + 0x10d0], rbx
mov qword [rsp + 0x10d8], rdi
mov rax, qword [0x140232230]
xor rax, rsp
mov qword [rbp + 0xfa0], rax
mov rbx, rdx
mov rdi, rcx
mov rcx, rdx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
cmp eax, 1
jne 0x1400216ac
mov rcx, rbx
call fcn.1400214c0
mov r8d, 1
mov rdx, rbx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x1400217ce
mov qword [rsp + 0x20], rbx
mov r9, rdi
lea r8, str.Cant_copy_file_from:__s__to:__s___
mov edx, 0x800
lea rcx, [rbp - 0x60]
call fcn.140167410
lea rax, [rsp + 0x60]
mov qword [rbp - 0x70], rax
lea rax, [rsp + 0x30]
mov qword [rbp - 0x80], rax
mov qword [rsp + 0x78], 7
xor edi, edi
mov qword [rsp + 0x70], rdi
mov word [rsp + 0x60], di
cmp word [rbp - 0x60], di
jne 0x140021715
mov r8d, edi
jmp 0x14002172a
lea rax, [rbp - 0x60]
or r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rax + r8*2], di
jne 0x140021720
lea rdx, [rbp - 0x60]
lea rcx, [rsp + 0x60]
call fcn.14000dc20
nop
mov qword [rsp + 0x48], 7
mov qword [rsp + 0x40], rdi
mov word [rsp + 0x30], di
mov r8d, reloc.WS2_32.dll_listen
lea rdx, str._path___copy_
lea rcx, [rsp + 0x30]
call fcn.14000dc20
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x30]
call fcn.140078b90
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x30]
call fcn.1401670f4
nop
lea rax, vtable.win32_error.0
mov qword [rsp + 0x30], rax
lea rax, str.CopyFile
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rdi
mov dword [rsp + 0x58], ebx
lea rax, vtable.path_error.0
mov qword [rsp + 0x30], rax
lea rdx, [0x14022d858]
lea rcx, [rsp + 0x30]
call fcn.140170da8
int3
mov rcx, qword [rbp + 0xfa0]
xor rcx, rsp
call fcn.140166980
lea r11, [rsp + 0x10b0]
mov rbx, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x1400283f0
Capabilities:
Allocate or change rwx memory

Disassembly:
sub rsp, 0x68
mov rax, qword [0x140232230]
xor rax, rsp
mov qword [rsp + 0x58], rax
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
jne 0x140028427
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140166980
add rsp, 0x68
ret
lea rdx, [0x1401ba9a0]
mov rcx, rax
mov qword [rsp + 0x60], rdi
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rdi, rax
test rax, rax
je 0x1400284e3
mov edx, reloc.WS2_32.dll_listen
lea r9, [rsp + 0x30]
mov rcx, rax
lea r8d, [rdx + 0x33]
mov qword [rsp + 0x70], rbx
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x78], rsi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov word [rsp + 0x40], 0xbb49
mov ebx, eax
lea rax, [method.std::codecvt_wchar_t__char__int_.virtual_40]
mov word [rsp + 0x4a], 0xff41
mov qword [rsp + 0x42], rax
mov byte [rsp + 0x4c], 0xe3
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
lea rax, [rsp + 0x38]
lea r8, [rsp + 0x40]
mov r9d, reloc.WS2_32.dll_listen
mov rdx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_WriteProcessMemory]
test ebx, ebx
mov rbx, qword [rsp + 0x70]
mov esi, eax
je 0x1400284dc
mov r8d, dword [rsp + 0x30]
lea r9, [rsp + 0x34]
mov edx, reloc.WS2_32.dll_listen
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
mov eax, esi
mov rsi, qword [rsp + 0x78]
mov rdi, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140166980
add rsp, 0x68
ret
Function at 0x14002c0e0
Capabilities:
Write file on windows

Disassembly:
mov rax, rsp
push rbp
push r14
push r15
mov rbp, rsp
sub rsp, 0x70
mov qword [rbp - 0x38], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rax, qword [0x140232230]
xor rax, rsp
mov qword [rbp - 0x10], rax
mov rdi, rcx
cmp qword [rcx + 0x78], 0
je 0x14002c314
cmp byte [rcx + 0x81], 0
je 0x14002c314
mov rax, qword [rcx]
or edx, 0xffffffff
call qword [rax + 0x18]
cmp eax, 0xffffffff
jne 0x14002c141
xor al, al
jmp 0x14002c316
xor r14d, r14d
mov qword [rbp - 0x20], r14
mov qword [rbp - 0x18], r14
mov r15d, reloc.WS2_32.dll_ntohs
mov qword [rbp - 0x18], r15
mov qword [rbp - 0x20], r14
mov byte [rbp - 0x30], r14b
xor ecx, ecx
mov qword [rbp - 0x30], rcx
mov qword [rbp - 0x20], 8
lea rax, [rbp - 0x30]
cmp r15, 0x10
cmovae rax, rcx
mov byte [rax + 8], cl
mov r9, qword [rbp - 0x18]
mov r10, qword [rbp - 0x30]
nop word [rax + rax]
lea rdx, [rbp - 0x30]
cmp r9, 0x10
cmovae rdx, r10
lea r8, [rbp - 0x30]
cmovae r8, r10
mov rcx, qword [rdi + 0x78]
mov r10, qword [rcx]
mov r9, qword [rbp - 0x20]
add r9, rdx
lea rax, [rbp - 0x40]
mov qword [rsp + 0x20], rax
lea rdx, [rdi + 0x84]
call qword [r10 + 0x40]
test eax, eax
je 0x14002c1d4
dec eax
jne 0x14002c2ce
jmp 0x14002c1db
mov byte [rdi + 0x81], 0
lea rax, [rbp - 0x30]
mov r10, qword [rbp - 0x30]
mov r9, qword [rbp - 0x18]
cmp r9, 0x10
cmovae rax, r10
mov rbx, qword [rbp - 0x40]
sub rbx, rax
je 0x14002c229
lea rcx, [rbp - 0x30]
cmp r9, 0x10
cmovae rcx, r10
mov r9, qword [rdi + 0x90]
mov r8, rbx
mov edx, 1
call fcn.140168220
cmp rbx, rax
jne 0x14002c2d3
mov r9, qword [rbp - 0x18]
mov r10, qword [rbp - 0x30]
cmp byte [rdi + 0x81], 0
je 0x14002c2f1
test rbx, rbx
jne 0x14002c190
or rax, 0xffffffffffffffff
mov r8, qword [rbp - 0x20]
sub rax, r8
cmp rax, 8
jbe 0x14002c2e4
lea rbx, [r8 + 8]
cmp rbx, 0xfffffffffffffffe
ja 0x14002c2d7
cmp r9, rbx
jae 0x14002c279
mov rdx, rbx
lea rcx, [rbp - 0x30]
call fcn.140001dc0
mov r9, qword [rbp - 0x18]
mov r10, qword [rbp - 0x30]
jmp 0x14002c295
test rbx, rbx
jne 0x14002c29e
mov qword [rbp - 0x20], r14
lea rax, [rbp - 0x30]
cmp r9, 0x10
cmovae rax, r10
mov byte [rax], bl
jmp 0x14002c17b
test rbx, rbx
je 0x14002c190
lea rcx, [rbp - 0x30]
cmp r9, 0x10
cmovae rcx, r10
mov rax, qword [rbp - 0x20]
xor edx, edx
mov qword [rax + rcx], rdx
mov qword [rbp - 0x20], rbx
lea rax, [rbp - 0x30]
cmp qword [rbp - 0x18], 0x10
cmovae rax, qword [rbp - 0x30]
mov byte [rbx + rax], dl
jmp 0x14002c17b
sub eax, 2
je 0x14002c2f1
xor bl, bl
jmp 0x14002c2f3
lea rcx, str.string_too_long
call fcn.140144f6c
int3
lea rcx, str.string_too_long
call fcn.140144f6c
int3
mov bl, 1
cmp qword [rbp - 0x18], 0x10
jb 0x14002c303
mov rcx, qword [rbp - 0x30]
call fcn.1401669a0
mov qword [rbp - 0x18], r15
mov qword [rbp - 0x20], r14
mov byte [rbp - 0x30], 0
movzx eax, bl
jmp 0x14002c316
mov al, 1
mov rcx, qword [rbp - 0x10]
xor rcx, rsp
call fcn.140166980
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
mov rsp, r11
pop r15
pop r14
pop rbp
ret
Function at 0x140030140
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0x30
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbp
mov rax, rdx
mov rsi, rcx
xor r14d, r14d
mov dword [rsp + 0x20], r14d
mov edx, 0x405
mov rcx, rax
call qword [sym.imp.USER32.dll_GetDlgItem]
mov rbp, rax
test rax, rax
je 0x1400301f5
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
lea ebx, [rax + 1]
movsxd rcx, ebx
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.140145c6c
mov rdi, rax
mov qword [rsp + 0x68], rax
mov r8d, ebx
mov rdx, rax
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetWindowTextW]
movsxd r8, eax
mov qword [rsi + 0x18], 7
mov qword [rsi + 0x10], r14
mov word [rsi], r14w
mov rdx, rdi
mov rcx, rsi
call fcn.14000dc20
mov dword [rsp + 0x20], 1
mov rcx, rdi
call fcn.140167434
jmp 0x140030220
mov qword [rsi + 0x18], 7
mov qword [rsi + 0x10], r14
mov word [rsi], r14w
xor r8d, r8d
lea rdx, [0x1401b6720]
mov rcx, rsi
call fcn.14000dc20
nop
mov dword [rsp + 0x20], 1
mov rax, rsi
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret
Function at 0x140030350
Capabilities:
Get local ipv4 addresses

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
push rbp
push rsi
push rdi
push r14
push r15
sub rsp, 0x50
mov ebp, edx
mov rdi, rcx
lea rdx, [rax + 0x10]
xor r15d, r15d
xor ecx, ecx
mov dword [rax + 0x10], r15d
call qword [sym.imp.IPHLPAPI.DLL_GetAdaptersInfo]
cmp eax, 0x6f
jne 0x1400303f1
mov ecx, dword [rsp + 0x88]
call fcn.140167bc0
lea rdx, [rsp + 0x88]
mov rcx, rax
mov r14, rax
call qword [sym.imp.IPHLPAPI.DLL_GetAdaptersInfo]
test eax, eax
jne 0x1400303e9
mov rbx, r14
test r14, r14
je 0x1400303e9
mov esi, ebp
and esi, 2
test esi, esi
je 0x1400303c3
lea rdx, [rbx + 0x1e8]
mov rcx, rdi
call fcn.140030290
cmp dword [rbx + 0x1a8], r15d
je 0x1400303e1
test bpl, 4
je 0x1400303e1
lea rdx, [rbx + 0x218]
mov rcx, rdi
call fcn.140030290
mov rbx, qword [rbx]
test rbx, rbx
jne 0x1400303b0
mov rcx, r14
call fcn.1401673d0
mov r14d, ebp
and r14d, 1
jne 0x140030404
test bpl, 8
je 0x140030542
test r14d, r14d
mov ebx, 0x26
mov eax, 0x27
cmove ebx, eax
mov dword [rsp + 0x88], r15d
and ebp, 8
jne 0x140030424
or ebx, 8
xor r9d, r9d
lea rax, [rsp + 0x88]
xor r8d, r8d
lea ecx, [r9 + 2]
mov edx, ebx
mov qword [rsp + 0x20], rax
call qword [sym.imp.IPHLPAPI.DLL_GetAdaptersAddresses]
cmp eax, 0x6f
jne 0x140030542
mov ecx, dword [rsp + 0x88]
call fcn.140167bc0
xor r8d, r8d
mov edx, ebx
mov r15, rax
lea rax, [rsp + 0x88]
lea ecx, [r8 + 2]
mov r9, r15
mov qword [rsp + 0x20], rax
call qword [sym.imp.IPHLPAPI.DLL_GetAdaptersAddresses]
test eax, eax
jne 0x14003053a
mov rsi, r15
test r15, r15
je 0x14003053a
nop
test r14d, r14d
je 0x1400304dd
mov rbx, qword [rsi + 0x18]
test rbx, rbx
je 0x1400304dd
nop
mov rax, qword [rbx + 0x10]
mov ecx, dword [rax + 4]
call qword [sym.imp.WS2_32.dll_ntohl]
lea r9, [rsp + 0x90]
lea rdx, [rsp + 0x30]
mov dword [rsp + 0x90], eax
movzx eax, byte [0x14023a16a]
mov rcx, rdi
mov byte [rsp + 0x20], al
call fcn.140030560
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x1400304a0
test ebp, ebp
je 0x14003052d
mov rbx, qword [rsi + 0x30]
test rbx, rbx
je 0x14003052d
nop word [rax + rax]
mov rax, qword [rbx + 0x10]
mov ecx, dword [rax + 4]
call qword [sym.imp.WS2_32.dll_ntohl]
lea r9, [rsp + 0x90]
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x90], eax
movzx eax, byte [0x14023a16a]
mov rcx, rdi
mov byte [rsp + 0x20], al
call fcn.140030560
mov rbx, qword [rbx + 8]
test rbx, rbx
jne 0x1400304f0
mov rsi, qword [rsi + 8]
test rsi, rsi
jne 0x140030490
mov rcx, r15
call fcn.1401673d0
mov rbx, qword [rsp + 0x80]
add rsp, 0x50
pop r15
pop r14
pop rdi
pop rsi
pop rbp
ret
Function at 0x14003b5d0
Capabilities:
Create directory

Disassembly:
push rbp
lea rbp, [rsp - 0xfa0]
mov eax, 0x10a0
call fcn.14017fcc0
sub rsp, rax
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rsp + 0x10b8], rbx
mov qword [rsp + 0x10c0], rsi
mov qword [rsp + 0x10c8], rdi
mov rax, qword [0x140232230]
xor rax, rsp
mov qword [rbp + 0xf90], rax
mov rbx, rcx
lea rdx, [rsp + 0x68]
call fcn.140021230
nop
cmp qword [rax + 0x18], 8
jb 0x14003b631
mov rax, qword [rax]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
sete dil
cmp qword [rbp - 0x80], 8
jb 0x14003b653
mov rcx, qword [rsp + 0x68]
call fcn.1401669a0
mov qword [rbp - 0x80], 7
xor esi, esi
mov qword [rsp + 0x78], rsi
mov word [rsp + 0x68], si
test dil, dil
je 0x14003b76f
mov r9, rbx
lea r8, str.Cant_create_directory:__s___
mov edx, 0x800
lea rcx, [rbp - 0x70]
call fcn.140167410
lea rax, [rsp + 0x68]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x20]
mov qword [rsp + 0x50], rax
mov qword [rbp - 0x80], 7
mov qword [rsp + 0x78], rsi
mov word [rsp + 0x68], si
cmp word [rbp - 0x70], si
jne 0x14003b6b9
mov r8d, esi
jmp 0x14003b6cb
lea rax, [rbp - 0x70]
or r8, 0xffffffffffffffff
inc r8
cmp word [rax + r8*2], si
jne 0x14003b6c1
lea rdx, [rbp - 0x70]
lea rcx, [rsp + 0x68]
call fcn.14000dc20
nop
mov qword [rsp + 0x38], 7
mov qword [rsp + 0x30], rsi
mov word [rsp + 0x20], si
mov r8d, 0x19
lea rdx, str._path___create_directory_
lea rcx, [rsp + 0x20]
call fcn.14000dc20
nop
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r9d, eax
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x20]
call fcn.140078b90
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea rcx, [rsp + 0x20]
call fcn.1401670f4
nop
lea rax, vtable.win32_error.0
mov qword [rsp + 0x20], rax
lea rax, str.CreateDirectory
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rsi
mov dword [rsp + 0x48], ebx
lea rax, vtable.path_error.0
mov qword [rsp + 0x20], rax
lea rdx, [0x14022d858]
lea rcx, [rsp + 0x20]
call fcn.140170da8
int3
mov rcx, qword [rbp + 0xf90]
xor rcx, rsp
call fcn.140166980
lea r11, [rsp + 0x10a0]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop rbp
ret
Function at 0x1400405a0
Capabilities:
Get graphical window text

Disassembly:
mov qword [rsp + 8], rcx
push rsi
push rdi
push r14
sub rsp, 0x30
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rbp
mov rax, rdx
mov rsi, rcx
xor r14d, r14d
mov dword [rsp + 0x20], r14d
mov edx, 0x437
mov rcx, rax
call qword [sym.imp.USER32.dll_GetDlgItem]
mov rbp, rax
test rax, rax
je 0x140040655
mov rcx, rax
call qword [sym.imp.USER32.dll_GetWindowTextLengthW]
lea ebx, [rax + 1]
movsxd rcx, ebx
mov eax, 2
mul rcx
mov rcx, 0xffffffffffffffff
cmovo rax, rcx
mov rcx, rax
call fcn.140145c6c
mov rdi, rax
mov qword [rsp + 0x68], rax
mov r8d, ebx
mov rdx, rax
mov rcx, rbp
call qword [sym.imp.USER32.dll_GetWindowTextW]
movsxd r8, eax
mov qword [rsi + 0x18], 7
mov qword [rsi + 0x10], r14
mov word [rsi], r14w
mov rdx, rdi
mov rcx, rsi
call fcn.14000dc20
mov dword [rsp + 0x20], 1
mov rcx, rdi
call fcn.140167434
jmp 0x140040680
mov qword [rsi + 0x18], 7
mov qword [rsi + 0x10], r14
mov word [rsi], r14w
xor r8d, r8d
lea rdx, [0x1401b6720]
mov rcx, rsi
call fcn.14000dc20
nop
mov dword [rsp + 0x20], 1
mov rax, rsi
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x30
pop r14
pop rdi
pop rsi
ret

Function at 0x1400406a0
Capabilities:
Read file on windows

Disassembly:
push rdi
sub rsp, 0x60
mov qword [rsp + 0x28], 0xfffffffffffffffe
mov qword [rsp + 0x78], rbx
mov rax, qword [0x140232230]
xor rax, rsp
mov qword [rsp + 0x58], rax
lea rdx, [rsp + 0x30]
call fcn.140021800
nop
cmp qword [rax + 0x18], 8
jb 0x1400406d8
mov rax, qword [rax]
lea rdx, [0x1401c5010]
mov rcx, rax
call fcn.140167854
mov rdi, rax
cmp qword [rsp + 0x48], 8
jb 0x1400406fc
mov rcx, qword [rsp + 0x30]
call fcn.1401669a0
mov qword [rsp + 0x48], 7
xor eax, eax
mov qword [rsp + 0x40], rax
mov word [rsp + 0x30], ax
test rdi, rdi
jne 0x140040750
lea rax, str.file_does_not_exist
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call int.14016707c
nop
lea rax, vtable.std::runtime_error.0
mov qword [rsp + 0x30], rax
lea rdx, [0x14022d968]
lea rcx, [rsp + 0x30]
call fcn.140170da8
int3
mov r9, rdi
mov edx, 1
lea r8d, [rdx + 5]
lea rcx, [rsp + 0x50]
call fcn.14016968c
mov rbx, rax
mov rcx, rdi
call fcn.1401679bc
cmp rbx, 2
jb 0x1400407c4
mov ecx, dword [rsp + 0x50]
cmp cl, 0x1f
jne 0x14004078e
cmp byte [rsp + 0x51], 0x8b
jne 0x14004078e
mov eax, 2
jmp 0x1400407c6
cmp rbx, 4
jb 0x1400407c4
cmp ecx, dword [0x1401c502c]
jne 0x1400407a3
mov eax, 1
jmp 0x1400407c6
cmp rbx, 6
jne 0x1400407c4
cmp ecx, dword [0x1401c5034]
jne 0x1400407c4
movzx eax, word [rsp + 0x54]
cmp ax, word [0x1401c5038]
jne 0x1400407c4
lea eax, [rbx - 3]
jmp 0x1400407c6
xor eax, eax
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140166980
mov rbx, qword [rsp + 0x78]
add rsp, 0x60
pop rdi
ret