joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400176ec
Capabilities:
Read file on windows

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
mov eax, 0x1050
call fcn.14000c850
sub rsp, rax
mov rax, qword [0x14003e040]
xor rax, rsp
mov qword [rsp + 0x1040], rax
mov r15, r8
mov rbp, rdx
mov rbx, rcx
call fcn.14001a47c
xor edi, edi
movsxd r14, eax
cmp dword [rbx + 0x10], edi
jne 0x14001773b
mov rax, rbp
jmp 0x140017843
mov rax, qword [rbx]
mov rcx, r14
sub rax, qword [rbx + 8]
and ecx, 0x3f
cqo
mov rbx, r14
sub rax, rdx
sar rbx, 6
sar rax, 1
mov r9, r15
lea r12, [rcx + rcx*8]
mov rsi, rax
lea rax, [0x140000000]
xor r8d, r8d
mov rdx, qword [rax + rbx*8 + 0x42a30]
mov ecx, r14d
mov rdx, qword [rdx + r12*8 + 0x30]
call fcn.14001c27c
mov r13, rax
lea rax, [0x140000000]
mov rcx, qword [rax + rbx*8 + 0x42a30]
cmp r13, qword [rcx + r12*8 + 0x30]
jne 0x14001783f
mov rcx, qword [rcx + r12*8 + 0x28]
lea r9, [rsp + 0x30]
mov r8d, 0x1000
mov qword [rsp + 0x20], rdi
lea rdx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_ReadFile]
test eax, eax
je 0x14001783f
mov r9, r15
xor r8d, r8d
mov rdx, rbp
mov ecx, r14d
call fcn.14001c27c
test rax, rax
js 0x14001783f
mov eax, dword [rsp + 0x30]
cmp rsi, rax
jg 0x14001783f
lea rdx, [rsp + 0x40]
add rdx, rax
lea rcx, [rsp + 0x40]
test rsi, rsi
je 0x140017831
lea r8, [0x140000000]
cmp rcx, rdx
jae 0x140017831
cmp byte [rcx], 0xd
jne 0x140017817
lea rax, [rdx - 1]
cmp rcx, rax
jae 0x140017826
cmp byte [rcx + 1], 0xa
jne 0x140017826
inc rcx
jmp 0x140017826
movzx eax, byte [rcx]
movsx rax, byte [rax + r8 + 0x3e350]
add rcx, rax
inc rdi
inc rcx
cmp rdi, rsi
jne 0x1400177f9
lea rax, [rsp + 0x40]
sub rcx, rax
lea rax, [rcx + r13]
jmp 0x140017843
or rax, 0xffffffffffffffff
mov rcx, qword [rsp + 0x1040]
xor rcx, rsp
call fcn.14000c550
mov rbx, qword [rsp + 0x1090]
add rsp, 0x1050
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret

Function at 0x140019968
Capabilities:
Parse pe header

Disassembly:
mov dword [rsp + 0x18], r8d
mov dword [rsp + 0x10], edx
push rbp
mov rbp, rsp
sub rsp, 0x50
mov qword [rbp - 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov ebx, ecx
test r8d, r8d
jne 0x1400199d7
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400199d7
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400199d7
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400199d7
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400199d7
cmp dword [rcx + 0x84], 0xe
jbe 0x1400199d7
cmp dword [rcx + 0xf8], 0
je 0x1400199d7
mov ecx, ebx
call fcn.140019a88
mov byte [rbp + 0x28], 0
lea rax, [rbp + 0x18]
mov qword [rbp - 0x18], rax
lea rax, [rbp + 0x20]
mov qword [rbp - 0x10], rax
lea rax, [rbp + 0x28]
mov qword [rbp - 8], rax
mov eax, 2
mov dword [rbp - 0x2c], eax
mov dword [rbp - 0x28], eax
lea r9, [rbp - 0x2c]
lea r8, [rbp - 0x18]
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x30]
call fcn.140019864
nop
cmp dword [rbp + 0x20], 0
je 0x140019a25
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.140019a30
int3
Function at 0x13a5da4
Capabilities:
Encode data using xor

Disassembly:
jmp 0x13a5dae
push rax
push rcx
push rdx
push rbx
push rbp
push rsi
push rdi
push r8
push r9
push r10
push r11
push r12
push r13
push r14
push r15
pushfq
sub rsp, 8
stmxcsr dword [rsp]
call 0x13a5dd7
pop rbp
sub rbp, 0x33
sub rbp, 0xfa5da4
sub rsp, 0x20
jmp 0x13a5df6
mov rax, 0xfa5da4
add rax, rbp
add rax, 0x84
mov rcx, 0x60b
mov rdx, 0x8565fb
xor byte [rax], dl
inc rax
dec rcx
jne 0x13a5e15
jmp 0x13a5e2c
mov bl, 0x72
adc dh, byte [rax + 0x72]
invalid
Function at 0x180028590
Capabilities:
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
mov rbx, qword [0x1800b1c28]
mov edi, edx
cmp byte [rbx + 0x1f75], 0
jne 0x1800285e1
cmp byte [rbx + 0x1f76], 0
jne 0x1800285e1
mov r9d, dword [rbx + 0x3054]
lea r8, str.Tooltip__02d
mov edx, 0x10
lea rcx, [rsp + 0x20]
call fcn.18001b400
test dil, 1
je 0x180028706
jmp 0x18002866b
movss xmm1, dword [rbx + 0x1610]
lea r8, str.Tooltip__02d
mov r9d, dword [rbx + 0x3054]
lea rcx, [rsp + 0x20]
movaps xmm0, xmm1
xor eax, eax
mulss xmm0, dword [0x18009eb3c]
mov edx, 0x10
mulss xmm1, dword [0x18009eb2c]
addss xmm0, dword [rbx + 0x128]
addss xmm1, dword [rbx + 0x12c]
mov qword [rbx + 0x1d08], rax
mov dword [rbx + 0x1cf4], 1
movss dword [rbx + 0x1d00], xmm0
movss dword [rbx + 0x1d04], xmm1
movss xmm0, dword [rbx + 0x166c]
mulss xmm0, dword [0x18009eaa8]
or dword [rbx + 0x1cf0], 0x41
movss dword [rbx + 0x1d50], xmm0
call fcn.18001b400
movzx r9d, byte [rsp + 0x20]
lea r8, [rsp + 0x21]
mov r10d, 0xffffffff
mov ecx, r10d
test r9b, r9b
je 0x1800286c0
lea r11, [0x180097b00]
nop dword [rax + rax]
cmp r9b, 0x23
jne 0x1800286a3
cmp byte [r8], r9b
jne 0x1800286a3
cmp byte [r8 + 1], r9b
cmove ecx, r10d
movzx edx, cl
movzx eax, r9b
movzx r9d, byte [r8]
xor rdx, rax
shr ecx, 8
inc r8
xor ecx, dword [r11 + rdx*4]
test r9b, r9b
jne 0x180028690
not ecx
call fcn.1800221e0
test rax, rax
je 0x180028706
cmp byte [rax + 0x8e], 0
je 0x180028706
mov byte [rax + 0x95], 1
lea r8, str.Tooltip__02d
mov byte [rax + 0xb0], 1
lea rcx, [rsp + 0x20]
inc dword [rbx + 0x3054]
mov edx, 0x10
mov r9d, dword [rbx + 0x3054]
call fcn.18001b400
xor edx, edx
lea rcx, [rsp + 0x20]
mov r8d, 0x20c0347
call fcn.1800246e0
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
Function at 0x14007bef0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
lea rdi, [0x1400c0720]
mov r9d, ecx
not r9d
mov r11, rdx
cmp r8d, 8
jb 0x14007bf46
mov r10d, r8d
shr r10, 3
mov ebx, 8
movzx ecx, byte [r11]
mov eax, r9d
xor rcx, rax
inc r11
shr eax, 8
movzx edx, cl
mov r9d, dword [rdi + rdx*4]
xor r9d, eax
sub rbx, 1
jne 0x14007bf1c
add r8d, 0xfffffff8
sub r10, 1
jne 0x14007bf17
test r8d, r8d
je 0x14007bf6b
movzx ecx, byte [r11]
mov eax, r9d
xor rcx, rax
inc r11
shr eax, 8
movzx edx, cl
mov r9d, dword [rdi + rdx*4]
xor r9d, eax
add r8d, 0xffffffff
jne 0x14007bf4b
mov rbx, qword [rsp + 8]
not r9d
mov rdi, qword [rsp + 0x10]
mov eax, r9d
ret
Function at 0x14007cf48
Capabilities:
Encrypt data using rc4 prga

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
push r14
push r15
sub rsp, 0x20
mov ebp, dword [rcx + 0x38]
mov rdi, rcx
mov r9d, dword [rcx + 0x94]
mov esi, dword [rdi + 0x50]
mov edx, dword [rdi + 0x8c]
sub esi, edx
sub esi, r9d
jne 0x14007cf92
test edx, edx
jne 0x14007cfa1
test r9d, r9d
jne 0x14007cfa1
mov esi, ebp
jmp 0x14007d028
cmp esi, 0xffffffff
jne 0x14007cfa1
mov esi, 0xfffffffe
jmp 0x14007d028
mov ecx, dword [rdi + 0x38]
add ecx, 0xfffffefa
add ecx, ebp
cmp edx, ecx
jb 0x14007d028
mov rcx, qword [rdi + 0x48]
mov r8, rbp
lea rdx, [rcx + rbp]
call sub.msvcrt.dll_memcpy
mov r9d, dword [rdi + 0x6c]
mov rax, qword [rdi + 0x60]
sub dword [rdi + 0x90], ebp
sub dword [rdi + 0x8c], ebp
sub dword [rdi + 0x7c], ebp
lea r8, [rax + r9*2]
xor eax, eax
lea r8, [r8 - 2]
movzx edx, word [r8]
movzx ecx, dx
sub cx, bp
cmp edx, ebp
cmovae ax, cx
mov word [r8], ax
add r9d, 0xffffffff
jne 0x14007cfdb
mov rax, qword [rdi + 0x58]
mov r9d, ebp
lea r8, [rax + rbp*2]
xor eax, eax
lea r8, [r8 - 2]
movzx edx, word [r8]
movzx ecx, dx
sub cx, bp
cmp edx, ebp
cmovae ax, cx
mov word [r8], ax
add r9d, 0xffffffff
jne 0x14007d006
add esi, ebp
mov r14, qword [rdi]
mov ecx, dword [r14 + 8]
test ecx, ecx
je 0x14007d0e8
mov edx, dword [rdi + 0x94]
mov r12d, dword [rdi + 0x8c]
add r12, rdx
add r12, qword [rdi + 0x48]
cmp ecx, esi
cmovbe esi, ecx
test esi, esi
je 0x14007d097
mov rax, qword [r14 + 0x28]
sub ecx, esi
mov r15, qword [r14]
mov dword [r14 + 8], ecx
cmp dword [rax + 0x2c], 0
jne 0x14007d07a
mov ecx, dword [r14 + 0x4c]
mov r8d, esi
mov rdx, r15
call fcn.14007e6f0
mov dword [r14 + 0x4c], eax
mov r8d, esi
mov rdx, r15
mov rcx, r12
mov ebx, esi
call sub.msvcrt.dll_memcpy
add qword [r14], rbx
add dword [r14 + 0xc], esi
mov edx, dword [rdi + 0x94]
lea r9d, [rdx + rsi]
mov dword [rdi + 0x94], r9d
cmp r9d, 3
jb 0x14007d0d2
mov eax, dword [rdi + 0x8c]
mov rdx, qword [rdi + 0x48]
mov ecx, dword [rdi + 0x78]
movzx r8d, byte [rax + rdx]
mov dword [rdi + 0x68], r8d
shl r8d, cl
inc eax
movzx eax, byte [rax + rdx]
xor r8d, eax
and r8d, dword [rdi + 0x74]
mov dword [rdi + 0x68], r8d
cmp r9d, 0x106
jae 0x14007d0e8
mov rax, qword [rdi]
cmp dword [rax + 8], 0
jne 0x14007cf72
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
add rsp, 0x20
pop r15
pop r14
pop r12
ret
Function at 0x14007e6f0
Capabilities:
Compute adler32 checksum

Disassembly:
movzx r9d, cx
mov r10, rdx
shr ecx, 0x10
test rdx, rdx
jne 0x14007e82a
lea eax, [rdx + 1]
ret
mov edx, 0x15b0
cmp r8d, edx
cmovb edx, r8d
sub r8d, edx
cmp edx, 0x10
jl 0x14007e7ee
mov r11d, edx
shr r11, 4
mov eax, r11d
neg eax
shl eax, 4
add edx, eax
movzx eax, byte [r10]
add r9d, eax
movzx eax, byte [r10 + 1]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 2]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 3]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 4]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 5]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 6]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 7]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 8]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 9]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 0xa]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 0xb]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 0xc]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 0xd]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 0xe]
add ecx, r9d
add r9d, eax
movzx eax, byte [r10 + 0xf]
add ecx, r9d
add r10, 0x10
add r9d, eax
add ecx, r9d
sub r11, 1
jne 0x14007e731
test edx, edx
je 0x14007e804
movzx eax, byte [r10]
inc r10
add r9d, eax
add ecx, r9d
sub edx, 1
jne 0x14007e7f2
mov eax, 0x80078071
mul r9d
shr edx, 0xf
imul eax, edx, 0xffff000f
add r9d, eax
mov eax, 0x80078071
mul ecx
shr edx, 0xf
imul eax, edx, 0xffff000f
add ecx, eax
test r8d, r8d
jne 0x14007e708
shl ecx, 0x10
or ecx, r9d
mov eax, ecx
ret

Function at 0x140081378
Capabilities:
Get system information on windows

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x80
mov rdi, rdx
mov r8d, 0x30
lea rdx, [rsp + 0x20]
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
nop dword [rax + rax]
test rax, rax
jne 0x1400813ac
lea ecx, [rax + 0x19]
int 0x29
test byte [rsp + 0x44], 0x44
je 0x14008140b
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
nop dword [rax + rax]
mov r9d, dword [rsp + 0x54]
xor edx, edx
mov r8d, r9d
neg r8
and r8, rbx
lea ecx, [r9 - 1]
mov eax, ecx
and ecx, ebx
and eax, edi
add eax, ecx
dec rax
add rax, r9
div r9
xor edx, edx
mov rcx, rax
mov rax, rdi
div r9
add rcx, rax
mov eax, ecx
test ecx, ecx
je 0x14008140b
lock or dword [r8], 0
add r8, r9
sub rax, 1
jne 0x1400813fd
mov rbx, qword [rsp + 0x90]
add rsp, 0x80
pop rdi
ret
Function at 0x140081424
Capabilities:
Enumerate pe sections

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
movsxd r8, dword [0x14000003c]
lea rdi, [0x140000000]
add r8, rdi
mov rsi, rdx
mov ebp, ecx
cmp dword [r8 + 0x84], 0xd
jbe 0x140081512
mov r9d, dword [r8 + 0xf0]
test r9d, r9d
je 0x140081512
movzx eax, word [r8 + 0x14]
lea rcx, [r8 + 0x18]
mov r10d, dword [r9 + rdi + 0xc]
add rcx, rax
movzx r11d, word [r8 + 6]
xor r9d, r9d
test r11d, r11d
je 0x1400814ab
mov r8d, dword [rcx + 0xc]
cmp r10d, r8d
jb 0x14008149f
mov edx, dword [rcx + 8]
lea eax, [rdx + r8]
cmp r10d, eax
jb 0x1400814e4
inc r9d
add rcx, 0x28
cmp r9d, r11d
jb 0x14008148a
mov eax, dword [rsp + 0x40]
xor ebx, ebx
mov edx, dword [rsp + 0x40]
test rbx, rbx
je 0x140081512
cmp dword [0x1400ee2a8], 0
jne 0x1400814ed
mov dword [0x1400ee2a8], 1
test eax, eax
js 0x1400814d8
mov ecx, SafeArrayCopy
int 0x29
mov rcx, rbx
mov edi, edx
call fcn.140081378
jmp 0x1400814ef
mov eax, dword [rcx + 0x24]
lea rbx, [rdi + r8]
jmp 0x1400814b5
mov edi, edx
mov r9, rsi
mov r8d, ebp
mov rdx, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_VirtualProtect]
nop dword [rax + rax]
test eax, eax
jne 0x140081518
lea ecx, [rax + 0x19]
int 0x29
jmp 0x140081518
mov dword [rsi], 4
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret

Function at 0x14008364c
Capabilities:
Print debug messages

Disassembly:
jmp 0x140083658
push rbx
sub rsp, reloc.MFC42u.dll_Ordinal_1344
mov rax, qword [0x1400ebe98]
xor rax, rsp
mov qword [rsp + 0x530], rax
lea rcx, [rsp + 0x60]
call qword [sym.imp.ntdll.dll_RtlCaptureContext]
mov rbx, qword [rsp + 0x158]
lea rdx, [rsp + 0x40]
mov rcx, rbx
xor r8d, r8d
call qword [sym.imp.ntdll.dll_RtlLookupFunctionEntry]
test rax, rax
je 0x1400836d5
and qword [rsp + 0x38], 0
lea rcx, [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
mov r9, rax
mov qword [rsp + 0x30], rcx
mov r8, rbx
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rcx
lea rcx, [rsp + 0x60]
mov qword [rsp + 0x20], rcx
xor ecx, ecx
call qword [sym.imp.ntdll.dll_RtlVirtualUnwind]
jmp 0x1400836f5
mov rax, qword [rsp + 0x548]
mov qword [rsp + 0x158], rax
lea rax, [rsp + 0x548]
mov qword [rsp + 0xf8], rax
lea rcx, str.Invalid_parameter_passed_to_C_runtime_function._n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rcx, qword [rsp + 0x530]
xor rcx, rsp
call fcn.140083280
add rsp, reloc.MFC42u.dll_Ordinal_1344
pop rbx
ret

Function at 0x140083a4c
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x18
xor edx, edx
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140083a98
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x140083a90
cmp dword [rcx + 0x3c], edx
jl 0x140083a90
cmp dword [rcx + 0x3c], 0x10000000
jae 0x140083a90
movsxd rax, dword [rcx + 0x3c]
add rax, rcx
mov qword [rsp], rax
cmp dword [rax], 0x4550
cmovne rax, rdx
mov rdx, rax
mov qword [rsp], rax
jmp 0x140083a98
mov rax, rdx
add rsp, 0x18
ret
Function at 0x1402dc000
Capabilities:
Terminate process

Disassembly:
push rbp
mov rbp, rsp
sub rsp, 0x38
and rsp, 0xfffffffffffffff0
movabs rcx, 0x1402dc062
movabs rax, sym.imp.KERNEL32.dll_LoadLibraryA
call qword [rax]
movabs rdx, 0x1402dc06b
mov rcx, rax
movabs rax, sym.imp.KERNEL32.dll_GetProcAddress
call qword [rax]
xor ecx, ecx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
mov r9, rcx
movabs r8, 0x1402dc078
mov rdx, rcx
call rax
leave
jmp fcn.140083250
Function at 0x140005890
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x1400056bc
Function at 0x14006f5ae
Capabilities:
Encode data using xor

Disassembly:
jmp 0x140102ca0
mov rax, rcx
neg rcx
test rax, 7
je 0x140102cbd
nop
mov dl, byte [rax]
inc rax
test dl, dl
je 0x140102d18
test al, 7
jne 0x140102cb0
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 0x140102cd1
mov rdx, qword [rax - 8]
test dl, dl
je 0x140102d42
test dh, dh
je 0x140102d3c
shr rdx, 0x10
test dl, dl
je 0x140102d36
test dh, dh
je 0x140102d30
shr rdx, 0x10
test dl, dl
je 0x140102d2a
test dh, dh
je 0x140102d24
shr edx, 0x10
test dl, dl
je 0x140102d1e
test dh, dh
jne 0x140102cd1
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 0x14006f8c9
Capabilities:
Get thread local storage value

Disassembly:
jmp 0x14008f350
mov dword [rsp + 8], ecx
sub rsp, 0x48
call fcn.14008ecd0
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x14008f38f
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 [0x14019a020]
jmp 0x14008f399
mov ecx, dword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
add rsp, 0x48
ret
Function at 0x14006fa18
Capabilities:
Query environment variable

Disassembly:
jmp 0x140113d70
sub rsp, 0xb8
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.140113ba0
lea rcx, [rsp + 0x40]
call fcn.140113d20
movzx eax, al
test eax, eax
jne 0x140113db8
mov qword [rsp + 0x70], 0
lea rcx, [rsp + 0x40]
call fcn.140113bd0
mov rax, qword [rsp + 0x70]
jmp 0x140113f89
lea rcx, [rsp + 0x40]
call fcn.140113cf0
mov qword [rsp + 0x60], rax
mov rcx, qword [rsp + 0x60]
call fcn.140113c90
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.140113cf0
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.140070422
cdqe
mov qword [rsp + 0x58], rax
cmp qword [rsp + 0x58], 0
jne 0x140113e5e
mov qword [rsp + 0x80], 0
lea rcx, [rsp + 0x40]
call fcn.140113bd0
mov rax, qword [rsp + 0x80]
jmp 0x140113f89
mov r9d, 0x66
lea r8, str.minkernelcrtsucrt_srcdesktopcrtenvget_environment_from_os.cpp
mov edx, 2
mov rcx, qword [rsp + 0x58]
call fcn.14006f7cf
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.14006f6b2
lea rcx, [rsp + 0x48]
call fcn.14006f397
movzx eax, al
test eax, eax
jne 0x140113ec5
mov qword [rsp + 0x88], 0
lea rcx, [rsp + 0x48]
call fcn.14006e771
lea rcx, [rsp + 0x40]
call fcn.140113bd0
mov rax, qword [rsp + 0x88]
jmp 0x140113f89
lea rcx, [rsp + 0x48]
call fcn.14006fcc5
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0x40]
call fcn.140113cf0
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.140070422
mov dword [rsp + 0x50], eax
cmp dword [rsp + 0x50], 0
jne 0x140113f5b
mov qword [rsp + 0xa0], 0
lea rcx, [rsp + 0x48]
call fcn.14006e771
lea rcx, [rsp + 0x40]
call fcn.140113bd0
mov rax, qword [rsp + 0xa0]
jmp 0x140113f89
lea rcx, [rsp + 0x48]
call fcn.14006f68f
mov qword [rsp + 0xa8], rax
lea rcx, [rsp + 0x48]
call fcn.14006e771
lea rcx, [rsp + 0x40]
call fcn.140113bd0
mov rax, qword [rsp + 0xa8]
add rsp, 0xb8
ret

Function at 0x14006fa22
Capabilities:
Allocate thread local storage

Disassembly:
jmp 0x14008f280
mov qword [rsp + 8], rcx
sub rsp, 0x48
call fcn.14008ec50
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
je 0x14008f2c1
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 [0x14019a020]
jmp 0x14008f2c7
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
add rsp, 0x48
ret
Function at 0x14006faa4
Capabilities:
Get geographical location

Disassembly:
jmp 0x1401219e0
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.140120910
mov qword [rsp + 0x30], rax
cmp qword [rsp + 0x30], 0
je 0x140121a47
mov rax, qword [rsp + 0x30]
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x40], rax
movabs r10, 0xe375262d7cd44270
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 qword [0x14019a030]
jmp 0x140121a69
xor edx, edx
mov rcx, qword [rsp + 0x60]
call fcn.14006f342
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 0x14006fab3
Capabilities:
Terminate process

Disassembly:
jmp 0x140078490
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 0x14006fc75
Capabilities:
Print debug messages

Disassembly:
jmp 0x14012e130
mov qword [rsp + 8], rcx
push rbp
sub rsp, 0x50
lea rbp, [rsp + 0x30]
mov rax, qword [0x140188080]
xor rax, rbp
mov qword [rbp + 0x18], rax
cmp qword [rbp + 0x30], 0
jne 0x14012e156
jmp 0x14012e1d3
mov rcx, qword [rbp + 0x30]
call fcn.14006f5ae
inc rax
mov qword [rbp], rax
cmp qword [rbp], 0
jne 0x14012e16f
jmp 0x14012e1d3
mov rax, qword [rbp]
shl rax, 1
mov rcx, rax
add rcx, 0xf
cmp rcx, rax
ja 0x14012e18c
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.14006e8bb
sub rsp, rax
lea rax, [rsp + 0x30]
mov qword [rbp + 8], rax
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.14006ec76
test eax, eax
jne 0x14012e1d3
mov rcx, qword [rbp + 8]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringW]
mov rcx, qword [rbp + 0x18]
xor rcx, rbp
call fcn.14006f761
lea rsp, [rbp + 0x20]
pop rbp
ret

Function at 0x140070017
Capabilities:
Create thread
Terminate process

Disassembly:
jmp 0x14007fd70
push rbp
push rdi
sub rsp, 0xf8
lea rbp, [rsp + 0x30]
lea rcx, [0x14019909f]
call fcn.14007101b
nop
call qword [sym.imp.KERNEL32.dll_FreeConsole]
nop
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r9d, r9d
lea r8, [0x14006e889]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop
mov r9d, 0x32
lea r8, [0x140156f20]
lea rdx, [0x140156f20]
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxA]
nop
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r9d, r9d
lea r8, [0x14007150c]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
xor r9d, r9d
lea r8, [0x140071507]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_CreateThread]
nop
mov ecx, 0x4e20
call qword [sym.imp.KERNEL32.dll_Sleep]
nop
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_ExitProcess]

Function at 0x1400700e9
Capabilities:
Parse pe header

Disassembly:
jmp 0x140075fc0
sub rsp, 0x38
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x140075fe0
xor al, al
jmp 0x140076061
mov rax, qword [rsp + 0x20]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x140075ff3
xor al, al
jmp 0x140076061
mov rax, qword [rsp + 0x20]
movsxd rax, dword [rax + 0x3c]
mov rcx, qword [rsp + 0x20]
add rcx, rax
mov rax, rcx
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
cmp dword [rax], 0x4550
je 0x14007601d
xor al, al
jmp 0x140076061
mov rax, qword [rsp + 0x28]
movzx eax, word [rax + 0x18]
cmp eax, 0x20b
je 0x140076031
xor al, al
jmp 0x140076061
mov rax, qword [rsp + 0x28]
cmp dword [rax + 0x84], 0xe
ja 0x140076043
xor al, al
jmp 0x140076061
mov eax, 8
imul rax, rax, 0xe
mov rcx, qword [rsp + 0x28]
cmp dword [rcx + rax + 0x88], 0
jne 0x14007605f
xor al, al
jmp 0x140076061
mov al, 1
add rsp, 0x38
ret
Function at 0x1400705a8
Capabilities:
Terminate process

Disassembly:
jmp 0x140103690
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 0x1401036be
mov ecx, 5
int 0x29
mov r8d, 1
mov edx, 0xc0000417
mov ecx, 2
call fcn.140070ca1
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 0x140070d00
Capabilities:
Print debug messages

Disassembly:
jmp 0x14010b960
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