joyce8/EMBER2024-capa huggingface dataset:
Function at 0x180057c00
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov rax, qword [rsp + 0x78]
sub rax, 0x10000
mov rcx, rax
call fcn.180057e20
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x70]
cmp qword [rsp + 0x20], rax
jbe 0x180057d07
mov rax, qword [section..data]
cmp qword [rsp + 0x20], rax
jb 0x180057c64
mov rax, qword [0x180077008]
cmp qword [rsp + 0x20], rax
ja 0x180057c64
mov rax, qword [rsp + 0x20]
sub rax, 0x8000000
mov qword [rsp + 0x20], rax
jmp 0x180057c26
mov r8d, 0x30
xor edx, edx
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll_memset
mov r8d, 0x30
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
jne 0x180057c93
jmp 0x180057d07
cmp dword [rsp + 0x50], 0x10000
jne 0x180057cea
cmp qword [rsp + 0x48], 0x10000
jb 0x180057cea
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x10000
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x180057cd8
mov rax, qword [rsp + 0x28]
jmp 0x180057d09
mov rax, qword [rsp + 0x20]
sub rax, 0x10000
mov qword [rsp + 0x20], rax
jmp 0x180057d02
mov rax, qword [rsp + 0x38]
sub rax, 0x10000
mov rcx, rax
call fcn.180057e20
mov qword [rsp + 0x20], rax
jmp 0x180057c26
xor eax, eax
add rsp, 0x68
ret

Function at 0x180057d10
Capabilities:
Allocate or change rwx memory

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
sub rsp, 0x68
mov rcx, qword [rsp + 0x70]
call fcn.180057e60
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x78]
cmp qword [rsp + 0x20], rax
jae 0x180057e13
mov rax, qword [section..data]
cmp qword [rsp + 0x20], rax
jb 0x180057d6b
mov rax, qword [0x180077008]
cmp qword [rsp + 0x20], rax
ja 0x180057d6b
mov rax, qword [rsp + 0x20]
add rax, 0x8000000
mov qword [rsp + 0x20], rax
jmp 0x180057d2d
mov r8d, 0x30
xor edx, edx
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll_memset
mov r8d, 0x30
lea rdx, [rsp + 0x30]
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualQuery]
test rax, rax
jne 0x180057d9a
jmp 0x180057e13
cmp dword [rsp + 0x50], 0x10000
jne 0x180057df1
cmp qword [rsp + 0x48], 0x10000
jb 0x180057df1
mov r9d, 0x40
mov r8d, 0x3000
mov edx, 0x10000
mov rcx, qword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov qword [rsp + 0x28], rax
cmp qword [rsp + 0x28], 0
je 0x180057ddf
mov rax, qword [rsp + 0x28]
jmp 0x180057e15
mov rax, qword [rsp + 0x20]
add rax, 0x10000
mov qword [rsp + 0x20], rax
jmp 0x180057e0e
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x30]
add rcx, rax
mov rax, rcx
mov rcx, rax
call fcn.180057e60
mov qword [rsp + 0x20], rax
jmp 0x180057d2d
xor eax, eax
add rsp, 0x68
ret
Function at 0x14000b950
Capabilities:
Get system information on windows

Disassembly:
push rbx
sub rsp, 0x70
mov rax, qword [0x14007a040]
xor rax, rsp
mov qword [rsp + 0x60], rax
mov eax, 1
mov ecx, 0xff
cpuid
shr edx, 0x1c
xorps xmm0, xmm0
movups xmmword [rsp + 0x20], xmm0
mov dword [rsp + 0x24], ebx
test dl, 1
jne 0x14000b99a
xor al, al
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14006dee0
add rsp, 0x70
pop rbx
ret
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
movzx eax, byte [rsp + 0x26]
cmp eax, dword [rsp + 0x50]
setg al
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.14006dee0
add rsp, 0x70
pop rbx
ret
Function at 0x14000daf0
Capabilities:
Connect to wmi namespace via wbemlocator

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x50
cmp byte [0x140082f88], 0
je 0x14000db19
movzx eax, byte [0x140082f8b]
jmp 0x14000dd03
lea rcx, [0x14000e170]
call fcn.14006e41c
cmp qword [0x140082fa0], 0
jne 0x14000dcf3
xor edx, edx
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeEx]
test eax, eax
js 0x14000dcd7
xor ebp, ebp
mov qword [rsp + 0x40], rbp
mov dword [rsp + 0x38], ebp
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], ebp
xor r9d, r9d
xor r8d, r8d
mov edi, 0xffffffff
mov edx, edi
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitializeSecurity]
test eax, eax
js 0x14000dce2
lea rax, [0x140082fa8]
mov qword [rsp + 0x20], rax
lea r9, [0x140071ae0]
xor edx, edx
lea r8d, [rbp + 1]
lea rcx, [0x140071af0]
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x14000dce2
mov rax, qword [0x140082fa8]
mov rcx, qword [rax]
mov rsi, qword [rcx + 0x18]
lea ecx, [rbp + 0x18]
call fcn.14006df00
mov rbx, rax
mov qword [rsp + 0x60], rax
test rax, rax
je 0x14000dc01
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbx], xmm0
mov qword [rbx + 0x10], rax
mov qword [rbx + 8], rbp
mov dword [rbx + 0x10], 1
lea rcx, str.ROOTCIMV2
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbx], rax
test rax, rax
je 0x14000dd23
jmp 0x14000dc04
mov rbx, rbp
mov qword [rsp + 0x60], rbx
test rbx, rbx
je 0x14000dd18
lea rax, [0x140082fa0]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], rbp
xor r9d, r9d
xor r8d, r8d
mov rdx, qword [rbx]
mov rcx, qword [0x140082fa8]
call rsi
mov esi, eax
lock xadd dword [rbx + 0x10], edi
cmp edi, 1
jne 0x14000dc7f
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000dc60
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov qword [rbx], rbp
mov rcx, qword [rbx + 8]
test rcx, rcx
je 0x14000dc72
call fcn.14006df44
mov qword [rbx + 8], rbp
mov edx, 0x18
mov rcx, rbx
call fcn.14006df44
test esi, esi
js 0x14000dcc4
mov dword [rsp + 0x38], ebp
mov qword [rsp + 0x30], rbp
mov dword [rsp + 0x28], 3
mov dword [rsp + 0x20], 3
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xa]
mov rcx, qword [0x140082fa0]
call qword [sym.imp.ole32.dll_CoSetProxyBlanket]
test eax, eax
jns 0x14000dcf3
mov rcx, qword [0x140082fa0]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov rcx, qword [0x140082fa8]
mov rax, qword [rcx]
call qword [rax + 0x10]
call qword [sym.imp.ole32.dll_CoUninitialize]
mov byte [0x140082f8b], 0
xor al, al
jmp 0x14000dcfc
call qword [sym.imp.ole32.dll_CoUninitialize]
mov byte [0x140082f8b], bpl
xor al, al
jmp 0x14000dcfc
mov byte [0x140082f8b], 1
mov al, 1
mov byte [0x140082f88], 1
mov rbx, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
add rsp, 0x50
pop rdi
ret
mov ecx, 0x8007000e
call fcn.14006ecd0
nop
mov ecx, 0x8007000e
call fcn.14006ecd0
int3
Function at 0x14000e1c0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbx
sub rsp, 0x160
mov rax, qword [0x14007a040]
xor rax, rsp
mov qword [rsp + 0x150], rax
mov rbx, rcx
xor edx, edx
lea rcx, [rsp + 0x40]
mov r8d, 0x104
call sub.VCRUNTIME140.dll_memset
mov r9, rbx
mov qword [rsp + 0x30], 0
mov r8d, 0x104
mov qword [rsp + 0x20], 0x104
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x30]
call qword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstombs_s]
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
jne 0x14000e23a
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x14000e23a
xor al, al
jmp 0x14000e23c
mov al, 1
mov rcx, qword [rsp + 0x150]
xor rcx, rsp
call fcn.14006dee0
add rsp, 0x160
pop rbx
ret

Function at 0x14000e330
Capabilities:
Enumerate process modules

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push rdi
push r14
mov eax, 0x1250
call fcn.14006f0d0
sub rsp, rax
mov rax, qword [0x14007a040]
xor rax, rsp
mov qword [rsp + 0x1240], rax
mov r14, rcx
lea r8, [rsp + 0x20]
lea rcx, [rsp + 0x30]
mov edx, 0x1000
call qword [sym.imp.KERNEL32.dll_K32EnumProcesses]
test eax, eax
je 0x14000e3ed
mov ebp, dword [rsp + 0x20]
xor ebx, ebx
shr ebp, 2
test ebp, ebp
je 0x14000e3ed
lea rsi, [rsp + 0x30]
nop dword [rax + rax]
mov r8d, dword [rsi]
xor edx, edx
mov ecx, 0x400
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rdi, rax
test rax, rax
je 0x14000e3e3
mov r9d, 0x104
lea r8, [rsp + 0x1030]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_K32GetModuleBaseNameW]
test eax, eax
je 0x14000e3da
mov rdx, r14
lea rcx, [rsp + 0x1030]
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__wcsicmp]
test eax, eax
je 0x14000e417
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc ebx
add rsi, 4
cmp ebx, ebp
jb 0x14000e390
xor al, al
mov rcx, qword [rsp + 0x1240]
xor rcx, rsp
call fcn.14006dee0
lea r11, [rsp + 0x1250]
mov rbx, qword [r11 + 0x28]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rsi
ret
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
jmp 0x14000e3ef
Function at 0x14000ed00
Capabilities:
Get system firmware table

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov rdi, rcx
mov qword [rsp + 0x28], rcx
movzx edx, byte [rsp + 0x20]
call fcn.140009640
xor esi, esi
mov qword [rdi + 0x10], rsi
mov qword [rdi + 0x18], 0xf
mov rcx, rdi
call fcn.1400094b0
mov byte [rsp + 0x20], sil
lea rdx, [rsp + 0x20]
mov rcx, rdi
call fcn.140009160
nop
movzx edx, byte [rsp + 0x20]
lea rcx, [rdi + 0x20]
call fcn.140009640
mov qword [rdi + 0x30], rsi
mov qword [rdi + 0x38], 0xf
lea rcx, [rdi + 0x20]
call fcn.1400094b0
mov byte [rsp + 0x20], sil
lea rdx, [rsp + 0x20]
lea rcx, [rdi + 0x20]
call fcn.140009160
nop
movzx edx, byte [rsp + 0x20]
lea rcx, [rdi + 0x40]
call fcn.140009640
mov qword [rdi + 0x50], rsi
mov qword [rdi + 0x58], 0xf
lea rcx, [rdi + 0x40]
call fcn.1400094b0
mov byte [rsp + 0x20], sil
lea rdx, [rsp + 0x20]
lea rcx, [rdi + 0x40]
call fcn.140009160
nop
movzx edx, byte [rsp + 0x20]
lea rcx, [rdi + 0x60]
call fcn.140009640
mov qword [rdi + 0x70], rsi
mov qword [rdi + 0x78], 0xf
lea rcx, [rdi + 0x60]
call fcn.1400094b0
mov byte [rsp + 0x20], sil
lea rdx, [rsp + 0x20]
lea rcx, [rdi + 0x60]
call fcn.140009160
nop
movzx edx, byte [rsp + 0x20]
lea rcx, [rdi + 0x80]
call fcn.140009640
mov qword [rdi + 0x90], rsi
mov qword [rdi + 0x98], 0xf
lea rcx, [rdi + 0x80]
call fcn.1400094b0
mov byte [rsp + 0x20], sil
lea rdx, [rsp + 0x20]
lea rcx, [rdi + 0x80]
call fcn.140009160
nop
movzx edx, byte [rsp + 0x20]
lea rcx, [rdi + 0xa0]
call fcn.140009640
mov qword [rdi + 0xb0], rsi
mov qword [rdi + 0xb8], 0xf
lea rcx, [rdi + 0xa0]
call fcn.1400094b0
mov byte [rsp + 0x20], sil
lea rdx, [rsp + 0x20]
lea rcx, [rdi + 0xa0]
call fcn.140009160
nop
movzx edx, byte [rsp + 0x20]
lea rcx, [rdi + 0xc0]
call fcn.140009640
mov qword [rdi + 0xd0], rsi
mov qword [rdi + 0xd8], 0xf
lea rcx, [rdi + 0xc0]
call fcn.1400094b0
mov byte [rsp + 0x20], sil
lea rdx, [rsp + 0x20]
lea rcx, [rdi + 0xc0]
call fcn.140009160
nop
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov ecx, 0x52534d42
call qword [sym.imp.KERNEL32.dll_GetSystemFirmwareTable]
nop
mov rax, rdi
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
Function at 0x14001c9a0
Capabilities:
Enumerate process modules

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push r14
mov eax, 0x1250
call fcn.14006f0d0
sub rsp, rax
mov rax, qword [0x14007a040]
xor rax, rsp
mov qword [rsp + 0x1240], rax
mov r14, rdx
lea r8, [rsp + 0x20]
mov edx, 0x1000
lea rcx, [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_K32EnumProcesses]
test eax, eax
je 0x14001ca7e
mov ebp, dword [rsp + 0x20]
xor ebx, ebx
shr ebp, 2
test ebp, ebp
je 0x14001ca7e
lea rsi, [rsp + 0x30]
nop dword [rax + rax]
mov r8d, dword [rsi]
xor edx, edx
mov ecx, 0x1000
call qword [sym.imp.KERNEL32.dll_OpenProcess]
mov rdi, rax
test rax, rax
je 0x14001ca74
mov r9d, 0x104
lea r8, [rsp + 0x1030]
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_K32GetModuleBaseNameW]
test eax, eax
je 0x14001ca6b
lea rcx, [rsp + 0x1030]
mov r8, r14
sub r8, rcx
movzx edx, word [rcx]
movzx eax, word [rcx + r8]
sub edx, eax
jne 0x14001ca67
add rcx, 2
test eax, eax
jne 0x14001ca53
test edx, edx
je 0x14001caae
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
inc ebx
add rsi, 4
cmp ebx, ebp
jb 0x14001ca10
xor al, al
mov rcx, qword [rsp + 0x1240]
xor rcx, rsp
call fcn.14006dee0
lea r11, [rsp + 0x1250]
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
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov al, 1
jmp 0x14001ca80

Function at 0x1400285c0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x10], rbx
push rsi
push rdi
push r14
sub rsp, 0x450
mov rax, qword [0x14007a040]
xor rax, rsp
mov qword [rsp + 0x440], rax
mov rbx, r8
mov dword [rsp + 0x3c], 1
mov rsi, rdx
mov r14, rcx
xor edx, edx
lea rcx, [rsp + 0x40]
mov r8d, 0x400
mov rdi, r9
call sub.VCRUNTIME140.dll_memset
lea rax, [rsp + 0x30]
mov dword [rsp + 0x38], 0x400
mov r9d, 0x20019
mov qword [rsp + 0x20], rax
xor r8d, r8d
mov rdx, rbx
mov rcx, 0xffffffff80000002
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x1400286b6
mov rcx, qword [rsp + 0x30]
lea rax, [rsp + 0x38]
mov qword [rsp + 0x28], rax
lea r9, [rsp + 0x3c]
lea rax, [rsp + 0x40]
xor r8d, r8d
mov rdx, rdi
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x1400286ab
mov r8, qword [rsp + 0x490]
lea rax, [rsp + 0x40]
sub r8, rax
nop word [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140028693
inc rax
test ecx, ecx
jne 0x140028680
test edx, edx
jne 0x1400286ab
lea rdx, [0x140071b80]
mov rcx, rsi
call fcn.140057970
mov rax, qword [r14]
inc byte [rax]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.14006dee0
mov rbx, qword [rsp + 0x478]
add rsp, 0x450
pop r14
pop rdi
pop rsi
ret
Function at 0x1400544d0
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x20], rbp
push rsi
push rdi
push r14
sub rsp, 0x50
mov rax, qword [0x14007a040]
xor rax, rsp
mov qword [rsp + 0x48], rax
xor r14d, r14d
mov rbx, r8
mov rdi, rdx
mov qword [rsp + 0x38], r14
lea r8, [rsp + 0x38]
mov dword [rsp + 0x30], r14d
mov rcx, 0xffffffff80000002
mov dword [rsp + 0x40], r14d
mov rdx, qword [rbx]
mov esi, r14d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyW]
test eax, eax
jne 0x1400545f7
mov rbp, qword [rbx + 8]
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x28], rax
mov rdx, rbp
xor r8d, r8d
mov qword [rsp + 0x20], r14
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400545f7
mov ecx, dword [rsp + 0x30]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rcx, qword [rsp + 0x38]
lea r9, [rsp + 0x40]
mov rbx, rax
xor r8d, r8d
lea rax, [rsp + 0x30]
mov rdx, rbp
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbx
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov r9d, r14d
cmp dword [rbx], r14d
jbe 0x1400545f3
mov r8d, dword [rbx + 0x10]
mov edx, r14d
test r8d, r8d
je 0x1400545eb
mov eax, r9d
lea rcx, [rax + rax*8]
lea r10, [rcx*4]
nop
mov eax, edx
lea rcx, [rax + rax*4]
mov eax, r8d
lea rcx, [r10 + rcx*4]
cmp byte [rcx + rbx + 0x14], 3
jne 0x1400545e2
test rdi, rdi
je 0x1400545e0
mov rax, qword [rcx + rbx + 0x18]
mov qword [rdi + 8], rax
mov eax, dword [rcx + rbx + 0x20]
mov qword [rdi], rax
add rdi, 0x10
mov eax, dword [rbx + 0x10]
inc esi
inc edx
mov r8d, eax
cmp edx, eax
jb 0x1400545b0
inc r9d
cmp r9d, dword [rbx]
jb 0x140054594
mov eax, esi
jmp 0x1400545f9
xor eax, eax
mov rcx, qword [rsp + 0x48]
xor rcx, rsp
call fcn.14006dee0
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x88]
add rsp, 0x50
pop r14
pop rdi
pop rsi
ret
Function at 0x14005a680
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x30
mov rbx, qword [rdx + 0x10]
mov rsi, rcx
mov rcx, rdx
mov rdi, rdx
call fcn.140008d30
xor r8d, r8d
movabs r9, 0xcbf29ce484222325
test rbx, rbx
je 0x14005a6d4
movabs rdx, 0x100000001b3
nop dword [rax]
movzx ecx, byte [rax + r8]
inc r8
xor r9, rcx
imul r9, rdx
cmp r8, rbx
jb 0x14005a6c0
mov r8, rdi
lea rdx, [rsp + 0x20]
mov rcx, rsi
call fcn.14005c9c0
mov rax, qword [rsp + 0x28]
test rax, rax
je 0x14005a702
mov rbx, qword [rsp + 0x40]
add rax, 0x30
mov rsi, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
lea rcx, str.invalid_unordered_map_K__T__key
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const____ptr64_]
int3

Function at 0x14005ae90
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
sub r8, rdx
movabs rax, 0xcbf29ce484222325
sar r8, 1
mov r9d, 0
add r8, r8
je 0x14005aed4
movabs r10, 0x100000001b3
nop word [rax + rax]
movzx ecx, byte [r9 + rdx]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x14005aec0
ret

Function at 0x14005b0c0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
movabs rax, 0xcbf29ce484222325
mov r9d, 0
sub r8, rdx
je 0x14005b0f4
movabs r10, 0x100000001b3
nop
movzx ecx, byte [r9 + rdx]
inc r9
xor rax, rcx
imul rax, r10
cmp r9, r8
jb 0x14005b0e0
ret
Function at 0x14005c880
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x30
mov rbx, qword [rdx + 0x10]
mov rbp, rcx
mov rcx, rdx
mov rdi, rdx
call fcn.140008d30
xor esi, esi
movabs r9, 0xcbf29ce484222325
mov r8d, esi
test rbx, rbx
je 0x14005c8e4
movabs rdx, 0x100000001b3
nop dword [rax]
nop dword [rax + rax]
movzx ecx, byte [rax + r8]
inc r8
xor r9, rcx
imul r9, rdx
cmp r8, rbx
jb 0x14005c8d0
mov r8, rdi
lea rdx, [rsp + 0x20]
mov rcx, rbp
call fcn.14005c9c0
mov rbx, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
cmp qword [rax + 8], rsi
setne sil
mov rax, rsi
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret
Function at 0x140068c80
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov dword [rcx + 0x74], 0
mov rbx, rcx
mov edi, 0x7fffffff
mov ebp, 0xfffd
nop word [rax + rax]
movzx ecx, word [rbx + 0x78]
lea eax, [rcx - 0x30]
cmp ax, 9
ja 0x140068d63
lea r8d, [rcx - 0x30]
cmp r8d, 0xffffffff
je 0x140068d63
mov r9d, dword [rbx + 0x74]
mov ecx, 0x7fffffff
sub ecx, r8d
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp r9d, edx
jg 0x140068d81
lea eax, [r9 + r9*4]
dec edi
lea ecx, [r8 + rax*2]
mov rax, qword [rbx]
mov dword [rbx + 0x74], ecx
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x140068d53
cmp word [rax], 0x5c
jne 0x140068d4c
lea rdx, [rax + 2]
cmp rdx, rcx
je 0x140068d4c
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x140068d37
movzx ecx, word [rdx]
sub cx, 0x28
cmp cx, 1
jbe 0x140068d49
test r8b, 0x10
jne 0x140068d4c
movzx ecx, word [rdx]
sub cx, 0x7b
test bp, cx
jne 0x140068d4c
mov rax, rdx
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.140060490
test edi, edi
jne 0x140068cb0
mov rbx, qword [rsp + 0x30]
cmp edi, 0x7fffffff
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
setne al
add rsp, 0x20
pop rdi
ret
mov edx, esi
call fcn.140060480
int3

Function at 0x140069e40
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov esi, edx
mov dword [rcx + 0x74], 0
mov rbx, rcx
mov edi, 0x7fffffff
movsx ecx, byte [rbx + 0x78]
lea eax, [rcx - 0x30]
cmp al, 9
ja 0x140069f0c
lea r8d, [rcx - 0x30]
cmp r8d, 0xffffffff
je 0x140069f0c
mov r9d, dword [rbx + 0x74]
mov ecx, 0x7fffffff
sub ecx, r8d
mov eax, 0x66666667
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp r9d, edx
jg 0x140069f25
lea eax, [r9 + r9*4]
dec edi
lea ecx, [r8 + rax*2]
mov rax, qword [rbx]
mov dword [rbx + 0x74], ecx
mov rcx, qword [rbx + 0x10]
cmp rax, rcx
je 0x140069efc
cmp byte [rax], 0x5c
jne 0x140069ef6
lea rdx, [rax + 1]
cmp rdx, rcx
je 0x140069ef6
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x140069ee2
movzx ecx, byte [rdx]
sub cl, 0x28
cmp cl, 1
jbe 0x140069ef3
test r8b, 0x10
jne 0x140069ef6
movzx ecx, byte [rdx]
sub cl, 0x7b
test cl, 0xfd
jne 0x140069ef6
mov rax, rdx
inc rax
mov qword [rbx], rax
mov rcx, rbx
call fcn.140060fe0
test edi, edi
jne 0x140069e60
mov rbx, qword [rsp + 0x30]
cmp edi, 0x7fffffff
mov rsi, qword [rsp + 0x38]
setne al
add rsp, 0x20
pop rdi
ret
mov edx, esi
call fcn.140060480
int3
Function at 0x14006d854
Capabilities:
Get geographical location

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x40
mov rbx, rdx
lea r8, [rsp + 0x60]
mov edi, ecx
mov edx, 0x20000001
lea rcx, [0x140071a20]
mov r9d, 2
call qword [sym.imp.KERNEL32.dll_GetLocaleInfoEx]
test eax, eax
jne 0x14006d88e
xor r9d, r9d
mov dword [rsp + 0x60], r9d
jmp 0x14006d893
mov r9d, dword [rsp + 0x60]
and qword [rsp + 0x30], 0
mov r8d, edi
and dword [rsp + 0x28], 0
xor edx, edx
mov ecx, 0x1300
mov qword [rsp + 0x20], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageA]
mov edx, eax
test eax, eax
je 0x14006d8dc
mov r8, qword [rbx]
dec r8
add r8, rdx
movzx ecx, byte [r8]
lea rax, [0x140071920]
cmp byte [rcx + rax], 0
je 0x14006d8dc
dec r8
sub rdx, 1
jne 0x14006d8c2
mov rbx, qword [rsp + 0x50]
mov rax, rdx
add rsp, 0x40
pop rdi
ret

Function at 0x14006ea84
Capabilities:
Parse pe header

Disassembly:
sub rsp, 0x28
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
test rax, rax
je 0x14006eace
mov ecx, 0x5a4d
cmp word [rax], cx
jne 0x14006eace
movsxd rcx, dword [rax + 0x3c]
add rcx, rax
cmp dword [rcx], 0x4550
jne 0x14006eace
mov eax, 0x20b
cmp word [rcx + 0x18], ax
jne 0x14006eace
cmp dword [rcx + 0x84], 0xe
jbe 0x14006eace
cmp dword [rcx + 0xf8], 0
setne al
jmp 0x14006ead0
xor al, al
add rsp, 0x28
ret
Function at 0x140001c00
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push rbx
sub rsp, 0x20
cmp qword [0x140250948], 0
mov rbx, qword [0x140254b18]
jne 0x140001d03
mov edx, SafeArrayLock
mov rcx, rbx
mov qword [rsp + 0x38], rdi
lea r8d, [rdx - 7]
call qword [sym.imp.KERNEL32.dll_FindResourceA]
test rax, rax
mov rdi, rax
je 0x140001cfe
mov rdx, rax
mov rcx, rbx
mov qword [rsp + 0x30], rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rdx, rdi
mov rcx, rbx
mov esi, eax
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x140001cf9
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rdx, rsi
xor ecx, ecx
mov qword [rsp + 0x40], 0
mov rbx, rsi
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_GlobalLock]
mov r8, rbx
mov rdx, rdi
mov rcx, rax
call fcn.140056690
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalUnlock]
lea r8, [rsp + 0x40]
mov edx, 1
mov rcx, rsi
call qword [sym.imp.ole32.dll_CreateStreamOnHGlobal]
mov rdx, qword [rsp + 0x40]
test rdx, rdx
je 0x140001cf0
lea rcx, [0x140250940]
call fcn.140001520
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_SafeArrayGetDim]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
add rsp, 0x20
pop rbx
ret
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GlobalFree]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
add rsp, 0x20
pop rbx
ret