joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140003270
Capabilities:
Get thread local storage value

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
lea r12, [0x140009120]
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rbx, qword [0x140009100]
test rbx, rbx
je 0x1400032cc
mov rbp, qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, qword [sym.imp.KERNEL32.dll_GetLastError]
nop dword [rax]
mov ecx, dword [rbx]
call rbp
mov rsi, rax
call rdi
test rsi, rsi
je 0x1400032c3
test eax, eax
jne 0x1400032c3
mov rax, qword [rbx + 8]
mov rcx, rsi
call rax
mov rbx, qword [rbx + 0x10]
test rbx, rbx
jne 0x1400032a8
mov rcx, r12
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
jmp qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]

Function at 0x1400034e0
Capabilities:
Parse pe header

Disassembly:
xor eax, eax
cmp word [rcx], 0x5a4d
jne 0x1400034f8
movsxd rdx, dword [rcx + 0x3c]
add rcx, rdx
cmp dword [rcx], 0x4550
je 0x140003500
ret
xor eax, eax
cmp word [rcx + 0x18], 0x20b
sete al
ret

Function at 0x140003510
Capabilities:
Enumerate pe sections

Disassembly:
movsxd rax, dword [rcx + 0x3c]
add rcx, rax
movzx eax, word [rcx + 0x14]
movzx r8d, word [rcx + 6]
lea rax, [rcx + rax + 0x18]
test r8w, r8w
je 0x14000355d
lea ecx, [r8 - 1]
lea rcx, [rcx + rcx*4]
lea r9, [rax + rcx*8 + 0x28]
nop dword [rax + rax]
mov r8d, dword [rax + 0xc]
mov rcx, r8
cmp rdx, r8
jb 0x140003554
add ecx, dword [rax + 8]
cmp rdx, rcx
jb 0x14000355f
add rax, 0x28
cmp rax, r9
jne 0x140003540
xor eax, eax
ret

Function at 0x140003560
Capabilities:
Parse pe header

Disassembly:
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rsi, rcx
call sym.strlen
cmp rax, 8
ja 0x1400035f0
mov rdx, qword [0x140006980]
xor ebx, ebx
cmp word [rdx], 0x5a4d
jne 0x1400035de
movsxd rax, dword [rdx + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
jne 0x1400035de
cmp word [rax + 0x18], 0x20b
jne 0x1400035de
movzx edx, word [rax + 0x14]
lea rbx, [rax + rdx + 0x18]
movzx edx, word [rax + 6]
test dx, dx
je 0x1400035f0
lea eax, [rdx - 1]
lea rax, [rax + rax*4]
lea rdi, [rbx + rax*8 + 0x28]
jmp 0x1400035c9
add rbx, 0x28
cmp rbx, rdi
je 0x1400035f0
mov r8d, 8
mov rdx, rsi
mov rcx, rbx
call sym.strncmp
test eax, eax
jne 0x1400035c0
mov rax, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret
xor ebx, ebx
mov rax, rbx
add rsp, 0x20
pop rbx
pop rsi
pop rdi
ret

Function at 0x140003600
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rdx, qword [0x140006980]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x140003620
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x140003628
ret
cmp word [r8 + 0x18], 0x20b
jne 0x140003620
movzx eax, word [r8 + 0x14]
sub rcx, rdx
lea rax, [r8 + rax + 0x18]
movzx r8d, word [r8 + 6]
test r8w, r8w
je 0x14000367d
lea edx, [r8 - 1]
lea rdx, [rdx + rdx*4]
lea r9, [rax + rdx*8 + 0x28]
nop word cs:[rax + rax]
mov r8d, dword [rax + 0xc]
mov rdx, r8
cmp rcx, r8
jb 0x140003674
add edx, dword [rax + 8]
cmp rcx, rdx
jb 0x140003620
add rax, 0x28
cmp rax, r9
jne 0x140003660
xor eax, eax
ret
Function at 0x140003680
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x140006980]
xor ecx, ecx
cmp word [rax], 0x5a4d
jne 0x14000369f
movsxd rdx, dword [rax + 0x3c]
add rax, rdx
cmp dword [rax], 0x4550
je 0x1400036a8
mov eax, ecx
ret
cmp word [rax + 0x18], 0x20b
jne 0x14000369f
movzx ecx, word [rax + 6]
mov eax, ecx
ret

Function at 0x1400036c0
Capabilities:
Parse pe header

Disassembly:
mov r8, qword [0x140006980]
xor eax, eax
cmp word [r8], 0x5a4d
jne 0x1400036e0
movsxd rdx, dword [r8 + 0x3c]
add rdx, r8
cmp dword [rdx], 0x4550
je 0x1400036e8
ret
cmp word [rdx + 0x18], 0x20b
jne 0x1400036e0
movzx eax, word [rdx + 0x14]
movzx r8d, word [rdx + 6]
lea rax, [rdx + rax + 0x18]
test r8w, r8w
je 0x140003730
lea edx, [r8 - 1]
lea rdx, [rdx + rdx*4]
lea rdx, [rax + rdx*8 + 0x28]
nop dword [rax]
test byte [rax + 0x27], 0x20
je 0x140003727
test rcx, rcx
je 0x1400036e0
sub rcx, 1
add rax, 0x28
cmp rdx, rax
jne 0x140003718
xor eax, eax
ret

Function at 0x140003740
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [0x140006980]
xor edx, edx
cmp word [rax], 0x5a4d
jne 0x14000375f
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
je 0x140003768
mov rax, rdx
ret
cmp word [rcx + 0x18], 0x20b
cmove rdx, rax
mov rax, rdx
ret

Function at 0x140003780
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov rdx, qword [0x140006980]
xor eax, eax
cmp word [rdx], 0x5a4d
jne 0x1400037a0
movsxd r8, dword [rdx + 0x3c]
add r8, rdx
cmp dword [r8], 0x4550
je 0x1400037a8
ret
cmp word [r8 + 0x18], 0x20b
jne 0x1400037a0
sub rcx, rdx
movzx r9d, word [r8 + 6]
movzx edx, word [r8 + 0x14]
lea rdx, [r8 + rdx + 0x18]
test r9w, r9w
je 0x1400037a0
lea eax, [r9 - 1]
lea rax, [rax + rax*4]
lea r9, [rdx + rax*8 + 0x28]
nop word cs:[rax + rax]
mov r8d, dword [rdx + 0xc]
mov rax, r8
cmp rcx, r8
jb 0x1400037f4
add eax, dword [rdx + 8]
cmp rcx, rax
jb 0x140003800
add rdx, 0x28
cmp rdx, r9
jne 0x1400037e0
xor eax, eax
ret
mov eax, dword [rdx + 0x24]
not eax
shr eax, 0x1f
ret

Function at 0x140003810
Capabilities:
Enumerate pe sections
Parse pe header

Disassembly:
mov r11, qword [0x140006980]
xor r9d, r9d
cmp word [r11], 0x5a4d
jne 0x140003832
movsxd r8, dword [r11 + 0x3c]
add r8, r11
cmp dword [r8], 0x4550
je 0x140003840
mov rax, r9
ret
cmp word [r8 + 0x18], 0x20b
jne 0x140003832
mov eax, dword [r8 + 0x90]
test eax, eax
je 0x140003832
movzx edx, word [r8 + 0x14]
movzx r10d, word [r8 + 6]
lea rdx, [r8 + rdx + 0x18]
test r10w, r10w
je 0x140003832
lea r8d, [r10 - 1]
lea r8, [r8 + r8*4]
lea r10, [rdx + r8*8 + 0x28]
nop word cs:[rax + rax]
mov r9d, dword [rdx + 0xc]
mov r8, r9
cmp rax, r9
jb 0x140003895
add r8d, dword [rdx + 8]
cmp rax, r8
jb 0x1400038a8
add rdx, 0x28
cmp r10, rdx
jne 0x140003880
xor r9d, r9d
mov rax, r9
ret
add rax, r11
jmp 0x1400038b7
sub ecx, 1
add rax, 0x14
mov r8d, dword [rax + 4]
test r8d, r8d
jne 0x1400038c7
mov edx, dword [rax + 0xc]
test edx, edx
je 0x14000389e
test ecx, ecx
jg 0x1400038b0
mov r9d, dword [rax + 0xc]
add r9, r11
mov rax, r9
ret
Function at 0x18007268f
Capabilities:
Encode data using xor

Disassembly:
jmp 0x18015b4f0
mov rax, rcx
neg rcx
test rax, 7
je 0x18015b50d
nop
mov dl, byte [rax]
inc rax
test dl, dl
je 0x18015b568
test al, 7
jne 0x18015b500
movabs r8, 0x7efefefefefefeff
movabs r11, 0x8101010101010100
mov rdx, qword [rax]
mov r9, r8
add rax, 8
add r9, rdx
not rdx
xor rdx, r9
and rdx, r11
je 0x18015b521
mov rdx, qword [rax - 8]
test dl, dl
je 0x18015b592
test dh, dh
je 0x18015b58c
shr rdx, 0x10
test dl, dl
je 0x18015b586
test dh, dh
je 0x18015b580
shr rdx, 0x10
test dl, dl
je 0x18015b57a
test dh, dh
je 0x18015b574
shr edx, 0x10
test dl, dl
je 0x18015b56e
test dh, dh
jne 0x18015b521
lea rax, [rax + rcx - 1]
ret
lea rax, [rax + rcx - 2]
ret
lea rax, [rax + rcx - 3]
ret
lea rax, [rax + rcx - 4]
ret
lea rax, [rax + rcx - 5]
ret
lea rax, [rax + rcx - 6]
ret
lea rax, [rax + rcx - 7]
ret
lea rax, [rax + rcx - 8]
ret

Function at 0x1800728dd
Capabilities:
Create thread

Disassembly:
jmp 0x18007a070
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rbp
push rdi
sub rsp, 0xf8
lea rbp, [rsp + 0x30]
lea rcx, [0x1801a50b2]
call fcn.18007422d
nop
cmp dword [rbp + 0xe8], 1
jne 0x18007a0da
mov rcx, qword [rbp + 0xe0]
call qword [sym.imp.KERNEL32.dll_DisableThreadLibraryCalls]
nop
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov r9, qword [rbp + 0xf0]
lea r8, [0x180079ae0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop
mov eax, 1
lea rsp, [rbp + 0xc8]
pop rdi
pop rbp
ret

Function at 0x1800729e6
Capabilities:
Get thread local storage value

Disassembly:
jmp 0x18009efc0
mov dword [rsp + 8], ecx
sub rsp, 0x48
call fcn.18009e940
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x18009efff
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x50]
mov rax, qword [rsp + 0x30]
call qword [0x1801a6020]
jmp 0x18009f009
mov ecx, dword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
add rsp, 0x48
ret
Function at 0x180072b30
Capabilities:
Query environment variable

Disassembly:
jmp 0x1801260a0
sub rsp, 0xb8
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.180125ed0
lea rcx, [rsp + 0x40]
call fcn.180126050
movzx eax, al
test eax, eax
jne 0x1801260e8
mov qword [rsp + 0x70], 0
lea rcx, [rsp + 0x40]
call fcn.180125f00
mov rax, qword [rsp + 0x70]
jmp 0x1801262b9
lea rcx, [rsp + 0x40]
call fcn.180126020
mov qword [rsp + 0x60], rax
mov rcx, qword [rsp + 0x60]
call fcn.180125fc0
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x78]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov qword [rsp + 0x68], rax
lea rcx, [rsp + 0x40]
call fcn.180126020
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0
mov qword [rsp + 0x20], 0
mov r9d, dword [rsp + 0x68]
mov r8, rax
xor edx, edx
xor ecx, ecx
call fcn.1800735ad
cdqe
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x58], 0
jne 0x18012618e
mov qword [rsp + 0x80], 0
lea rcx, [rsp + 0x40]
call fcn.180125f00
mov rax, qword [rsp + 0x80]
jmp 0x1801262b9
mov r9d, 0x66
lea r8, str.minkernelcrtsucrt_srcdesktopcrtenvget_environment_from_os.cpp
mov edx, 2
mov rcx, qword [rsp + 0x58]
call fcn.1800728e7
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.1800727b1
lea rcx, [rsp + 0x48]
call fcn.180072464
movzx eax, al
test eax, eax
jne 0x1801261f5
mov qword [rsp + 0x88], 0
lea rcx, [rsp + 0x48]
call fcn.1800717b2
lea rcx, [rsp + 0x40]
call fcn.180125f00
mov rax, qword [rsp + 0x88]
jmp 0x1801262b9
lea rcx, [rsp + 0x48]
call fcn.180072e05
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0x40]
call fcn.180126020
mov qword [rsp + 0x98], rax
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x30], 0
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov r9d, dword [rsp + 0x68]
mov r8, qword [rsp + 0x98]
xor edx, edx
xor ecx, ecx
call fcn.1800735ad
mov dword [rsp + 0x50], eax
cmp dword [rsp + 0x50], 0
jne 0x18012628b
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0x48]
call fcn.1800717b2
lea rcx, [rsp + 0x40]
call fcn.180125f00
mov rax, qword [rsp + 0xa0]
jmp 0x1801262b9
lea rcx, [rsp + 0x48]
call fcn.180072784
mov qword [rsp + 0xa8], rax
lea rcx, [rsp + 0x48]
call fcn.1800717b2
lea rcx, [rsp + 0x40]
call fcn.180125f00
mov rax, qword [rsp + 0xa8]
add rsp, 0xb8
ret

Function at 0x180072b3f
Capabilities:
Allocate thread local storage

Disassembly:
jmp 0x18009eef0
mov qword [rsp + 8], rcx
sub rsp, 0x48
call fcn.18009e8c0
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x18009ef31
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov rcx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x30]
call qword [0x1801a6020]
jmp 0x18009ef37
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
add rsp, 0x48
ret
Function at 0x180072bc1
Capabilities:
Get geographical location

Disassembly:
jmp 0x180109e20
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x58
call fcn.180108cc0
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x180109e7c
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x40], rax
mov r9d, dword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
mov edx, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x40]
call fcn.180074723
jmp 0x180109e9e
xor edx, edx
mov rcx, qword [rsp + 0x60]
call fcn.18007240f
mov r9d, dword [rsp + 0x78]
mov r8, qword [rsp + 0x70]
mov edx, dword [rsp + 0x68]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
add rsp, 0x58
ret

Function at 0x180072bd0
Capabilities:
Terminate process

Disassembly:
jmp 0x18007ce70
mov qword [rsp + 8], rcx
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
nop
add rsp, 0x28
ret
Function at 0x180072dba
Capabilities:
Print debug messages

Disassembly:
jmp 0x180141cf0
mov qword [rsp + 8], rcx
push rbp
sub rsp, 0x50
lea rbp, [rsp + 0x30]
mov rax, qword [section..data]
xor rax, rbp
mov qword [rbp + 0x18], rax
cmp qword [rbp + 0x30], 0
jne 0x180141d19
jmp 0x180141d9e
mov rcx, qword [rbp + 0x30]
call fcn.18007268f
inc rax
mov qword [rbp], rax
cmp qword [rbp], 0
jne 0x180141d32
jmp 0x180141d9e
mov rax, qword [rbp]
shl rax, 1
mov rcx, rax
add rcx, 0xf
cmp rcx, rax
ja 0x180141d4f
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.180071906
sub rsp, rax
lea rax, [rsp + 0x30]
mov qword [rbp + 8], rax
mov qword [rbp + 0x10], 0
mov rax, qword [rbp]
dec rax
mov qword [rsp + 0x20], rax
mov r9, qword [rbp + 0x30]
mov r8, qword [rbp]
mov rdx, qword [rbp + 8]
lea rcx, [rbp + 0x10]
call fcn.180071d02
test eax, eax
jne 0x180141d9e
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rbp + 0x18]
xor rcx, rbp
call fcn.18007286a
lea rsp, [rbp + 0x20]
pop rbp
ret
Function at 0x180073751
Capabilities:
Terminate process

Disassembly:
jmp 0x1800f1990
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov ecx, 0x17
call qword [sym.imp.KERNEL32.dll_IsProcessorFeaturePresent]
test eax, eax
je 0x1800f19be
mov ecx, 5
int 0x29
mov r8d, 1
mov edx, 0xc0000417
mov ecx, 2
call fcn.180073e9a
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000417
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
add rsp, 0x28
ret

Function at 0x180073ef4
Capabilities:
Print debug messages

Disassembly:
jmp 0x18011e500
mov qword [rsp + 8], rcx
sub rsp, 0x28
mov rax, qword [rsp + 0x30]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
add rsp, 0x28
ret
Function at 0x180073fa3
Capabilities:
Set thread local storage value

Disassembly:
jmp 0x18009f030
mov qword [rsp + 0x10], rdx
mov dword [rsp + 8], ecx
sub rsp, 0x48
call fcn.18009e980
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x18009f079
mov rax, qword [rsp + 0x20]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov qword [rsp + 0x30], rax
mov rdx, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x50]
mov rax, qword [rsp + 0x30]
call qword [0x1801a6020]
jmp 0x18009f088
mov rdx, qword [rsp + 0x58]
mov ecx, dword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
add rsp, 0x48
ret
Function at 0x1800f5f40
Capabilities:
Terminate process

Disassembly:
mov byte [rsp + 0x10], dl
mov dword [rsp + 8], ecx
sub rsp, 0x28
movzx eax, byte [rsp + 0x38]
test eax, eax
je 0x1800f5f68
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, dword [rsp + 0x30]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov ecx, dword [rsp + 0x30]
call fcn.1800f60e0
mov ecx, dword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_ExitProcess]
Function at 0x18012d720
Capabilities:
Write file on windows

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
mov eax, 0x1498
call fcn.180071906
sub rsp, rax
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x1480], rax
mov eax, dword [rsp + 0x14b8]
sar eax, 6
cdqe
lea rcx, [0x180195180]
mov edx, dword [rsp + 0x14b8]
and edx, 0x3f
movsxd rdx, edx
imul rdx, rdx, 0x48
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + rdx + 0x28]
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x14c8]
mov rcx, qword [rsp + 0x14c0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0x68]
mov rdi, rax
xor eax, eax
mov ecx, 0xc
rep stosb byte [rdi], al
mov rax, qword [rsp + 0x14c0]
mov qword [rsp + 0x48], rax
mov rax, qword [rsp + 0x50]
cmp qword [rsp + 0x48], rax
jae 0x18012d91a
lea rax, [rsp + 0x147f]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x58]
cmp qword [rsp + 0x38], rax
jae 0x18012d866
mov rax, qword [rsp + 0x50]
cmp qword [rsp + 0x48], rax
jae 0x18012d866
mov rax, qword [rsp + 0x48]
movzx eax, byte [rax]
mov byte [rsp + 0x31], al
mov rax, qword [rsp + 0x48]
inc rax
mov qword [rsp + 0x48], rax
movzx eax, byte [rsp + 0x31]
mov byte [rsp + 0x30], al
movsx eax, byte [rsp + 0x30]
cmp eax, 0xa
jne 0x18012d84b
mov eax, dword [rsp + 0x70]
inc eax
mov dword [rsp + 0x70], eax
mov rax, qword [rsp + 0x38]
mov byte [rax], 0xd
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
movzx ecx, byte [rsp + 0x30]
mov byte [rax], cl
mov rax, qword [rsp + 0x38]
inc rax
mov qword [rsp + 0x38], rax
jmp 0x18012d7e8
lea rax, [rsp + 0x80]
mov rcx, qword [rsp + 0x38]
sub rcx, rax
mov rax, rcx
mov dword [rsp + 0x44], eax
mov dword [rsp + 0x40], 0
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x40]
mov r8d, dword [rsp + 0x44]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x18012d8da
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x68], eax
lea rax, [rsp + 0x68]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
jmp 0x18012d939
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x6c]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x44]
cmp dword [rsp + 0x40], eax
jae 0x18012d915
lea rax, [rsp + 0x68]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
jmp 0x18012d939
jmp 0x18012d7be
lea rax, [rsp + 0x68]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
mov rcx, qword [rsp + 0x1480]
xor rcx, rsp
call fcn.18007286a
add rsp, 0x1498
pop rdi
pop rsi
ret
Function at 0x18012d9e0
Capabilities:
Write file on windows

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rsi
push rdi
mov eax, 0x1498
call fcn.180071906
sub rsp, rax
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x1480], rax
mov eax, dword [rsp + 0x14b8]
sar eax, 6
cdqe
lea rcx, [0x180195180]
mov edx, dword [rsp + 0x14b8]
and edx, 0x3f
movsxd rdx, edx
imul rdx, rdx, 0x48
mov rax, qword [rcx + rax*8]
mov rax, qword [rax + rdx + 0x28]
mov qword [rsp + 0x68], rax
mov eax, dword [rsp + 0x14c8]
mov rcx, qword [rsp + 0x14c0]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0x70]
mov rdi, rax
xor eax, eax
mov ecx, 0xc
rep stosb byte [rdi], al
mov rax, qword [rsp + 0x14c0]
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x58]
cmp qword [rsp + 0x50], rax
jae 0x18012dbf5
lea rax, [rsp + 0x147e]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x60]
cmp qword [rsp + 0x38], rax
jae 0x18012db39
mov rax, qword [rsp + 0x58]
cmp qword [rsp + 0x50], rax
jae 0x18012db39
mov rax, qword [rsp + 0x50]
movzx eax, word [rax]
mov word [rsp + 0x40], ax
mov rax, qword [rsp + 0x50]
add rax, 2
mov qword [rsp + 0x50], rax
movzx eax, word [rsp + 0x40]
mov word [rsp + 0x30], ax
movzx eax, word [rsp + 0x30]
cmp eax, 0xa
jne 0x18012db19
mov eax, dword [rsp + 0x78]
add eax, 2
mov dword [rsp + 0x78], eax
mov eax, 0xd
mov rcx, qword [rsp + 0x38]
mov word [rcx], ax
mov rax, qword [rsp + 0x38]
add rax, 2
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
movzx ecx, word [rsp + 0x30]
mov word [rax], cx
mov rax, qword [rsp + 0x38]
add rax, 2
mov qword [rsp + 0x38], rax
jmp 0x18012daa8
lea rax, [rsp + 0x80]
mov rcx, qword [rsp + 0x38]
sub rcx, rax
mov rax, rcx
sar rax, 1
mov eax, eax
shl rax, 1
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x44], 0
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x44]
mov r8d, dword [rsp + 0x48]
lea rdx, [rsp + 0x80]
mov rcx, qword [rsp + 0x68]
call qword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
jne 0x18012dbb5
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x70], eax
lea rax, [rsp + 0x70]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
jmp 0x18012dc14
mov eax, dword [rsp + 0x44]
mov ecx, dword [rsp + 0x74]
add ecx, eax
mov eax, ecx
mov dword [rsp + 0x74], eax
mov eax, dword [rsp + 0x48]
cmp dword [rsp + 0x44], eax
jae 0x18012dbf0
lea rax, [rsp + 0x70]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
jmp 0x18012dc14
jmp 0x18012da7e
lea rax, [rsp + 0x70]
mov rdi, qword [rsp + 0x14b0]
mov rsi, rax
mov ecx, 0xc
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rsp + 0x14b0]
mov rcx, qword [rsp + 0x1480]
xor rcx, rsp
call fcn.18007286a
add rsp, 0x1498
pop rdi
pop rsi
ret
Function at 0x1801363f0
Capabilities:
Get file size

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x50
mov edx, 8
lea rcx, [rsp + 0x60]
call fcn.180071f28
movzx eax, al
test eax, eax
je 0x180136417
mov al, 1
jmp 0x18013650c
lea rcx, [rsp + 0x60]
call fcn.180074471
movzx eax, al
test eax, eax
je 0x180136456
lea rcx, [rsp + 0x60]
call fcn.1800739ef
mov qword [rsp + 0x40], rax
lea rcx, [rsp + 0x60]
call fcn.1800739ef
mov rax, qword [rax + 8]
mov rcx, qword [rsp + 0x40]
cmp qword [rcx], rax
jne 0x180136456
xor al, al
jmp 0x18013650c
lea rcx, [rsp + 0x60]
call fcn.180073b34
mov ecx, eax
call fcn.18007441c
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0xffffffffffffffff
jne 0x18013647b
xor al, al
jmp 0x18013650c
lea rax, [rsp + 0x38]
mov rdi, rax
xor eax, eax
mov ecx, 8
rep stosb byte [rdi], al
lea rax, [rsp + 0x48]
mov rdi, rax
xor eax, eax
mov ecx, 8
rep stosb byte [rdi], al
mov r9d, 1
lea r8, [rsp + 0x38]
mov rdx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
jne 0x1801364c0
xor al, al
jmp 0x18013650c
lea rax, [rsp + 0x30]
mov rdi, rax
xor eax, eax
mov ecx, 8
rep stosb byte [rdi], al
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x28]
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
jne 0x1801364e9
xor al, al
jmp 0x18013650c
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
jne 0x1801364ff
mov dword [rsp + 0x20], 1
jmp 0x180136507
mov dword [rsp + 0x20], 0
movzx eax, byte [rsp + 0x20]
add rsp, 0x50
pop rdi
ret