joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1402ac350
Capabilities:
Allocate thread local storage

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [rbx], eax
cmp eax, 0xffffffff
je 0x1402ac36f
mov rax, rbx
add rsp, 0x20
pop rbx
ret
mov r9d, 0xc
lea r8, str.TLS_capacity_depleted
lea rcx, str.libslog_src_thread_specific.cpp
lea edx, [r9 + 0x1d]
call fcn.1402969c0
int3

Function at 0x1402b3d80
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rcx
push rbx
sub rsp, 0x20
mov ecx, dword [0x1403e5310]
cmp ecx, 0xffffffff
je 0x1402b3da0
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
jne 0x1402b3dba
call fcn.1402b4fb0
mov ecx, dword [0x1403e5310]
cmp ecx, 0xffffffff
jne 0x1402b3db4
xor eax, eax
jmp 0x1402b3dba
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
lea rbx, [rax + 0x18]
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.1402b25c0
mov qword [rbx], rax
add rsp, 0x20
pop rbx
ret

Function at 0x1402b4640
Capabilities:
Get thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, rcx
mov ecx, dword [0x1403e5310]
cmp ecx, 0xffffffff
je 0x1402b46a3
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x1402b46a3
mov rcx, qword [rax + 0x28]
mov rdx, rcx
mov rax, qword [rcx + 8]
cmp byte [rax + 0x19], 0
jne 0x1402b4688
cmp qword [rax + 0x20], rbx
jae 0x1402b467c
mov rax, qword [rax + 0x10]
jmp 0x1402b4682
mov rdx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], 0
je 0x1402b4670
cmp byte [rdx + 0x19], 0
jne 0x1402b46a3
cmp rbx, qword [rdx + 0x20]
jb 0x1402b46a3
cmp rdx, rcx
je 0x1402b46a3
lea rax, [rdx + 0x28]
add rsp, 0x20
pop rbx
ret
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x1402b4fb0
Capabilities:
Set thread local storage value

Disassembly:
push rbx
sub rsp, 0x20
call fcn.1402b2560
mov rbx, rax
mov qword [rsp + 0x30], rax
lea rdx, [0x1402b41f0]
lea rcx, [0x1403f5d08]
call fcn.1402b3de0
mov ecx, dword [0x1403e5310]
cmp ecx, 0xffffffff
je 0x1402b4feb
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
nop
add rsp, 0x20
pop rbx
ret

Function at 0x1402b5810
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push rdi
sub rsp, 0x20
mov rdi, rcx
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
jne 0x1402b5838
mov qword [rdi], 0
mov rax, rdi
add rsp, 0x20
pop rdi
ret
cmp qword [rsp + 0x40], 0
jle 0x1402b5828
mov qword [rsp + 0x30], rbx
lea rcx, [rsp + 0x38]
xor ebx, ebx
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
jne 0x1402b586c
inc ebx
cmp ebx, 3
ja 0x1402b58a2
lea rcx, [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
test eax, eax
je 0x1402b5856
mov rbx, qword [rsp + 0x30]
xorps xmm1, xmm1
cvtsi2sd xmm1, qword [rsp + 0x38]
xorps xmm0, xmm0
mulsd xmm1, qword [0x1403472d8]
cvtsi2sd xmm0, qword [rsp + 0x40]
divsd xmm1, xmm0
cvttsd2si rax, xmm1
mov qword [rdi], rax
mov rax, rdi
add rsp, 0x20
pop rdi
ret
mov rbx, qword [rsp + 0x30]
mov rax, rdi
mov qword [rdi], 0
add rsp, 0x20
pop rdi
ret
Function at 0x1402b5c20
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov ecx, dword [0x1403e5310]
cmp ecx, 0xffffffff
jne 0x1402b5c3e
xor esi, esi
jmp 0x1402b5c47
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
mov qword [rsp + 0x30], rsi
test rsi, rsi
je 0x1402b5d3d
mov rax, qword [rsi + 0x30]
nop dword [rax]
test rax, rax
jne 0x1402b5c70
cmp qword [rsi + 0x18], 0
je 0x1402b5d16
mov rbx, qword [rsi + 0x18]
test rbx, rbx
je 0x1402b5cd8
nop dword [rax]
mov rax, qword [rbx + 8]
mov qword [rsi + 0x18], rax
mov rcx, qword [rbx]
test rcx, rcx
je 0x1402b5cb7
mov rax, qword [rcx]
call qword [rax + 8]
mov rdi, qword [rbx]
mov rax, qword [rdi]
xor edx, edx
mov rcx, rdi
call qword [rax]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rbx, qword [rsi + 0x18]
test rbx, rbx
jne 0x1402b5c80
mov rax, qword [rsi + 0x30]
test rax, rax
je 0x1402b5c65
nop dword [rax]
mov rbx, qword [rsi + 0x28]
mov rbx, qword [rbx]
mov rcx, qword [rbx + 0x30]
test rcx, rcx
je 0x1402b5cfc
mov rdx, qword [rbx + 0x38]
test rdx, rdx
je 0x1402b5cfc
call qword [rbx + 0x28]
mov rdx, rbx
lea rcx, [rsi + 0x28]
call fcn.1402b34c0
cmp qword [rsi + 0x30], 0
jne 0x1402b5ce0
xor eax, eax
jmp 0x1402b5c60
lea rdx, [0x1402b41f0]
lea rcx, [0x1403f5d08]
call fcn.1402b3de0
mov ecx, dword [0x1403e5310]
cmp ecx, 0xffffffff
je 0x1402b5d3d
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
nop
test rsi, rsi
je 0x1402b5d70
mov eax, 0xffffffff
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x1402b5d70
mov rax, qword [rsi]
xor edx, edx
mov rcx, rsi
call qword [rax]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov rcx, rax
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
nop
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x1402b5d80
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
sub rsp, 0x70
mov rsi, r9
mov rbp, r8
mov r14, rdx
mov rdi, rcx
call fcn.1402b4640
mov rbx, rax
test rax, rax
je 0x1402b5e4e
cmp byte [rsp + 0xa0], 0
je 0x1402b5dd5
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x1402b5dd5
mov rdx, qword [rax + 0x10]
test rdx, rdx
je 0x1402b5dd5
call qword [rax]
test rbp, rbp
jne 0x1402b5e3e
test rsi, rsi
jne 0x1402b5e3e
mov qword [rsp + 0x20], rdi
mov ecx, dword [0x1403e5310]
cmp ecx, 0xffffffff
je 0x1402b5dfd
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
test rax, rax
jne 0x1402b5e2b
call fcn.1402b4fb0
mov ecx, dword [0x1403e5310]
cmp ecx, 0xffffffff
jne 0x1402b5e22
xor ebx, ebx
lea rcx, [rbx + 0x28]
lea rdx, [rsp + 0x20]
call fcn.1402b43a0
jmp 0x1402b5f5b
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rbx, rax
lea rcx, [rbx + 0x28]
lea rdx, [rsp + 0x20]
call fcn.1402b43a0
jmp 0x1402b5f5b
mov qword [rbx], r14
mov qword [rbx + 8], rbp
mov qword [rbx + 0x10], rsi
jmp 0x1402b5f5b
test rbp, rbp
jne 0x1402b5e5c
test rsi, rsi
je 0x1402b5f5b
xor ebx, ebx
mov ecx, dword [0x1403e5310]
cmp ecx, 0xffffffff
je 0x1402b5e74
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
jne 0x1402b5e8f
call fcn.1402b4fb0
mov ecx, dword [0x1403e5310]
cmp ecx, 0xffffffff
jne 0x1402b5e89
mov rax, rbx
jmp 0x1402b5e8f
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], rsi
lea rsi, [rax + 0x28]
mov rbp, qword [rsi]
mov rax, qword [rbp + 8]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x38], ebx
mov rcx, rbp
cmp byte [rax + 0x19], bl
jne 0x1402b5ee8
nop word [rax + rax]
mov qword [rsp + 0x30], rax
cmp qword [rax + 0x20], rdi
jae 0x1402b5ed5
mov dword [rsp + 0x38], ebx
mov rax, qword [rax + 0x10]
jmp 0x1402b5ee3
mov dword [rsp + 0x38], 1
mov rcx, rax
mov rax, qword [rax]
cmp byte [rax + 0x19], bl
je 0x1402b5ec0
cmp byte [rcx + 0x19], bl
jne 0x1402b5ef3
cmp rdi, qword [rcx + 0x20]
jae 0x1402b5f5b
movabs rax, 0x3ffffffffffffff
cmp qword [rsi + 8], rax
je 0x1402b5f76
mov qword [rsp + 0x20], rsi
mov qword [rsp + 0x28], rbx
mov ecx, 0x40
call fcn.14026fc98
nop
mov qword [rax + 0x20], rdi
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rax + 0x28], xmm0
movsd xmm1, qword [rsp + 0x60]
movsd qword [rax + 0x38], xmm1
mov qword [rax], rbp
mov qword [rax + 8], rbp
mov qword [rax + 0x10], rbp
mov word [rax + 0x18], 0
movups xmm0, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x20], xmm0
mov r8, rax
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.1402b38d0
lea r11, [rsp + 0x70]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rdi, qword [r11 + 0x28]
mov rsp, r11
pop r14
ret
call fcn.140037380
int3
Function at 0x64438890058
Capabilities:
Decompress data using aplib

Disassembly:
call 0x644388901df
push r10
mov r10, rsp
push r10
mov rsi, qword [r10 + 0x10]
mov rdi, qword [r10 + 0x20]
cld
mov dl, pe_nt_image_headers64
mov al, byte [rsi]
inc rsi
mov byte [rdi], al
inc rdi
mov ebx, 2
add dl, dl
jne 0x64438890089
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x6443889006f
add dl, dl
jne 0x64438890096
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x644388900f6
xor eax, eax
add dl, dl
jne 0x644388900a5
mov dl, byte [rsi]
inc rsi
adc dl, dl
jae 0x644388901ad
add dl, dl
jne 0x644388900b6
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x644388900c3
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x644388900d0
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x644388900dd
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
je 0x644388900ea
push rdi
mov eax, eax
sub rdi, rax
mov al, byte [rdi]
pop rdi
mov byte [rdi], al
inc rdi
mov ebx, 2
jmp 0x6443889007e
mov eax, 1
add dl, dl
jne 0x64438890106
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc eax, eax
add dl, dl
jne 0x64438890113
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x644388900fb
sub eax, ebx
mov ebx, 1
jne 0x6443889014c
mov ecx, 1
add dl, dl
jne 0x6443889012e
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x6443889013b
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x64438890123
push rsi
mov rsi, rdi
sub rsi, rbp
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x6443889007e
dec eax
shl eax, 8
mov al, byte [rsi]
inc rsi
mov ebp, eax
mov ecx, 1
add dl, dl
jne 0x64438890168
mov dl, byte [rsi]
inc rsi
adc dl, dl
adc ecx, ecx
add dl, dl
jne 0x64438890175
mov dl, byte [rsi]
inc rsi
adc dl, dl
jb 0x6443889015d
cmp eax, 0x7d00
jae 0x6443889019b
cmp eax, 0x500
jb 0x64438890196
inc ecx
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x6443889007e
cmp eax, 0x7f
ja 0x6443889019e
add ecx, 2
push rsi
mov rsi, rdi
sub rsi, rax
rep movsb byte [rdi], byte [rsi]
pop rsi
jmp 0x6443889007e
mov al, byte [rsi]
inc rsi
xor ecx, ecx
shr al, 1
je 0x644388901d2
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 0x6443889007e
pop r10
sub rdi, qword [r10 + 0x20]
mov eax, edi
pop r10
ret 0x20
Function at 0x2fc4d94b0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x2fc4d9eb2
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc4fe108]
test eax, eax
je 0x2fc4d9f4a
lea rax, [0x2fc4fe0e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc4fe110]
mov qword [rbp - 8], rax
jmp 0x2fc4d9f2e
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x2fc4d9f22
cmp qword [rbp - 0x10], 0
je 0x2fc4d9f22
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x2fc4d9ee8
lea rax, [0x2fc4fe0e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4d9f4b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4da050
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x2fc4da078
mov eax, 0
jmp 0x2fc4da0c6
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x2fc4da0a1
mov eax, 0
jmp 0x2fc4da0c6
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x2fc4da0c1
mov eax, 0
jmp 0x2fc4da0c6
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4da0cc
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x2fc4da14a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4da141
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x2fc4da141
mov rax, qword [rbp - 8]
jmp 0x2fc4da15f
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x2fc4da114
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4e1150
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x2fc4e1b52
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc506108]
test eax, eax
je 0x2fc4e1bea
lea rax, [0x2fc5060e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc506110]
mov qword [rbp - 8], rax
jmp 0x2fc4e1bce
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x2fc4e1bc2
cmp qword [rbp - 0x10], 0
je 0x2fc4e1bc2
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x2fc4e1b88
lea rax, [0x2fc5060e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4e1beb
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4e1cf0
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x2fc4e1d18
mov eax, 0
jmp 0x2fc4e1d66
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x2fc4e1d41
mov eax, 0
jmp 0x2fc4e1d66
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x2fc4e1d61
mov eax, 0
jmp 0x2fc4e1d66
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4e1d6c
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x2fc4e1dea
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4e1de1
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x2fc4e1de1
mov rax, qword [rbp - 8]
jmp 0x2fc4e1dff
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x2fc4e1db4
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4dc280
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x2fc4dcc82
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc501108]
test eax, eax
je 0x2fc4dcd1a
lea rax, [0x2fc5010e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc501110]
mov qword [rbp - 8], rax
jmp 0x2fc4dccfe
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x2fc4dccf2
cmp qword [rbp - 0x10], 0
je 0x2fc4dccf2
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x2fc4dccb8
lea rax, [0x2fc5010e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4dcd1b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4dce20
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x2fc4dce48
mov eax, 0
jmp 0x2fc4dce96
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x2fc4dce71
mov eax, 0
jmp 0x2fc4dce96
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x2fc4dce91
mov eax, 0
jmp 0x2fc4dce96
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4dce9c
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x2fc4dcf1a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4dcf11
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x2fc4dcf11
mov rax, qword [rbp - 8]
jmp 0x2fc4dcf2f
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x2fc4dcee4
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4dc6f0
Capabilities:
Write file on windows

Disassembly:
push rbp
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rdx
mov qword [rbp + 0x30], r8
mov qword [rbp + 0x38], r9
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov ecx, 2
call sym.__acrt_iob_func
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sym.fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call sym.__acrt_iob_func
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov r8, rbx
mov rdx, rax
call sym.vfprintf
call sym.abort
nop

Function at 0x2fc4dd0f2
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x2fc501108]
test eax, eax
je 0x2fc4dd18a
lea rax, [0x2fc5010e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x2fc501110]
mov qword [rbp - 8], rax
jmp 0x2fc4dd16e
mov rax, qword [rbp - 8]
mov eax, dword [rax]
mov ecx, eax
mov rax, qword [sym.imp.KERNEL32.dll_TlsGetValue]
call rax
mov qword [rbp - 0x10], rax
mov rax, qword [sym.imp.KERNEL32.dll_GetLastError]
call rax
test eax, eax
jne 0x2fc4dd162
cmp qword [rbp - 0x10], 0
je 0x2fc4dd162
mov rax, qword [rbp - 8]
mov rdx, qword [rax + 8]
mov rax, qword [rbp - 0x10]
mov rcx, rax
call rdx
mov rax, qword [rbp - 8]
mov rax, qword [rax + 0x10]
mov qword [rbp - 8], rax
cmp qword [rbp - 8], 0
jne 0x2fc4dd128
lea rax, [0x2fc5010e0]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x2fc4dd18b
nop
add rsp, 0x30
pop rbp
ret

Function at 0x2fc4dd290
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov rax, qword [rbp + 0x10]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x2fc4dd2b8
mov eax, 0
jmp 0x2fc4dd306
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp - 8]
add rax, rdx
mov qword [rbp - 0x10], rax
mov rax, qword [rbp - 0x10]
mov eax, dword [rax]
cmp eax, 0x4550
je 0x2fc4dd2e1
mov eax, 0
jmp 0x2fc4dd306
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
cmp ax, 0x20b
je 0x2fc4dd301
mov eax, 0
jmp 0x2fc4dd306
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x2fc4dd30c
Capabilities:
Enumerate pe sections

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rdx
mov rax, qword [rbp + 0x10]
mov eax, dword [rax + 0x3c]
movsxd rdx, eax
mov rax, qword [rbp + 0x10]
add rax, rdx
mov qword [rbp - 0x18], rax
mov dword [rbp - 0xc], 0
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 0x14]
movzx edx, ax
mov rax, qword [rbp - 0x18]
add rax, rdx
add rax, 0x18
mov qword [rbp - 8], rax
jmp 0x2fc4dd38a
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x2fc4dd381
mov rax, qword [rbp - 8]
mov edx, dword [rax + 0xc]
mov rax, qword [rbp - 8]
mov eax, dword [rax + 8]
add eax, edx
mov eax, eax
cmp qword [rbp + 0x18], rax
jae 0x2fc4dd381
mov rax, qword [rbp - 8]
jmp 0x2fc4dd39f
add dword [rbp - 0xc], 1
add qword [rbp - 8], 0x28
mov rax, qword [rbp - 0x18]
movzx eax, word [rax + 6]
movzx eax, ax
cmp dword [rbp - 0xc], eax
jb 0x2fc4dd354
mov eax, 0
add rsp, 0x20
pop rbp
ret