joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140013b00
Capabilities:
Delete file
Get common file path
Get file size
Open clipboard
Read file on windows
Write clipboard data

Disassembly:
push rdi
sub rsp, 0x270
mov rdi, rcx
lea rdx, [rsp + 0x150]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathA]
test eax, eax
jne 0x140013b36
lea rcx, [rsp + 0x150]
mov edx, 0x104
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea r9, [rsp + 0x40]
lea rdx, [0x140028430]
lea rcx, [rsp + 0x150]
xor r8d, r8d
mov byte [rsp + 0x40], 0
call qword [sym.imp.KERNEL32.dll_GetTempFileNameA]
mov rax, qword [rdi + 0x2d0]
mov rcx, qword [rdi + 0x2d8]
mov eax, dword [rax + 0x584]
mov r9d, 1
lea rdx, [rsp + 0x40]
mov dword [rcx + 0x24c], eax
mov rcx, qword [rdi + 0x2d8]
lea r8d, [r9 + 1]
mov dword [rsp + 0x20], 1
call fcn.14001a610
test eax, eax
jne 0x140013bbe
mov rax, qword [0x14002fec0]
mov rcx, qword [rdi + 0x110]
xor edx, edx
mov r8d, dword [rax + 0x59c]
call fcn.140020350
add rsp, 0x270
pop rdi
ret
mov rcx, qword [rdi + 0x110]
mov qword [rsp + 0x288], rbx
xor ebx, ebx
call qword [sym.imp.USER32.dll_OpenClipboard]
test eax, eax
je 0x140013d00
mov qword [rsp + 0x298], rsi
call qword [sym.imp.USER32.dll_EmptyClipboard]
mov qword [rsp + 0x30], rbx
lea r8d, [rbx + 1]
lea rcx, [rsp + 0x40]
xor r9d, r9d
mov edx, 0x80000000
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
cmp rax, 0xffffffffffffffff
mov rsi, rax
je 0x140013ce8
mov qword [rsp + 0x290], rbp
xor edx, edx
mov rcx, rax
mov qword [rsp + 0x268], r12
mov qword [rsp + 0x260], r13
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov r12d, eax
mov ecx, 0x2000
lea edx, [r12 + 1]
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
test rax, rax
mov rbp, rax
je 0x140013caf
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
lea r9, [rsp + 0x280]
mov r8d, r12d
mov rcx, rsi
mov rdx, rax
mov qword [rsp + 0x20], rbx
mov r13, rax
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x140013ca5
mov rcx, rbp
mov byte [r12 + r13], bl
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea ecx, [rbx + 1]
mov rdx, rbp
call qword [sym.imp.USER32.dll_SetClipboardData]
jmp 0x140013cb7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x140013cb7
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r13, qword [rsp + 0x260]
mov r12, qword [rsp + 0x268]
mov rbp, qword [rsp + 0x290]
call qword [sym.imp.USER32.dll_CloseClipboard]
mov rsi, qword [rsp + 0x298]
jmp 0x140013d08
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
call qword [sym.imp.USER32.dll_CloseClipboard]
mov rsi, qword [rsp + 0x298]
jmp 0x140013d08
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test ebx, ebx
je 0x140013d28
mov rax, qword [0x14002fec0]
mov rcx, qword [rdi + 0x110]
mov edx, ebx
mov r8d, dword [rax + 0x59c]
call fcn.140020350
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov rbx, qword [rsp + 0x288]
add rsp, 0x270
pop rdi
ret
Function at 0x1400168e0
Capabilities:
Write file on windows

Disassembly:
push rbx
push rsi
push r12
push r13
push r14
mov eax, 0x4030
call fcn.1400261c0
sub rsp, rax
mov r12, r8
mov rsi, rcx
mov r13, rdx
lea r8d, [rax - 0x31]
lea rcx, [rsp + 0x31]
xor edx, edx
mov byte [rsp + 0x30], 0
call sub.msvcrt.dll_memset
xor r14d, r14d
mov ebx, r14d
cmp dword [rsi + 0x40], ebx
jle 0x1400169e5
mov qword [rsp + 0x4068], rbp
mov qword [rsp + 0x4070], rdi
mov rbp, r14
nop
nop
nop
test r12, r12
mov rax, qword [rsi + 0x48]
movsxd rdx, dword [rax + rbp]
jne 0x14001695f
mov rax, qword [rsi + 0x240]
lea rcx, [rdx + rdx*2]
mov rdx, qword [rax + rcx*8 + 0x10]
jmp 0x140016970
mov rax, qword [r12]
lea r8, [rsp + 0x30]
mov rcx, r12
call qword [rax]
mov rdx, rax
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rdx
repne scasb al, byte [rdi]
lea r9, [rsp + 0x4060]
mov qword [rsp + 0x20], r14
not rcx
lea r8, [rcx - 1]
mov rcx, r13
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov edx, dword [rsi + 0x40]
sub edx, 1
cmp ebx, edx
jge 0x1400169c5
lea r9, [rsp + 0x4078]
lea rdx, [0x1400280b0]
mov r8d, 1
mov rcx, r13
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
add ebx, 1
add rbp, 4
cmp ebx, dword [rsi + 0x40]
jl 0x140016940
mov rdi, qword [rsp + 0x4070]
mov rbp, qword [rsp + 0x4068]
lea r9, [rsp + 0x4060]
lea rdx, [0x1400280d4]
mov r8d, 2
mov rcx, r13
mov qword [rsp + 0x20], r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
add rsp, 0x4030
pop r14
pop r13
pop r12
pop rsi
pop rbx
ret
Function at 0x14001b510
Capabilities:
Read .ini file

Disassembly:
push rbx
mov eax, 0x1060
call fcn.1400261c0
sub rsp, rax
xor eax, eax
mov rbx, rdx
lea rdx, [rsp + 0x30]
lea r8d, [rax + 0xa]
mov byte [rsp + 0x30], 0
mov qword [rsp + 0x31], rax
mov qword [rsp + 0x39], rax
mov qword [rsp + 0x41], rax
mov dword [rsp + 0x49], eax
mov word [rsp + 0x4d], ax
mov byte [rsp + 0x4f], al
call sub.msvcrt.dll__itoa
lea rcx, [rsp + 0x51]
xor edx, edx
mov r8d, 0x1000
mov byte [rsp + 0x50], 0
call sub.msvcrt.dll_memset
lea r11, [0x14002fb20]
mov qword [rsp + 0x28], r11
lea r9, [rsp + 0x50]
lea r8, [0x140027e59]
lea rdx, [rsp + 0x30]
lea rcx, [0x14002fc30]
mov dword [rsp + 0x20], 0x1000
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [rsp + 0x50], 0
je 0x14001b5cd
lea rax, [rsp + 0x50]
lea rcx, [rsp + 0x50]
sub rbx, rax
movzx eax, byte [rcx]
add rcx, 1
test al, al
mov byte [rbx + rcx - 1], al
jne 0x14001b5b0
mov eax, 1
add rsp, 0x1060
pop rbx
ret
xor eax, eax
add rsp, 0x1060
pop rbx
ret

Function at 0x14001ba80
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 8], rbx
push rdi
mov eax, 0x1060
call fcn.1400261c0
sub rsp, rax
xor eax, eax
mov rbx, rdx
lea rdx, [rsp + 0x30]
lea r8d, [rax + 0xa]
mov byte [rsp + 0x30], 0
mov qword [rsp + 0x31], rax
mov qword [rsp + 0x39], rax
mov qword [rsp + 0x41], rax
mov dword [rsp + 0x49], eax
mov word [rsp + 0x4d], ax
mov byte [rsp + 0x4f], al
call sub.msvcrt.dll__itoa
lea rcx, [rsp + 0x51]
xor edx, edx
mov r8d, 0x1000
mov byte [rsp + 0x50], 0
call sub.msvcrt.dll_memset
lea rdi, [0x14002fb20]
lea r9, [rsp + 0x50]
lea r8, [0x140027e59]
lea rdx, [rsp + 0x30]
lea rcx, [0x14002fc30]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x1000
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [rsp + 0x50], 0
jne 0x14001bb40
lea rdx, [rsp + 0x30]
lea rcx, [0x14002fc30]
mov r9, rdi
mov r8, rbx
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov rbx, qword [rsp + 0x1070]
add rsp, 0x1060
pop rdi
ret
xor eax, eax
mov rbx, qword [rsp + 0x1070]
add rsp, 0x1060
pop rdi
ret

Function at 0x14001bb60
Capabilities:
Read .ini file

Disassembly:
push rbx
mov eax, 0x2050
call fcn.1400261c0
sub rsp, rax
cmp byte [0x14002fb20], 0
mov rbx, rcx
je 0x14001bc48
lea rcx, [rsp + 0x1041]
xor edx, edx
mov r8d, 0x1000
mov byte [rsp + 0x1040], 0
call sub.msvcrt.dll_memset
mov r8d, dword [0x14002fc78]
lea rdx, str.dialog__d
lea rcx, [0x14002fc30]
call sub.msvcrt.dll_sprintf
lea rcx, [rsp + 0x31]
xor edx, edx
mov r8d, 0x1000
mov byte [rsp + 0x30], 0
call sub.msvcrt.dll_memset
lea r11, [0x14002fb20]
lea r9, [rsp + 0x30]
mov qword [rsp + 0x28], r11
lea r8, [0x140027e59]
lea rdx, str.caption
lea rcx, [0x14002fc30]
mov dword [rsp + 0x20], 0x1000
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [rsp + 0x30], 0
je 0x14001bc35
xor ecx, ecx
nop
nop
movzx eax, byte [rsp + rcx + 0x30]
add rcx, 1
test al, al
mov byte [rsp + rcx + 0x103f], al
jne 0x14001bc10
lea rdx, [rsp + 0x1040]
mov rcx, rbx
call qword [sym.imp.USER32.dll_SetWindowTextA]
lea rdx, [0x14001b660]
xor r8d, r8d
mov rcx, rbx
call qword [sym.imp.USER32.dll_EnumChildWindows]
add rsp, 0x2050
pop rbx
ret
Function at 0x14001c230
Capabilities:
Check if file exists
Get file attributes
Read .ini file

Disassembly:
push rdi
sub rsp, 0x140
lea rcx, [rsp + 0x31]
xor edx, edx
mov r8d, 0x104
mov byte [rsp + 0x30], 0
call sub.msvcrt.dll_memset
lea rdx, [rsp + 0x30]
mov r8d, 0x104
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea rcx, [rsp + 0x30]
mov edx, 0x2e
call sub.msvcrt.dll_strrchr
test rax, rax
je 0x14001c27a
mov byte [rax], 0
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x30]
repne scasb al, byte [rdi]
mov rax, qword [str._lng.ini]
lea rcx, [rsp + 0x30]
mov qword [rdi - 1], rax
movzx eax, byte [0x1400280a0]
mov byte [rdi + 7], al
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x14001c3c3
xor edi, edi
mov qword [rsp + 0x150], rbx
lea rbx, [0x14002fb20]
mov rcx, rdi
nop
nop
nop
movzx eax, byte [rsp + rcx + 0x30]
add rcx, 1
test al, al
mov byte [rcx + rbx - 1], al
jne 0x14001c2d0
movabs rax, 0x6c6172656e6567
lea rdx, [0x14002806c]
lea rcx, [0x14002fc30]
mov r9, rbx
xor r8d, r8d
mov qword [0x14002fc30], rax
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
lea r9, [0x14002fc80]
lea r8, [0x140027e59]
cmp eax, 1
lea rdx, str.charset
lea rcx, [0x14002fc30]
sete dil
mov qword [rsp + 0x28], rbx
mov byte [0x14002fc80], 0
mov dword [0x14002fa74], edi
mov dword [rsp + 0x20], 0x3f
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea r9, [0x14002fcc0]
lea r8, [0x140027e59]
lea rdx, str.TranslatorName
lea rcx, [0x14002fc30]
mov qword [rsp + 0x28], rbx
mov byte [0x14002fcc0], 0
mov dword [rsp + 0x20], 0x3f
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea r9, [0x14002fd00]
lea r8, [0x140027e59]
lea rdx, str.TranslatorURL
lea rcx, [0x14002fc30]
mov qword [rsp + 0x28], rbx
mov byte [0x14002fd00], 0
mov dword [rsp + 0x20], 0xff
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
mov rbx, qword [rsp + 0x150]
add rsp, 0x140
pop rdi
ret
Function at 0x14001c3e0
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
mov eax, 0x2070
call fcn.1400261c0
sub rsp, rax
mov rdi, rcx
lea rcx, [rsp + 0x1061]
xor edx, edx
mov r8d, 0x1000
mov byte [rsp + 0x1060], 0
call sub.msvcrt.dll_memset
xor ebx, ebx
lea rsi, [0x14002fb20]
nop
nop
nop
nop
lea r8, [rsp + 0x1060]
mov r9d, 0x1000
mov edx, ebx
mov rcx, rdi
call qword [sym.imp.USER32.dll_LoadStringA]
test eax, eax
jle 0x14001c4ea
xor eax, eax
lea rdx, [rsp + 0x30]
mov ecx, ebx
lea r8d, [rax + 0xa]
mov byte [rsp + 0x30], 0
mov qword [rsp + 0x31], rax
mov qword [rsp + 0x39], rax
mov qword [rsp + 0x41], rax
mov dword [rsp + 0x49], eax
mov word [rsp + 0x4d], ax
mov byte [rsp + 0x4f], al
call sub.msvcrt.dll__itoa
lea rcx, [rsp + 0x51]
xor edx, edx
mov r8d, 0x1000
mov byte [rsp + 0x50], 0
call sub.msvcrt.dll_memset
lea r9, [rsp + 0x50]
lea r8, [0x140027e59]
lea rdx, [rsp + 0x30]
lea rcx, [0x14002fc30]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], 0x1000
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [rsp + 0x50], 0
jne 0x14001c4ea
lea r8, [rsp + 0x1060]
lea rdx, [rsp + 0x30]
lea rcx, [0x14002fc30]
mov r9, rsi
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
add ebx, 1
cmp ebx, 0xffff
jbe 0x14001c430
lea r11, [rsp + 0x2070]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret

Function at 0x14001ccb0
Capabilities:
Read .ini file

Disassembly:
mov qword [rsp + 8], rbx
push rdi
mov eax, 0x1040
call fcn.1400261c0
sub rsp, rax
lea rdi, [0x14002fb20]
mov rbx, rcx
mov r8, rdi
sub r8, rdx
nop
nop
nop
nop
movzx eax, byte [rdx]
add rdx, 1
test al, al
mov byte [r8 + rdx - 1], al
jne 0x14001cce0
movabs rax, 0x6c6172656e6567
lea rcx, [rsp + 0x31]
xor edx, edx
mov r8d, 0x1000
mov byte [rsp + 0x30], 0
mov qword [0x14002fc30], rax
call sub.msvcrt.dll_memset
lea r9, [rsp + 0x30]
lea r8, [0x140027e59]
lea rdx, str.TranslatorName
lea rcx, [0x14002fc30]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x1000
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [rsp + 0x30], 0
jne 0x14001cd6a
lea r8, [0x140027e59]
lea rdx, str.TranslatorName
lea rcx, [0x14002fc30]
mov r9, rdi
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
lea rcx, [rsp + 0x31]
xor edx, edx
mov r8d, 0x1000
mov byte [rsp + 0x30], 0
call sub.msvcrt.dll_memset
lea r9, [rsp + 0x30]
lea r8, [0x140027e59]
lea rdx, str.TranslatorURL
lea rcx, [0x14002fc30]
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], 0x1000
call qword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
cmp byte [rsp + 0x30], 0
jne 0x14001cdd3
lea r8, [0x140027e59]
lea rdx, str.TranslatorURL
lea rcx, [0x14002fc30]
mov r9, rdi
call qword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
xor r9d, r9d
lea r8, [0x14001c970]
mov rcx, rbx
lea edx, [r9 + 4]
call qword [sym.imp.KERNEL32.dll_EnumResourceNamesA]
xor r9d, r9d
lea r8, [0x14001c970]
lea edx, [r9 + 5]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnumResourceNamesA]
movabs r11, 0x73676e69727473
mov rcx, rbx
mov qword [0x14002fc30], r11
call fcn.14001c3e0
mov rbx, qword [rsp + 0x1050]
mov byte [0x14002fb20], 0
add rsp, 0x1040
pop rdi
ret
Function at 0x14001d1e0
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
cmp qword [rcx], 0
mov rdi, rdx
mov rbx, rcx
jne 0x14001d2b8
lea rcx, str.Iphlpapi.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov qword [rbx], rax
je 0x14001d24b
lea rdx, str.IcmpCreateFile
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.IcmpCloseHandle
mov qword [rbx + 8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.IcmpSendEcho
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x18], rax
cmp qword [rbx + 8], 0
jne 0x14001d2b8
mov rcx, qword [rbx]
test rcx, rcx
je 0x14001d267
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rbx], 0
lea rcx, str.icmp.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov qword [rbx], rax
je 0x14001d2b8
lea rdx, str.IcmpCreateFile
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.IcmpCloseHandle
mov qword [rbx + 8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.IcmpSendEcho
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x18], rax
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x14001d2d1
mov rcx, rdi
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp rax
xor eax, eax
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x14001d2f0
Capabilities:
Link many functions at runtime

Disassembly:
push rbx
sub rsp, 0x20
cmp qword [rcx], 0
mov rbx, rcx
jne 0x14001d3c1
lea rcx, str.Iphlpapi.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov qword [rbx], rax
je 0x14001d354
lea rdx, str.IcmpCreateFile
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.IcmpCloseHandle
mov qword [rbx + 8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.IcmpSendEcho
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x18], rax
cmp qword [rbx + 8], 0
jne 0x14001d3c1
mov rcx, qword [rbx]
test rcx, rcx
je 0x14001d370
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
mov qword [rbx], 0
lea rcx, str.icmp.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
test rax, rax
mov qword [rbx], rax
je 0x14001d3c1
lea rdx, str.IcmpCreateFile
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.IcmpCloseHandle
mov qword [rbx + 8], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov rcx, qword [rbx]
lea rdx, str.IcmpSendEcho
mov qword [rbx + 0x10], rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x18], rax
mov rax, qword [rbx + 8]
test rax, rax
je 0x14001d3d2
add rsp, 0x20
pop rbx
jmp rax
or rax, 0xffffffffffffffff
add rsp, 0x20
pop rbx
ret
Function at 0x14001e2a0
Capabilities:
Get file size
Read file on windows

Disassembly:
push rbx
push r12
push r13
sub rsp, 0x40
xor r13d, r13d
mov rax, rdx
mov rbx, rcx
mov qword [rsp + 0x30], r13
lea r8d, [r13 + 1]
xor r9d, r9d
mov edx, 0x80000000
mov rcx, rax
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileA]
cmp rax, 0xffffffffffffffff
mov r12, rax
je 0x14001e3ca
xor edx, edx
mov rcx, rax
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rdi
call qword [sym.imp.KERNEL32.dll_GetFileSize]
mov rcx, qword [rbx]
test rcx, rcx
mov edi, eax
je 0x14001e30e
call sub.msvcrt.dll_free
mov qword [rbx], r13
cmp edi, 0xffffffff
mov rsi, qword [rbx]
mov eax, dword [rbx + 0x14]
mov dword [rbx + 8], r13d
mov dword [rbx + 0xc], r13d
jne 0x14001e32b
mov rcx, rsi
call sub.msvcrt.dll_free
jmp 0x14001e370
mov qword [rsp + 0x60], rbp
movsxd rbp, dword [rbx + 8]
cmp edi, ebp
jl 0x14001e36b
add dword [rbx + 8], eax
cmp edi, dword [rbx + 8]
jge 0x14001e338
movsxd rcx, dword [rbx + 8]
call sub.msvcrt.dll_malloc
test ebp, ebp
mov qword [rbx], rax
jle 0x14001e36b
test rax, rax
je 0x14001e363
mov r8, rbp
mov rdx, rsi
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov rcx, rsi
call sub.msvcrt.dll_free
mov rbp, qword [rsp + 0x60]
test rsi, rsi
mov rsi, qword [rsp + 0x68]
jne 0x14001e385
mov rax, qword [rbx]
test rax, rax
je 0x14001e385
mov byte [rax], r13b
mov rdx, qword [rbx]
lea r9, [rsp + 0x78]
mov r8d, edi
mov rcx, r12
mov dword [rsp + 0x78], r13d
mov qword [rsp + 0x20], r13
call qword [sym.imp.KERNEL32.dll_ReadFile]
mov rcx, qword [rbx]
mov byte [rdi + rcx], r13b
mov rcx, r12
mov dword [rbx + 0xc], edi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rsp + 0x70]
mov eax, 1
add rsp, 0x40
pop r13
pop r12
pop rbx
ret
xor eax, eax
add rsp, 0x40
pop r13
pop r12
pop rbx
ret
Function at 0x140024930
Capabilities:
Check if file exists
Get common file path
Get disk information
Get file attributes

Disassembly:
mov rax, rsp
sub rsp, 0x248
cmp dword [rcx + 0x40], 0
jne 0x140024aba
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov dword [rcx + 0x40], 1
mov rcx, qword [rcx + 8]
mov qword [rax + 0x18], rsi
mov edx, 0x3ef
mov qword [rax - 8], rdi
call qword [sym.imp.USER32.dll_GetDlgItem]
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
lea rcx, [rsp + 0x131]
xor edx, edx
mov r8d, 0x104
mov byte [rsp + 0x130], 0
mov esi, eax
call sub.msvcrt.dll_memset
cmp byte [0x14002ff70], 0
lea rdi, [0x14002ff70]
jne 0x1400249b6
mov edx, 0x104
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
mov dword [0x140030078], eax
xor ecx, ecx
nop
nop
movzx eax, byte [rcx + rdi]
add rcx, 1
test al, al
mov byte [rsp + rcx + 0x12f], al
jne 0x1400249c0
mov ebx, 2
nop
nop
bt esi, ebx
jae 0x140024a8e
lea rcx, [rsp + 0x21]
xor edx, edx
mov r8d, 0x104
call sub.msvcrt.dll_memset
lea edx, [rbx + 0x41]
lea rcx, [rsp + 0x20]
mov byte [rsp + 0x20], dl
mov byte [rsp + 0x21], 0x3a
mov byte [rsp + 0x22], 0x5c
mov byte [rsp + 0x23], 0
call qword [sym.imp.KERNEL32.dll_GetDriveTypeA]
cmp eax, 2
je 0x140024a26
cmp eax, 3
jne 0x140024a8e
xor eax, eax
or rcx, 0xffffffffffffffff
lea rdi, [rsp + 0x20]
repne scasb al, byte [rdi]
mov rax, qword [str.Windows]
lea rdx, [rsp + 0x130]
lea rcx, [rsp + 0x20]
mov qword [rdi - 1], rax
call sub.msvcrt.dll__strcmpi
test eax, eax
je 0x140024a8e
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x140024a8e
lea r9, [rsp + 0x20]
xor r8d, r8d
mov edx, 0x143
mov rcx, rbp
call qword [sym.imp.USER32.dll_SendMessageA]
xor r9d, r9d
mov edx, 0x151
movsxd r8, eax
mov rcx, rbp
call qword [sym.imp.USER32.dll_SendMessageA]
add ebx, 1
cmp ebx, 0x20
jb 0x1400249e0
mov rdi, qword [rsp + 0x240]
mov rsi, qword [rsp + 0x260]
mov rbp, qword [rsp + 0x258]
mov rbx, qword [rsp + 0x250]
add rsp, 0x248
ret
Function at 0x1807a6108
Capabilities:
Decompress data using aplib

Disassembly:
call fcn.1807a628f
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, 0x80
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x1807a6139
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1807a611f
add dl, dl
jne 0x1807a6146
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1807a61a6
xor eax, eax
add dl, dl
jne 0x1807a6155
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x1807a625d
add dl, dl
jne 0x1807a6166
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1807a6173
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1807a6180
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1807a618d
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x1807a619a
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x1807a612e
mov eax, 1
add dl, dl
jne 0x1807a61b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x1807a61c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1807a61ab
sub eax, ebx
mov ebx, 1
jne 0x1807a61fc
mov ecx, 1
add dl, dl
jne 0x1807a61de
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x1807a61eb
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1807a61d3
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1807a612e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x1807a6218
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x1807a6225
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x1807a620d
cmp eax, 0x7d00
jae 0x1807a624b
cmp eax, 0x500
jb 0x1807a6246
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1807a612e
cmp eax, 0x7f
ja 0x1807a624e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x1807a612e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x1807a6282
adc ecx, 2
mov ebp, eax
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
mov ebx, 1
jmp 0x1807a612e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x14005fe6c
Capabilities:
Get hostname

Disassembly:
mov rax, rsp
mov dword [rax + 8], ecx
push rbp
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x60
mov qword [rbp - 0x40], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov rdi, rdx
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x20], xmm0
xor esi, esi
mov qword [rbp - 0x10], rsi
mov dword [rbp + 0x30], esi
lea r8, [rbp + 0x30]
xor edx, edx
lea ecx, [rsi + 3]
call qword [sym.imp.KERNEL32.dll_GetComputerNameExW]
test eax, eax
je 0x14005feb4
lea ebx, [rsi + 0xd]
jmp 0x14005ff1f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp eax, 0xea
jne 0x14005ff1f
mov word [rbp + 0x20], si
mov edx, dword [rbp + 0x30]
lea rax, [rbp - 0x20]
mov qword [rbp - 0x30], rax
lea rax, [rbp + 0x20]
mov qword [rbp - 0x28], rax
movaps xmm0, xmmword [rbp - 0x30]
movdqa xmmword [rbp - 0x30], xmm0
lea r8, [rbp - 0x30]
lea rcx, [rbp - 0x20]
call fcn.14003cffc
lea r8, [rbp + 0x30]
mov rdx, qword [rbp - 0x20]
mov ecx, 3
call qword [sym.imp.KERNEL32.dll_GetComputerNameExW]
test eax, eax
jne 0x14005ff11
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x14005ff1f
mov rdx, qword [rbp - 0x20]
mov rcx, rdi
call fcn.1400033fc
mov ebx, esi
lea rcx, [rbp - 0x20]
call fcn.1400174fc
mov eax, ebx
mov rbx, qword [rsp + 0x88]
add rsp, 0x60
pop rdi
pop rsi
pop rbp
ret

Function at 0x140060a48
Capabilities:
Terminate process

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_IsDebuggerPresent]
mov ecx, 1
mov dword [0x1400bd0c0], eax
call fcn.140060cf8
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
cmp dword [0x1400bd0c0], 0
jne case.default.0x140060a9e
mov ecx, 1
call fcn.140060cf8
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rcx, rax
mov edx, 0xc0000409
add rsp, 0x20
pop rbx
jmp qword [sym.imp.KERNEL32.dll_TerminateProcess]
jle 0x140125e59
invalid
or eax, 0xafbe56ac
stosb byte [rdi], al
mov esi, 0x256d0507
invalid
jge 0x140125ec6
pop rbp
push rcx
test al, 0xfd
mov esi, 0x4f0f0743
or al, 0x1c
cmp edx, eax
mul byte [rdx + rax - 0x7822c4c9]
cmovbe ebp, dword [rsi + 0x7de73f74]
cmp eax, dword [rsi - 0x43d3a103]
jnp 0x140125e80
fdivr dword [rax + rbx*8 - 0x1f]
xchg ecx, eax
outsb dx, byte [rsi]
mov bh, 0x2d
ja 0x140125e35
xchg ecx, eax
imul edi, esp, 0x97ff979f
scasd eax, dword [rdi]
sbb byte [rbx + 0x1e6991e3], dh
sahf
adc al, 0xb2
sbb dh, byte [rax - 0x1c]
adc bh, al
jp 0x140125ec5
invalid
mov al, 0x92
invalid