joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000d370
Capabilities:
Get common file path
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0x280]
sub rsp, 0x380
mov rax, qword [0x140071060]
xor rax, rsp
mov qword [rbp + 0x270], rax
mov rdi, rcx
mov qword [rsp + 0x50], rcx
xor r14d, r14d
mov dword [rsp + 0x20], r14d
mov qword [rcx], r14
mov qword [rcx + 8], r14
mov qword [rcx + 0x10], r14
mov qword [rcx + 0x18], r14
mov qword [rcx + 0x30], r14
mov qword [rcx + 0x38], 7
mov word [rcx + 0x20], r14w
lea rbx, [rcx + 0x40]
mov qword [rsp + 0x20], rbx
mov dword [rbx], r14d
mov qword [rbx + 8], r14
mov qword [rbx + 0x10], r14
lea ecx, [r14 + 0x38]
call fcn.14001e18c
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rbx + 8], rax
lea rcx, [rbx + 0x18]
mov qword [rcx], r14
mov qword [rcx + 8], r14
mov qword [rcx + 0x10], r14
mov qword [rbx + 0x30], 7
mov qword [rbx + 0x38], 8
mov dword [rbx], 0x3f800000
mov r8, qword [rbx + 8]
lea edx, [r14 + 0x10]
call fcn.1400072c0
nop
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x60]
call fcn.140020c50
mov r8d, 0x104
lea rdx, [rbp + 0x60]
lea rcx, str._NT_SYMBOL_PATH
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
test eax, eax
jne 0x14000d596
lea rdx, [rbp + 0x60]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x14000d596
xor edx, edx
mov r8d, 0xf8
lea rcx, [rsp + 0x60]
call fcn.140020c50
lea rcx, [rsp + 0x60]
call fcn.14000e510
nop
lea rdx, str.srv
lea rcx, [rsp + 0x70]
call fcn.14000ec00
mov rcx, rax
lea rdx, [rbp + 0x60]
call fcn.14000ec00
mov rcx, rax
lea rdx, str.Symbolshttp:__msdl.microsoft.com_download_symbols
call fcn.14000ec00
nop
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x40], 7
mov word [rsp + 0x28], r14w
mov dword [rsp + 0x20], 2
mov rcx, qword [rbp - 0x18]
test cl, 2
jne 0x14000d508
mov rax, qword [rbp - 0x48]
mov r8, qword [rax]
test r8, r8
je 0x14000d508
mov rax, qword [rbp - 0x68]
mov rdx, qword [rax]
cmp r8, qword [rbp - 0x20]
cmovb r8, qword [rbp - 0x20]
sub r8, rdx
jmp 0x14000d530
test cl, 4
jne 0x14000d53e
mov rax, qword [rbp - 0x50]
mov r9, qword [rax]
test r9, r9
je 0x14000d53e
mov rax, qword [rbp - 0x70]
mov rdx, qword [rax]
mov rax, qword [rbp - 0x38]
movsxd r8, dword [rax]
add r8, r8
sub r8, rdx
add r8, r9
sar r8, 1
lea rcx, [rsp + 0x28]
call fcn.140004ba0
nop
lea rdx, [rsp + 0x28]
lea rcx, [rdi + 0x20]
call fcn.140007220
mov rdx, qword [rsp + 0x40]
cmp rdx, 8
jb 0x14000d58b
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000d585
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000d5c0
call fcn.14001e184
nop
lea rcx, [rsp + 0x60]
call fcn.14000d670
nop
mov rax, rdi
mov rcx, qword [rbp + 0x270]
xor rcx, rsp
call fcn.14001e160
lea r11, [rsp + 0x380]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
call fcn.140025ed4
nop
int3
Function at 0x14000f5c0
Capabilities:
Read file via mapping

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x40
lea rsi, [rcx + 0x10]
mov rdi, rcx
mov rcx, qword [rsi]
xor ebp, ebp
mov rbx, rdx
test rcx, rcx
je 0x14000f5f3
jle 0x14000f5f0
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov qword [rsi], rbp
mov rcx, qword [rdi + 8]
test rcx, rcx
je 0x14000f608
jle 0x14000f604
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 8], rbp
mov rcx, qword [rdi]
test rcx, rcx
je 0x14000f61b
jle 0x14000f618
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi], rbp
mov rcx, qword [rdi + 0x48]
test rcx, rcx
je 0x14000f630
jle 0x14000f62c
call qword [sym.imp.KERNEL32.dll_ReleaseActCtx]
mov qword [rdi + 0x48], rbp
lea rcx, [rdi + 0xf8]
mov qword [rdi + 0x20], rbp
mov qword [rdi + 0x28], rbp
cmp rcx, rbx
je 0x14000f65a
cmp qword [rbx + 0x18], 8
mov rdx, rbx
jb 0x14000f651
mov rdx, qword [rbx]
mov r8, qword [rbx + 0x10]
call fcn.140004ba0
mov byte [rdi + 0x1c], bpl
cmp qword [rbx + 0x18], 8
jb 0x14000f668
mov rbx, qword [rbx]
xor r9d, r9d
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], ebp
mov edx, 0x120089
mov rcx, rbx
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 7]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rcx, qword [rdi]
mov rbx, rax
cmp rax, rcx
je 0x14000f6aa
test rcx, rcx
jle 0x14000f6a4
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi], rbx
mov rcx, rbx
test rcx, rcx
jle 0x14000f78f
mov qword [rsp + 0x28], rbp
xor r9d, r9d
xor edx, edx
mov dword [rsp + 0x20], ebp
mov r8d, 0x1000002
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov rcx, qword [rdi + 8]
mov rbx, rax
cmp rax, rcx
je 0x14000f6eb
test rcx, rcx
jle 0x14000f6e4
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 8], rbx
mov rcx, rbx
xor r9d, r9d
test rcx, rcx
jle 0x14000f6f9
mov byte [rdi + 0x18], bpl
jmp 0x14000f73b
mov rcx, qword [rdi]
xor edx, edx
mov qword [rsp + 0x28], rbp
mov byte [rdi + 0x18], 1
mov dword [rsp + 0x20], ebp
lea r8d, [rdx + 2]
call qword [sym.imp.KERNEL32.dll_CreateFileMappingW]
mov rcx, qword [rdi + 8]
mov rbx, rax
cmp rax, rcx
je 0x14000f733
test rcx, rcx
jle 0x14000f72c
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rdi + 8], rbx
mov rcx, rbx
test rcx, rcx
jle 0x14000f780
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rbp
lea edx, [r8 + 4]
call qword [sym.imp.KERNEL32.dll_MapViewOfFile]
mov rbx, rax
lea rax, [rsp + 0x50]
cmp rax, rsi
je 0x14000f772
mov rcx, qword [rsi]
cmp rbx, rcx
je 0x14000f780
test rcx, rcx
jle 0x14000f76d
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov qword [rsi], rbx
jmp 0x14000f780
test rbx, rbx
jle 0x14000f780
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
cmp qword [rsi], rbp
je 0x14000f78f
mov rcx, rdi
call fcn.14000f8b0
jmp 0x14000f79e
mov rax, qword gs:[0x30]
mov eax, dword [rax + 0x1250]
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x40
pop rdi
ret
Function at 0x14000f7c0
Capabilities:
Delete file

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rcx
xor esi, esi
mov rcx, qword [rcx + 0x10]
movzx edi, dl
test rcx, rcx
je 0x14000f7ec
jle 0x14000f7e8
call qword [sym.imp.KERNEL32.dll_UnmapViewOfFile]
mov qword [rbx + 0x10], rsi
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14000f801
jle 0x14000f7fd
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx + 8], rsi
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000f814
jle 0x14000f811
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx], rsi
mov rcx, qword [rbx + 0x48]
test rcx, rcx
je 0x14000f829
jle 0x14000f825
call qword [sym.imp.KERNEL32.dll_ReleaseActCtx]
mov qword [rbx + 0x48], rsi
mov qword [rbx + 0x20], rsi
mov qword [rbx + 0x28], rsi
test dil, dil
jne 0x14000f897
cmp qword [rbx + 0x110], 8
lea rcx, [rbx + 0xf8]
jb 0x14000f84e
mov rcx, qword [rbx + 0xf8]
mov qword [rbx + 0x108], rsi
mov word [rcx], si
cmp byte [rbx + 0x1c], sil
je 0x14000f875
lea rcx, [rbx + 0x118]
cmp qword [rcx + 0x18], 8
jb 0x14000f86f
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp qword [rbx + 0x130], 8
lea rax, [rbx + 0x118]
jb 0x14000f88d
mov rax, qword [rbx + 0x118]
mov qword [rbx + 0x128], rsi
mov word [rax], si
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x140011f80
Capabilities:
Hash data using fnv

Disassembly:
push rsi
push rdi
sub rsp, 0x28
movabs rax, 0xfffffffffffffff
mov rsi, rcx
bsr rcx, rax
mov edi, 1
mov eax, edi
shl rax, cl
cmp rdx, rax
ja 0x14001215f
lea rax, [rdx - 1]
mov qword [rsp + 0x50], rbx
mov rbx, qword [rsi + 8]
or rax, rdi
bsr rcx, rax
mov r8, rbx
mov qword [rsp + 0x20], r14
inc ecx
shl rdi, cl
lea rcx, [rsi + 0x18]
lea rdx, [rdi + rdi]
call fcn.1400072c0
mov qword [rsi + 0x38], rdi
lea rax, [rdi - 1]
mov qword [rsi + 0x30], rax
mov rcx, qword [rsi + 8]
mov rcx, qword [rcx]
mov rdx, rcx
cmp rcx, rbx
je 0x140012128
mov qword [rsp + 0x58], rbp
movabs rdi, 0x100000001b3
movabs rbp, 0xcbf29ce484222325
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rcx + 0x11]
movzx r9d, byte [rcx + 0x10]
mov r11, qword [rsi + 0x30]
xor r9, rbp
mov rdx, qword [rdx]
imul r9, rdi
xor r9, rax
movzx eax, byte [rcx + 0x12]
imul r9, rdi
xor r9, rax
movzx eax, byte [rcx + 0x13]
imul r9, rdi
xor r9, rax
movzx eax, byte [rcx + 0x14]
imul r9, rdi
xor r9, rax
movzx eax, byte [rcx + 0x15]
imul r9, rdi
xor r9, rax
movzx eax, byte [rcx + 0x16]
imul r9, rdi
xor r9, rax
movzx eax, byte [rcx + 0x17]
imul r9, rdi
xor r9, rax
imul r9, rdi
and r11, r9
shl r11, 4
add r11, qword [rsi + 0x18]
mov r10, qword [r11]
cmp r10, rbx
jne 0x14001209c
mov qword [r11], rcx
mov qword [r11 + 8], rcx
jmp 0x140012117
mov rax, qword [r11 + 8]
mov r9, qword [rcx + 0x10]
cmp r9, qword [rax + 0x10]
jne 0x1400120d9
mov r10, qword [rax]
cmp r10, rcx
je 0x1400120d3
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], r10
mov rax, qword [r10 + 8]
mov qword [rax], rcx
mov qword [r10 + 8], r8
mov qword [rdx + 8], r9
mov qword [rcx + 8], rax
mov qword [r11 + 8], rcx
jmp 0x140012117
mov r8, rax
cmp r10, rax
je 0x1400120f3
mov rax, qword [rax + 8]
mov r8, rax
cmp r9, qword [rax + 0x10]
je 0x140012139
cmp r10, rax
jne 0x1400120e1
mov r10, qword [rcx + 8]
mov qword [r10], rdx
mov r9, qword [rdx + 8]
mov qword [r9], r8
mov rax, qword [r8 + 8]
mov qword [rax], rcx
mov qword [r8 + 8], r9
mov qword [rdx + 8], r10
mov qword [rcx + 8], rax
mov qword [r11], rcx
mov rcx, rdx
cmp rdx, rbx
jne 0x140012020
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
mov r14, qword [rsp + 0x20]
add rsp, 0x28
pop rdi
pop rsi
ret
mov r10, qword [rax]
mov r9, qword [rcx + 8]
mov qword [r9], rdx
mov r8, qword [rdx + 8]
mov qword [r8], r10
mov rax, qword [r10 + 8]
mov qword [rax], rcx
mov qword [r10 + 8], r8
mov qword [rdx + 8], r9
mov qword [rcx + 8], rax
jmp 0x140012117
lea rcx, str.invalid_hash_bucket_count
call fcn.14001cb08
int3
Function at 0x140012b30
Capabilities:
Get system information on windows

Disassembly:
sub rsp, 0x68
mov rax, qword [0x140071060]
xor rax, rsp
mov qword [rsp + 0x50], rax
cmp qword [0x140074288], 0
jne 0x140012ba1
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ecx, dword [rsp + 0x24]
dec ecx
mov eax, ecx
shr eax, 1
or ecx, eax
mov eax, ecx
shr eax, 2
or ecx, eax
mov eax, ecx
shr eax, 4
or ecx, eax
mov eax, ecx
shr eax, 8
or ecx, eax
mov eax, ecx
shr eax, 0x10
or eax, ecx
inc eax
mov qword [0x140074278], rax
mov eax, dword [rsp + 0x48]
mov qword [0x140074280], rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov qword [0x140074288], rax
lea rax, [0x140074278]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14001e160
add rsp, 0x68
ret

Function at 0x14001c100
Capabilities:
Get system information on windows

Disassembly:
sub rsp, 0x68
mov rax, qword [0x140071060]
xor rax, rsp
mov qword [rsp + 0x50], rax
lea rcx, [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14001e160
add rsp, 0x68
ret
Function at 0x14002e1c4
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x14002dff0
Function at 0x140011370
Capabilities:
Encode data using xor
Generate random numbers using a mersenne twister

Disassembly:
mov edx, dword [rcx + 0x9e8]
mov r8, rcx
cmp edx, 0x270
jl 0x140011446
lea rdx, [rcx + 0x28]
mov r9d, 0xe3
lea r11, [0x140086070]
nop word [rax + rax]
mov ecx, dword [rdx + 4]
xor ecx, dword [rdx]
lea rdx, [rdx + 4]
btr ecx, 0x1f
xor ecx, dword [rdx - 4]
mov eax, ecx
shr ecx, 1
and eax, 1
mov eax, dword [r11 + rax*4]
xor eax, ecx
xor eax, dword [rdx + 0x630]
mov dword [rdx - 4], eax
sub r9, 1
jne 0x1400113a0
lea rdx, [r8 + 0x3b4]
mov r9d, 0x18c
nop dword [rax]
mov ecx, dword [rdx + 4]
xor ecx, dword [rdx]
lea rdx, [rdx + 4]
btr ecx, 0x1f
xor ecx, dword [rdx - 4]
mov eax, ecx
shr ecx, 1
and eax, 1
mov eax, dword [r11 + rax*4]
xor eax, ecx
xor eax, dword [rdx - 0x390]
mov dword [rdx - 4], eax
sub r9, 1
jne 0x1400113e0
mov edx, dword [r8 + 0x9e4]
xor edx, dword [r8 + 0x28]
btr edx, 0x1f
xor edx, dword [r8 + 0x9e4]
mov eax, edx
shr edx, 1
and eax, 1
mov ecx, dword [r11 + rax*4]
xor ecx, dword [r8 + 0x658]
xor ecx, edx
xor edx, edx
mov dword [r8 + 0x9e4], ecx
mov dword [r8 + 0x9e8], edx
movsxd rax, edx
mov ecx, dword [r8 + rax*4 + 0x28]
lea eax, [rdx + 1]
mov dword [r8 + 0x9e8], eax
mov eax, ecx
shr eax, 0xb
xor ecx, eax
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
ret
Function at 0x140016460
Capabilities:
Encode data using base64

Disassembly:
mov qword [rsp + 0x18], rbp
push rsi
sub rsp, 0x50
movzx eax, byte [0x140086a00]
xor esi, esi
movaps xmm0, xmmword [str.ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_]
mov rbp, r8
movaps xmm1, xmmword [0x1400869d0]
mov r9d, edx
mov byte [rsp + 0x40], al
mov r10, rcx
xor eax, eax
movaps xmmword [rsp], xmm0
movaps xmm0, xmmword [0x1400869e0]
movaps xmmword [rsp + 0x10], xmm1
movaps xmm1, xmmword [0x1400869f0]
movaps xmmword [rsp + 0x20], xmm0
movaps xmmword [rsp + 0x30], xmm1
test edx, edx
je 0x140016600
mov qword [rsp + 0x60], rbx
lea r11d, [rsi + 3]
mov qword [rsp + 0x68], rdi
lea ebx, [rsi + 2]
lea edi, [rsi + 1]
nop dword [rax]
xor r8d, r8d
cmp eax, r9d
jae 0x1400164dd
movzx r8d, byte [rax + rbp]
shl r8d, 8
lea ecx, [rax + 1]
cmp ecx, r9d
jae 0x1400164f0
movzx edx, byte [rcx + rbp]
add r8d, edx
shl r8d, 8
lea ecx, [rax + 2]
cmp ecx, r9d
jae 0x140016503
movzx edx, byte [rcx + rbp]
add r8d, edx
add eax, 3
cmp eax, r9d
jbe 0x140016599
lea ecx, [r9 + 2]
cmp eax, ecx
jne 0x14001654d
mov rcx, r8
mov edx, edi
shr rcx, 0x12
shr r8, 0xc
and r8d, 0x3f
movzx ecx, byte [rsp + rcx]
mov byte [rsi + r10], cl
movzx ecx, byte [rsp + r8]
mov byte [rdx + r10], cl
mov ecx, ebx
mov byte [rcx + r10], 0x3d
mov ecx, r11d
mov byte [rcx + r10], 0x3d
jmp 0x1400165e0
lea ecx, [r9 + 1]
cmp eax, ecx
jne 0x1400165ed
mov rcx, r8
mov edx, edi
shr rcx, 0x12
movzx ecx, byte [rsp + rcx]
mov byte [rsi + r10], cl
mov rcx, r8
shr rcx, 0xc
and ecx, 0x3f
shr r8, 6
and r8d, 0x3f
movzx ecx, byte [rsp + rcx]
mov byte [rdx + r10], cl
movzx ecx, byte [rsp + r8]
mov edx, ebx
mov byte [rdx + r10], cl
mov ecx, r11d
mov byte [rcx + r10], 0x3d
jmp 0x1400165e0
mov rcx, r8
mov edx, edi
shr rcx, 0x12
movzx ecx, byte [rsp + rcx]
mov byte [rsi + r10], cl
mov rcx, r8
shr rcx, 0xc
and ecx, 0x3f
movzx ecx, byte [rsp + rcx]
mov byte [rdx + r10], cl
mov rcx, r8
shr rcx, 6
and ecx, 0x3f
mov edx, ebx
and r8d, 0x3f
movzx ecx, byte [rsp + rcx]
mov byte [rdx + r10], cl
movzx ecx, byte [rsp + r8]
mov edx, r11d
mov byte [rdx + r10], cl
add esi, 4
add edi, 4
add ebx, 4
add r11d, 4
cmp eax, r9d
jb 0x1400164d0
mov rdi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x70]
add rsp, 0x50
pop rsi
ret
Function at 0x140069b44
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x140069940
Function at 0x140001487
Capabilities:
Parse pe header

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x20
mov rax, qword [0x140048830]
mov dword [rax], 1
mov rax, qword [0x140048840]
mov dword [rax], 1
mov rax, qword [0x140048850]
mov dword [rax], 1
mov rax, qword [0x1400487d0]
mov qword [rbp - 8], rax
mov rax, qword [rbp - 8]
movzx eax, word [rax]
cmp ax, 0x5a4d
je 0x1400014d8
mov eax, 0
jmp 0x140001585
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 0x140001504
mov eax, 0
jmp 0x140001585
mov rax, qword [rbp - 0x10]
add rax, 0x18
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x18]
movzx eax, word [rax]
movzx eax, ax
cmp eax, 0x10b
je 0x14000152a
cmp eax, 0x20b
je 0x140001551
jmp 0x140001580
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0x5c]
cmp eax, 0xe
ja 0x14000153d
mov eax, 0
jmp 0x140001585
mov rax, qword [rbp - 0x18]
mov eax, dword [rax + 0xd0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001585
mov rax, qword [rbp - 0x18]
mov qword [rbp - 0x20], rax
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0x6c]
cmp eax, 0xe
ja 0x14000156c
mov eax, 0
jmp 0x140001585
mov rax, qword [rbp - 0x20]
mov eax, dword [rax + 0xe0]
test eax, eax
setne al
movzx eax, al
jmp 0x140001585
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x140026c30
Capabilities:
Encode data using xor
Extract resource via kernel32 functions
Hash data with crc32

Disassembly:
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x20
cmp byte [0x140050ce8], 0
mov r12, rcx
mov r13, rdx
mov rdi, r8
je 0x140026cb8
lea rdx, [0x140046e42]
mov rcx, rdi
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x140026dc0
mov rsi, qword [0x140050ce0]
jmp 0x140026c75
lea rsi, [rdx + rax + 4]
mov rdx, rsi
mov rcx, rdi
call sub.msvcrt.dll_strcmp
mov rcx, rsi
mov ebx, eax
call sub.msvcrt.dll_strlen
lea rdx, [rsi + rax + 1]
mov eax, dword [rdx]
test ebx, ebx
jne 0x140026c70
movzx r9d, word [rdx + 4]
lea r8, [rdx + 6]
mov rcx, r12
mov rdx, r13
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop r12
pop r13
jmp fcn.1400221b0
mov r8d, 0xa
mov edx, 3
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_FindResourceA]
xor ecx, ecx
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, rax
mov r9d, dword [rax]
mov eax, dword [rax + 4]
lea rcx, [rdx + 8]
mov qword [0x140050ce0], rcx
test eax, eax
je 0x140026da8
sub eax, 1
lea r8, [rdx + rax + 9]
mov eax, 0xffffffff
nop dword [rax + rax]
movzx edx, byte [rcx]
xor edx, eax
mov eax, edx
and edx, 1
neg edx
shr eax, 1
and edx, 0xedb88320
xor eax, edx
mov edx, eax
and eax, 1
neg eax
shr edx, 1
and eax, 0xedb88320
xor edx, eax
mov eax, edx
and edx, 1
neg edx
shr eax, 1
and edx, 0xedb88320
xor eax, edx
mov edx, eax
and eax, 1
neg eax
shr edx, 1
and eax, 0xedb88320
xor edx, eax
mov eax, edx
and edx, 1
neg edx
shr eax, 1
and edx, 0xedb88320
xor eax, edx
mov edx, eax
and eax, 1
neg eax
shr edx, 1
and eax, 0xedb88320
xor edx, eax
mov eax, edx
shr eax, 1
and edx, 1
add rcx, 1
neg edx
and edx, 0xedb88320
xor eax, edx
mov edx, eax
and eax, 1
neg eax
shr edx, 1
and eax, 0xedb88320
xor eax, edx
cmp r8, rcx
jne 0x140026d10
not eax
cmp r9d, eax
jne 0x140026e47
mov byte [0x140050ce8], 1
jmp 0x140026c4d
cmp byte [0x140050cd8], 0
jne 0x140026c64
mov rbx, qword [sym.imp.python310.dll_PyDict_New]
call rbx
mov qword [0x140050d30], rax
call rbx
mov qword [0x140050d28], rax
call rbx
mov qword [0x140050d20], rax
call rbx
mov qword [0x140050d60], rax
call rbx
mov qword [0x140050d58], rax
call rbx
mov qword [0x140050d50], rax
call rbx
mov qword [0x140050d40], rax
call rbx
mov byte [0x140050cd8], 1
mov qword [0x140050d38], rax
mov rax, qword [sym.imp.python310.dll__PyRuntime]
mov rax, qword [rax + 0x1f0]
mov rax, qword [rax + 0x10]
add rax, 0xda0
mov qword [0x140050d68], rax
jmp 0x140026c64
lea rcx, str.Error__corrupted_constants_object
call sub.msvcrt.dll_puts
call sub.msvcrt.dll_abort
nop
nop dword [rax]
Function at 0x14002d370
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 fcn.14003e880
mov r9, rax
mov r8d, 0x1b
mov edx, 1
lea rax, str.Mingw_w64_runtime_failure:_n
mov rcx, rax
call sub.msvcrt.dll_fwrite
mov rbx, qword [rbp - 8]
mov ecx, 2
call fcn.14003e880
mov r8, rbx
mov rdx, qword [rbp + 0x20]
mov rcx, rax
call sub.msvcrt.dll_vfprintf
call sub.msvcrt.dll_abort
nop

Function at 0x14002e022
Capabilities:
Get thread local storage value

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x30
mov eax, dword [0x140051088]
test eax, eax
je 0x14002e0ba
lea rax, [0x140051060]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
call rax
mov rax, qword [0x140051090]
mov qword [rbp - 8], rax
jmp 0x14002e09e
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 0x14002e092
cmp qword [rbp - 0x10], 0
je 0x14002e092
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 0x14002e058
lea rax, [0x140051060]
mov rcx, rax
mov rax, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call rax
jmp 0x14002e0bb
nop
add rsp, 0x30
pop rbp
ret

Function at 0x14002e1c0
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 0x14002e1e8
mov eax, 0
jmp 0x14002e236
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 0x14002e211
mov eax, 0
jmp 0x14002e236
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 0x14002e231
mov eax, 0
jmp 0x14002e236
mov eax, 1
add rsp, 0x20
pop rbp
ret
Function at 0x14002e23c
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 0x14002e2ba
mov rax, qword [rbp - 8]
mov eax, dword [rax + 0xc]
mov eax, eax
cmp qword [rbp + 0x18], rax
jb 0x14002e2b1
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 0x14002e2b1
mov rax, qword [rbp - 8]
jmp 0x14002e2cf
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 0x14002e284
mov eax, 0
add rsp, 0x20
pop rbp
ret
Function at 0x14001b7f0
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
mov eax, 0x10090
call fcn.14001f680
sub rsp, rax
mov rax, qword [0x14005b940]
xor rax, rsp
mov qword [rsp + 0x10080], rax
movzx edx, byte [rcx]
lea rbx, [rsp + 0x30]
xor eax, eax
mov rsi, rcx
mov word [rsp + 0x80], ax
mov word [rsp + 0x30], ax
lea edi, [rax + 0x28]
test dl, dl
je 0x14001b8b2
nop dword [rax + rax]
cmp word [rbx], 0
mov rcx, rdi
mov rax, rbx
je 0x14001b85d
nop dword [rax]
add rax, 2
dec rcx
cmp word [rax], 0
jne 0x14001b850
cmp rcx, 1
jb 0x14001b90a
mov byte [rsp + 0x20], dl
mov rcx, 0xffffffffffffffff
mov byte [rsp + 0x21], 0
nop word [rax + rax]
cmp word [rax + rcx*2 + 2], 0
lea rcx, [rcx + 1]
jne 0x14001b880
lea rcx, [rax + rcx*2]
mov r8d, 2
lea rdx, [rsp + 0x20]
call fcn.14002e82c
movzx edx, byte [rsi + 1]
inc rsi
add rbx, 2
dec rdi
test dl, dl
jne 0x14001b840
mov r8d, 0x10000
lea rdx, [rsp + 0x80]
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetEnvironmentVariableW]
dec eax
cmp eax, 0xffff
ja 0x14001b8e3
lea rcx, [rsp + 0x80]
call fcn.14003165c
jmp 0x14001b8e5
xor eax, eax
mov rcx, qword [rsp + 0x10080]
xor rcx, rsp
call fcn.14001f3b0
lea r11, [rsp + 0x10090]
mov rbx, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret
call fcn.14002e5d8
int3