joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140087bb0
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
lea r11, [0x1401116f0]
mov r9, rdx
not ecx
test dl, 3
je 0x140087be5
test r8, r8
je 0x140087be5
movzx edx, byte [r9]
mov eax, ecx
xor rdx, rax
shr ecx, 8
movzx eax, dl
inc r9
dec r8
xor ecx, dword [r11 + rax*4]
test r9b, 3
jne 0x140087bc1
mov r10, r8
and r10, 0xfffffffffffffff0
add r10, r9
cmp r9, r10
jae 0x140087cbc
nop dword [rax + rax]
xor ecx, dword [r9]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
xor ecx, dword [r9 + 4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
xor ecx, dword [r9 + 8]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
xor ecx, dword [r9 + 0xc]
add r9, 0x10
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
movzx edx, cl
shr ecx, 8
xor ecx, dword [r11 + rdx*4]
cmp r9, r10
jb 0x140087c00
and r8d, 0xf
add r8, r9
cmp r9, r8
jae 0x140087ceb
nop dword [rax + rax]
movzx edx, byte [r9]
mov eax, ecx
xor rdx, rax
shr ecx, 8
movzx eax, dl
inc r9
xor ecx, dword [r11 + rax*4]
cmp r9, r8
jb 0x140087cd0
not ecx
mov eax, ecx
ret
Function at 0x140089ee0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
mov qword [rsp + 0x18], rdi
mov qword [rsp + 0x20], r14
push r15
sub rsp, 0x20
mov eax, dword [rcx + 0x80]
mov rdi, rdx
mov r8d, eax
mov r14, rcx
shr r8, 3
and eax, 7
shl eax, 3
and r8d, 0xf
mov ecx, eax
mov rdx, 0xffffffffffffffff
shl rdx, cl
mov eax, 0x80
not rdx
shl rax, cl
and rdx, qword [r14 + r8*8]
xor esi, esi
xor rdx, rax
mov qword [r14 + r8*8], rdx
inc r8
cmp r8, 0xf
jb 0x140089f61
jne 0x140089f4a
mov qword [r14 + 0x78], rsi
lea rbx, [r14 + 0x88]
mov rdx, r14
mov rcx, rbx
call fcn.140088400
mov r8, rsi
jmp 0x140089f68
lea rbx, [r14 + 0x88]
lea rax, [r8*8]
xor edx, edx
mov r8d, 0x78
lea rcx, [rax + r14]
sub r8, rax
and r8, 0xfffffffffffffff8
call fcn.1400a5140
mov rax, qword [r14 + 0x80]
mov rdx, r14
shl rax, 3
mov rcx, rbx
bswap rax
mov qword [r14 + 0x78], rax
call fcn.140088400
test rdi, rdi
je 0x14008a0b8
mov edx, dword [r14 + 0xc8]
movzx eax, dil
or al, bl
or al, dl
test al, 7
jne 0x14008a095
lea rcx, [rdx + 7]
shr rcx, 3
lea r8, [rbx + rdx]
cmp rbx, r8
cmova rcx, rsi
test rcx, rcx
je 0x14008a06d
cmp rcx, 8
jb 0x14008a06d
cmp dword [0x140144018], 2
jl 0x14008a06d
lea rax, [rcx - 1]
lea rax, [rbx + rax*8]
lea rdx, [rdi - 8]
lea rdx, [rdx + rcx*8]
cmp rdi, rax
ja 0x14008a00e
cmp rdx, rbx
jae 0x14008a06d
and rcx, 0xfffffffffffffff8
movdqu xmm0, xmmword [rbx]
add rsi, 8
pshufb xmm0, xmmword [0x140129030]
movdqu xmmword [rdi], xmm0
movdqu xmm0, xmmword [rbx + 0x10]
pshufb xmm0, xmmword [0x140129030]
movdqu xmmword [rdi + 0x10], xmm0
movdqu xmm0, xmmword [rbx + 0x20]
pshufb xmm0, xmmword [0x140129030]
movdqu xmmword [rdi + 0x20], xmm0
movdqu xmm0, xmmword [rbx + 0x30]
add rbx, 0x40
pshufb xmm0, xmmword [0x140129030]
movdqu xmmword [rdi + 0x30], xmm0
add rdi, 0x40
cmp rsi, rcx
jb 0x14008a012
cmp rbx, r8
jae 0x14008a0b8
sub rdi, rbx
nop word [rax + rax]
mov rax, qword [rbx]
bswap rax
mov qword [rdi + rbx], rax
add rbx, 8
cmp rbx, r8
jb 0x14008a080
jmp 0x14008a0b8
test rdx, rdx
je 0x14008a0b8
mov rcx, rsi
nop dword [rax]
movzx eax, byte [rbx]
lea rbx, [rbx + 1]
xor rcx, 7
inc esi
mov byte [rcx + rdi], al
movsxd rcx, esi
cmp rcx, rdx
jb 0x14008a0a0
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov r14, qword [rsp + 0x48]
add rsp, 0x20
pop r15
ret
Function at 0x14008d090
Capabilities:
Encode data using xor
Hash data using sha512

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rbx, rdx
mov rdi, rcx
add rcx, 0x40
xor edx, edx
mov r8d, 0x140
call fcn.1400a5140
movabs rax, 0x6a09e667f3bcc908
mov r8d, 2
mov qword [rdi], rax
movabs rax, 0xbb67ae8584caa73b
mov qword [rdi + 8], rax
movabs rax, 0x3c6ef372fe94f82b
mov qword [rdi + 0x10], rax
movabs rax, 0xa54ff53a5f1d36f1
mov qword [rdi + 0x18], rax
movabs rax, 0x510e527fade682d1
mov qword [rdi + 0x20], rax
movabs rax, 0x9b05688c2b3e6c1f
mov qword [rdi + 0x28], rax
movabs rax, 0x1f83d9abfb41bd6b
mov qword [rdi + 0x30], rax
movabs rax, 0x5be0cd19137e2179
mov qword [rdi + 0x38], rax
lea rax, [rbx + 6]
sub rdi, rbx
nop dword [rax]
movzx ecx, byte [rax]
movzx edx, byte [rax + 1]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax - 1]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax - 2]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax - 3]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax - 4]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax - 5]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax - 6]
shl rdx, 8
or rdx, rcx
xor qword [rax + rdi - 6], rdx
movzx ecx, byte [rax + 8]
movzx edx, byte [rax + 9]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 7]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 6]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 5]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 4]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 3]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 2]
shl rdx, 8
or rdx, rcx
xor qword [rax + rdi + 2], rdx
movzx ecx, byte [rax + 0x10]
movzx edx, byte [rax + 0x11]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 0xf]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 0xe]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 0xd]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 0xc]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 0xb]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 0xa]
shl rdx, 8
or rdx, rcx
xor qword [rax + rdi + 0xa], rdx
movzx ecx, byte [rax + 0x18]
movzx edx, byte [rax + 0x19]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 0x17]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 0x16]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 0x15]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax + 0x14]
shl rdx, 8
lea rax, [rax + 0x20]
or rdx, rcx
movzx ecx, byte [rax - 0xd]
shl rdx, 8
or rdx, rcx
movzx ecx, byte [rax - 0xe]
shl rdx, 8
or rdx, rcx
xor qword [rax + rdi - 0xe], rdx
sub r8, 1
jne 0x14008d130
mov rbx, qword [rsp + 0x30]
xor eax, eax
add rsp, 0x20
pop rdi
ret
Function at 0x14008f8f0
Capabilities:
Encode data using xor

Disassembly:
movzx eax, cl
xor r10d, r10d
or al, r8b
or al, r9b
test al, 3
jne 0x14008f9d3
lea rdx, [r9 + 3]
shr rdx, 2
lea r11, [r8 + r9]
cmp r8, r11
cmova rdx, r10
test rdx, rdx
je 0x14008f9b0
cmp rdx, 0x10
jb 0x14008f9b0
cmp dword [0x140144018], 2
jl 0x14008f9b0
lea rax, [r8 - 4]
lea rax, [rax + rdx*4]
lea r9, [rcx - 4]
lea r9, [r9 + rdx*4]
cmp rcx, rax
ja 0x14008f94d
cmp r9, r8
jae 0x14008f9b0
and rdx, 0xfffffffffffffff0
movdqu xmm0, xmmword [r8]
add r10, 0x10
pshufb xmm0, xmmword [0x140129050]
movdqu xmmword [rcx], xmm0
movdqu xmm0, xmmword [r8 + 0x10]
pshufb xmm0, xmmword [0x140129050]
movdqu xmmword [rcx + 0x10], xmm0
movdqu xmm0, xmmword [r8 + 0x20]
pshufb xmm0, xmmword [0x140129050]
movdqu xmmword [rcx + 0x20], xmm0
movdqu xmm0, xmmword [r8 + 0x30]
add r8, 0x40
pshufb xmm0, xmmword [0x140129050]
movdqu xmmword [rcx + 0x30], xmm0
add rcx, 0x40
cmp r10, rdx
jb 0x14008f951
cmp r8, r11
jae 0x14008f9fa
sub rcx, r8
nop dword [rax + rax]
mov eax, dword [r8]
bswap eax
mov dword [rcx + r8], eax
add r8, 4
cmp r8, r11
jb 0x14008f9c0
ret
test r9, r9
je 0x14008f9fa
mov rdx, r10
nop dword [rax + rax]
movzx eax, byte [r8]
lea r8, [r8 + 1]
xor rdx, 3
inc r10d
mov byte [rdx + rcx], al
movsxd rdx, r10d
cmp rdx, r9
jb 0x14008f9e0
ret

Function at 0x14008fa00
Capabilities:
Check if file exists
Delete file
Extract resource via kernel32 functions
Write file on windows

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
sub rsp, 0x50
mov rax, qword [0x140144038]
xor rax, rsp
mov qword [rsp + 0x48], rax
mov rdi, rdx
mov rsi, rcx
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14008fa34
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
xor ecx, ecx
xor bl, bl
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
lea r8, [0x14010d2e0]
mov rdx, rdi
mov rcx, rax
mov rbp, rax
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rdi, rax
test rax, rax
je 0x14008fb26
mov rdx, rax
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x14008fb1d
mov rcx, rax
mov qword [rsp + 0x80], r14
call qword [sym.imp.KERNEL32.dll_LockResource]
mov r14, rax
test rax, rax
je 0x14008fb15
mov rdx, rdi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov ebp, eax
test eax, eax
je 0x14008fb15
mov qword [rsp + 0x30], 0
xor r9d, r9d
mov dword [rsp + 0x28], 0x80
xor r8d, r8d
mov edx, 0x40000000
mov dword [rsp + 0x20], 2
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rsi, rax
cmp rax, 0xffffffffffffffff
je 0x14008fb15
lea r9, [rsp + 0x40]
mov dword [rsp + 0x40], 0
mov r8d, ebp
mov qword [rsp + 0x20], 0
mov rdx, r14
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_WriteFile]
mov ecx, 1
movzx ebx, bl
test eax, eax
cmovne ebx, ecx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov r14, qword [rsp + 0x80]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_FreeResource]
movzx eax, bl
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.1400a23f0
mov rbx, qword [rsp + 0x88]
add rsp, 0x50
pop rdi
pop rsi
pop rbp
ret
Function at 0x14008fb70
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
lea rax, str.Start_Controller_Thread
mov rbx, rdx
mov rdi, rcx
mov qword [rsp + 0x28], rax
mov rcx, qword [0x14014a4e8]
lea r9, str.BaseController::Start
lea r8, str.D:_a1_sinstaller_cppPCManagerInstallerBaseModuleBaseController.cpp
mov dword [rsp + 0x20], InitCommonControls
mov edx, 4
call fcn.1400823a0
mov qword [rdi + 0x10], rbx
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [rdi + 0x18], eax
mov r9, rdi
lea r8, [0x14008fb50]
xor edx, edx
lea rax, [rdi + 0x1c]
xor ecx, ecx
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
call qword [sym.imp.KERNEL32.dll_CreateThread]
mov qword [rdi + 0x20], rax
test rax, rax
jne 0x14008fc21
mov rcx, qword [0x14014a4e8]
lea rax, str.Create_Install_Controller_Thread_failed.
mov qword [rsp + 0x28], rax
lea r9, str.BaseController::Start
lea r8, str.D:_a1_sinstaller_cppPCManagerInstallerBaseModuleBaseController.cpp
mov dword [rsp + 0x20], 0x14
mov edx, 1
call fcn.1400823a0
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
Function at 0x140097070
Capabilities:
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
push rsi
push rdi
push r12
push r13
push r14
push r15
mov r14, qword [rsp + 0x58]
xor r15d, r15d
mov r11, qword [rsp + 0x70]
mov r13, rdx
mov rax, qword [rsp + 0x60]
mov qword [r14], r8
mov qword [r11], rax
mov rdi, qword [r14]
cmp rdi, r9
je 0x140097203
mov r12, qword [rsp + 0x68]
lea r8d, [r15 + 1]
mov rsi, qword [r11]
mov r9d, 0x3ff
mov r10d, 0x2400
mov ebx, 0x2800
cmp rsi, r12
je 0x140097203
movzx edx, word [r13]
xor bpl, bpl
movzx ecx, word [rdi]
cmp r8w, dx
jae 0x140097109
lea eax, [r10 + rcx]
cmp ax, r9w
ja 0x140097227
mov eax, edx
sub ecx, 0xdc00
shl eax, 0xa
or eax, ecx
jmp 0x14009711f
mov eax, ecx
add cx, bx
cmp cx, r9w
ja 0x14009711f
shl eax, 0xa
mov bpl, 1
sub eax, 0x35f0000
cmp eax, 0x80
jae 0x140097132
movzx r9d, al
mov r10d, r15d
mov ebx, r15d
jmp 0x14009717d
mov r9d, eax
cmp eax, 0x800
jae 0x14009714c
shr r9d, 6
mov r10d, r8d
or r9b, 0xc0
mov ebx, r8d
jmp 0x14009717d
cmp eax, 0x10000
jae 0x140097166
shr r9d, 0xc
mov r10d, 2
or r9b, 0xe0
mov ebx, r10d
jmp 0x14009717d
shr r9d, 0x12
mov r10d, 3
movzx ebx, bpl
or r9b, 0xf0
xor ebx, 1
add ebx, ebx
lea r8d, [rbx + 1]
mov rdx, r12
sub rdx, rsi
mov ecx, r8d
cmp rdx, rcx
jl 0x140097203
lea rcx, [rdi + 2]
mov qword [r14], rcx
test bpl, bpl
jne 0x1400971a1
cmp r10d, 3
jae 0x1400971ad
mov rcx, qword [r11]
mov r8d, ebx
mov byte [rcx], r9b
inc qword [r11]
mov r9, qword [r11]
test r8d, r8d
jle 0x1400971de
lea ecx, [r10 + r10*2]
add ecx, ecx
nop dword [rax + rax]
sub ecx, 6
mov edx, eax
shr edx, cl
dec r8d
and dl, 0x3f
or dl, 0x80
mov byte [r9], dl
inc qword [r11]
mov r9, qword [r11]
test r8d, r8d
jg 0x1400971c0
shr eax, 0xa
mov r8d, 1
test bpl, bpl
mov ecx, r8d
cmovne ecx, eax
mov word [r13], cx
mov rdi, qword [r14]
cmp rdi, qword [rsp + 0x50]
jne 0x1400970be
mov rax, qword [rsp + 0x48]
cmp rax, qword [r14]
sete r15b
mov eax, r15d
mov rbx, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
ret
mov eax, 2
jmp 0x140097212

Function at 0x14009de20
Capabilities:
Initialize winhttp library

Disassembly:
push rbx
sub rsp, 0x30
mov rbx, rcx
mov dword [rsp + 0x20], 0
lea rcx, str.Application_Insights_SDK_1.0
xor r9d, r9d
xor r8d, r8d
xor edx, edx
call qword [sym.imp.WINHTTP.dll_WinHttpOpen]
mov qword [rbx + 8], rax
add rsp, 0x30
pop rbx
ret
Function at 0x1400a1af0
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rdi, rdx
lea r8, [rsp + 0x60]
mov ebx, ecx
mov edx, 0x20000001
lea rcx, str._x_sys_default_locale
mov r9d, 2
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
mov r8d, ebx
mov ecx, 0x1300
neg eax
sbb r9d, r9d
and qword [rsp + 0x30], 0
and r9d, dword [rsp + 0x60]
xor edx, edx
and dword [rsp + 0x28], 0
mov dword [rsp + 0x60], r9d
mov qword [rsp + 0x20], rdi
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, eax
test eax, eax
je 0x1400a1b74
mov r8, qword [rdi]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, [0x140100290]
cmp byte [rcx + rax], 0
je 0x1400a1b74
dec r8
sub rdx, 1
jne 0x1400a1b5a
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret

Function at 0x1400a34f4
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400a353e
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400a353e
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400a353e
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400a353e
cmp dword [rcx + 0x84], 0xe
jbe 0x1400a353e
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x1400a3540
xor al, al
add rsp, 0x28
ret

Function at 0x1400b90fc
Capabilities:
Parse pe header

Disassembly:
xor r8d, r8d
xor edx, edx
jmp 0x1400b8ef8

Function at 0x1400c0ffc
Capabilities:
Get file size

Disassembly:
push rbx
sub rsp, 0x20
mov edx, dword [rcx + 0x14]
nop
shr edx, 3
test dl, 1
je 0x1400c1012
mov al, 1
jmp 0x1400c1072
mov eax, dword [rcx + 0x14]
nop
test al, 0xc0
je 0x1400c1023
mov rax, qword [rcx + 8]
cmp qword [rcx], rax
je 0x1400c1070
mov ecx, dword [rcx + 0x18]
nop
call fcn.1400c3500
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x1400c1070
mov r9d, 1
lea r8, [rsp + 0x38]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_SetFilePointerEx]
test eax, eax
je 0x1400c1070
lea rdx, [rsp + 0x30]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileSizeEx]
test eax, eax
je 0x1400c1070
mov rax, qword [rsp + 0x30]
cmp qword [rsp + 0x38], rax
sete al
jmp 0x1400c1072
xor al, al
add rsp, 0x20
pop rbx
ret
Function at 0x1400c2c58
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor ebp, ebp
mov rbx, rax
test rax, rax
je 0x1400c2cdf
mov rsi, rbx
cmp word [rax], bp
je 0x1400c2c9e
or rax, 0xffffffffffffffff
inc rax
cmp word [rsi + rax*2], bp
jne 0x1400c2c88
lea rsi, [rsi + rax*2]
add rsi, 2
cmp word [rsi], bp
jne 0x1400c2c84
sub rsi, rbx
add rsi, 2
sar rsi, 1
add rsi, rsi
mov rcx, rsi
call fcn.1400bc210
mov rdi, rax
test rax, rax
je 0x1400c2ccc
mov r8, rsi
mov rdx, rbx
mov rcx, rax
call fcn.1400a4a90
mov rbp, rdi
xor ecx, ecx
call fcn.1400bc270
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rbp
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x1400c5a54
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov ebx, ecx
call fcn.1400bbcb4
mov ecx, ebx
lea r8, [rsp + 0x30]
and ecx, 0x3ff
mov r9d, 2
bts ecx, 0xa
mov edx, 0x20000001
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoW]
xor edx, edx
test eax, eax
je 0x1400c5af5
cmp ebx, dword [rsp + 0x30]
je 0x1400c5aee
test esi, esi
je 0x1400c5aee
mov r10, qword [rdi + 0x98]
mov r9d, edx
movzx r8d, word [r10]
lea rcx, [r10 + 2]
lea eax, [r8 - 0x41]
cmp ax, 0x19
jbe 0x1400c5ac9
sub r8w, 0x61
cmp r8w, 0x19
ja 0x1400c5ad6
movzx r8d, word [rcx]
inc r9d
add rcx, 2
jmp 0x1400c5ab3
or rax, 0xffffffffffffffff
inc rax
cmp word [r10 + rax*2], dx
jne 0x1400c5ada
cmp r9d, eax
setne dl
mov eax, edx
jmp 0x1400c5af7
mov eax, 1
jmp 0x1400c5af7
xor eax, eax
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x1400f3b70
Capabilities:
Parse pe header

Disassembly:
mov eax, 0x5a4d
cmp word [rcx], ax
jne 0x1400f3b98
movsxd rdx, dword [rcx + 0x3c]
add rdx, rcx
cmp dword [rdx], 0x4550
jne 0x1400f3b98
xor eax, eax
mov ecx, 0x20b
cmp word [rdx + 0x18], cx
sete al
ret
xor eax, eax
ret
Function at 0x14001125d
Capabilities:
Terminate process

Disassembly:
jmp 0x140014390
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]
add rsp, 0x28
ret

Function at 0x140011307
Capabilities:
Parse pe header

Disassembly:
jmp 0x1400156e0
sub rsp, 0x38
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov qword [rsp + 0x20], rax
cmp qword [rsp + 0x20], 0
jne 0x140015700
xor al, al
jmp 0x140015781
mov rax, qword [rsp + 0x20]
movzx eax, word [rax]
cmp eax, 0x5a4d
je 0x140015713
xor al, al
jmp 0x140015781
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 0x14001573d
xor al, al
jmp 0x140015781
mov rax, qword [rsp + 0x28]
movzx eax, word [rax + 0x18]
cmp eax, 0x20b
je 0x140015751
xor al, al
jmp 0x140015781
mov rax, qword [rsp + 0x28]
cmp dword [rax + 0x84], 0xe
ja 0x140015763
xor al, al
jmp 0x140015781
mov eax, 8
imul rax, rax, 0xe
mov rcx, qword [rsp + 0x28]
cmp dword [rcx + rax + 0x88], 0
jne 0x14001577f
xor al, al
jmp 0x140015781
mov al, 1
add rsp, 0x38
ret
Function at 0x140002970
Capabilities:
Hash data using fnv

Disassembly:
mov byte [rsp + 0x10], dl
mov dword [rsp + 8], ecx
movsx eax, byte [rsp + 0x10]
mov ecx, dword [rsp + 8]
xor ecx, eax
mov eax, ecx
mov eax, eax
imul rax, rax, 0x1000193
ret

Function at 0x140003988
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400039d2
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400039d2
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400039d2
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400039d2
cmp dword [rcx + 0x84], 0xe
jbe 0x1400039d2
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x1400039d4
xor al, al
add rsp, 0x28
ret

Function at 0x140009784
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 0x1400095ef
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x1400095ef
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x1400095ef
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x1400095ef
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x1400095ef
cmp dword [rcx + 0x84], 0xe
jbe 0x1400095ef
cmp dword [rcx + 0xf8], 0
je 0x1400095ef
mov ecx, ebx
call fcn.1400096a0
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.14000947c
nop
cmp dword [rbp + 0x20], 0
je 0x14000963d
mov rbx, qword [rsp + 0x60]
add rsp, 0x50
pop rbp
ret
mov ecx, ebx
call fcn.140009648
int3
xor r8d, r8d
xor edx, edx
jmp 0x140009580
Function at 0x14000d0bc
Capabilities:
Query environment variable

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 r14
sub rsp, 0x40
call qword [sym.imp.KERNEL32.dll_GetEnvironmentStringsW]
xor esi, esi
mov rbx, rax
test rax, rax
jne 0x14000d0ec
xor eax, eax
jmp 0x14000d1af
mov rbp, rbx
cmp word [rax], si
je 0x14000d111
or rax, 0xffffffffffffffff
inc rax
cmp word [rbp + rax*2], si
jne 0x14000d0f8
lea rbp, [rbp + rax*2]
add rbp, 2
cmp word [rbp], si
jne 0x14000d0f4
mov qword [rsp + 0x38], rsi
sub rbp, rbx
mov qword [rsp + 0x30], rsi
add rbp, 2
sar rbp, 1
mov r8, rbx
mov r9d, ebp
mov dword [rsp + 0x28], esi
xor edx, edx
mov qword [rsp + 0x20], rsi
xor ecx, ecx
call fcn.14000cfdc
movsxd r14, eax
test eax, eax
jne 0x14000d14f
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
jmp 0x14000d0e5
mov rcx, r14
call fcn.14000b470
mov rdi, rax
test rax, rax
jne 0x14000d168
xor ecx, ecx
call fcn.14000b63c
jmp 0x14000d144
mov qword [rsp + 0x38], rsi
mov r9d, ebp
mov qword [rsp + 0x30], rsi
mov r8, rbx
mov dword [rsp + 0x28], r14d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rdi
call fcn.14000cfdc
test eax, eax
jne 0x14000d199
mov rcx, rdi
call fcn.14000b63c
jmp 0x14000d1a3
xor ecx, ecx
call fcn.14000b63c
mov rsi, rdi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeEnvironmentStringsW]
mov rax, rsi
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret