joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14008cb10
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 0x14008cbf3
lea r8d, [rcx - 0x30]
cmp r8d, 0xffffffff
je 0x14008cbf3
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 0x14008cc11
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 0x14008cbe3
cmp word [rax], 0x5c
jne 0x14008cbdc
lea rdx, [rax + 2]
cmp rdx, rcx
je 0x14008cbdc
mov r8d, dword [rbx + 0x80]
test r8b, 8
jne 0x14008cbc7
movzx ecx, word [rdx]
sub cx, 0x28
cmp cx, 1
jbe 0x14008cbd9
test r8b, 0x10
jne 0x14008cbdc
movzx ecx, word [rdx]
sub cx, 0x7b
test bp, cx
jne 0x14008cbdc
mov rax, rdx
add rax, 2
mov qword [rbx], rax
mov rcx, rbx
call fcn.140088910
test edi, edi
jne 0x14008cb40
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.140088900
int3
Function at 0x14008edf0
Capabilities:
Delete registry value
Query or enumerate registry value

Disassembly:
mov r11, rsp
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x68
mov rsi, rcx
xor ebp, ebp
mov qword [r11 - 0x30], rbp
mov qword [r11 - 0x38], rbp
mov qword [r11 - 0x40], rbp
lea rax, [r11 + 8]
mov qword [r11 - 0x48], rax
lea rax, [r11 + 0x10]
mov qword [r11 - 0x50], rax
mov qword [r11 - 0x58], rbp
mov qword [r11 - 0x60], rbp
mov qword [r11 - 0x68], rbp
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov rcx, qword [rcx]
call qword [sym.imp.ADVAPI32.dll_RegQueryInfoKeyW]
test eax, eax
jne 0x14008ef45
call fcn.140007380
mov rcx, rax
test rax, rax
je 0x14008ef4e
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400309a4.0]
lea rbx, [rax + 0x18]
mov qword [rsp + 0xa8], rbx
mov edi, dword [rsp + 0x90]
add edi, 1
js 0x14008ef59
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edi
or eax, ecx
jge 0x14008eea6
lfence
mov edx, edi
lea rcx, [rsp + 0xa8]
call fcn.140027ca0
mov rbx, qword [rsp + 0xa8]
cmp edi, dword [rbx - 0xc]
jg 0x14008ef59
mov dword [rbx - 0x10], edi
movsxd rax, edi
mov word [rbx + rax*2], bp
mov edi, dword [rsp + 0x98]
sub edi, 1
js 0x14008ef1f
nop word [rax + rax]
mov eax, dword [rsp + 0x90]
inc eax
mov dword [rsp + 0xa0], eax
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rbp
mov qword [rsp + 0x28], rbp
mov qword [rsp + 0x20], rbp
lea r9, [rsp + 0xa0]
mov r8, rbx
mov edx, edi
mov rcx, qword [rsi]
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x14008ef1a
mov rdx, rbx
mov rcx, qword [rsi]
call qword [sym.imp.ADVAPI32.dll_RegDeleteValueW]
sub edi, 1
jns 0x14008eed0
lea rdx, [rbx - 0x18]
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14008ef45
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400309a4.0]
add rsp, 0x68
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, 0x80004005
call fcn.140007240
nop
mov ecx, 0x80070057
call fcn.140007240
int3
Function at 0x140090300
Capabilities:
Query or enumerate registry value

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x88
mov rsi, rdx
xor ebp, ebp
mov dword [rsp + 0x40], ebp
mov rcx, rdx
call qword [sym.imp.sciter_x.dll_ValueInit]
mov dword [rsp + 0x40], 1
call fcn.140007380
mov rcx, rax
test rax, rax
je 0x140090507
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400309a4.0]
add rax, 0x18
mov qword [rsp + 0x50], rax
mov qword [rsp + 0xc8], rbp
mov byte [rsp + 0x20], 1
mov r9d, 0x20019
lea r8, [rsp + 0xc8]
lea rdx, str.SoftwareESETESET_SysinspectorCurrentVersionHeader
mov rcx, 0xffffffff80000001
call fcn.14005aa30
nop
lea rax, [rsp + 0x50]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rsi
call fcn.140007380
mov rcx, rax
test rax, rax
je 0x1400904f1
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400309a4.0]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
mov edi, ebp
nop word [rax + rax]
mov dword [rsp + 0xb0], 0xff
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0xff
or eax, ecx
jge 0x140090406
lfence
mov edx, 0xff
lea rcx, [rsp + 0x48]
call fcn.140027ca0
mov rbx, qword [rsp + 0x48]
cmp dword [rbx - 0xc], 0xff
jl 0x1400904fc
mov dword [rbx - 0x10], 0xff
mov word [rbx + 0x1fe], bp
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rbp
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rbp
lea r9, [rsp + 0xb0]
mov r8, rbx
mov edx, edi
mov rcx, qword [rsp + 0xc8]
call qword [sym.imp.ADVAPI32.dll_RegEnumValueW]
test eax, eax
jne 0x140090477
mov r8, rbx
lea rcx, [rsp + 0x60]
call fcn.140090520
inc edi
cmp edi, 0x7fffffff
jb 0x1400903d0
lea rdx, [rbx - 0x18]
mov ebx, 0xffffffff
mov eax, ebx
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400904a0
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400309a4.0]
nop
mov rcx, qword [rsp + 0xc8]
test rcx, rcx
je 0x1400904bc
call qword [0x1401f2168]
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], ebx
sub ebx, 1
jg 0x1400904e2
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400309a4.0]
mov rax, rsi
add rsp, 0x88
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, 0x80004005
call fcn.140007240
nop
mov ecx, 0x80070057
call fcn.140007240
nop
mov ecx, 0x80004005
call fcn.140007240
int3
Function at 0x140091a40
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
movzx ebx, dx
mov rbp, rcx
mov ecx, ebx
mov edx, reloc.WS2_32.dll_socket
call fcn.14005aea0
mov r8d, reloc.WS2_32.dll_socket
mov edx, ebx
mov rcx, rax
mov rsi, rax
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rbx, rax
test rax, rax
je 0x140091abd
mov rdx, rax
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LoadResource]
mov rdi, rax
test rax, rax
je 0x140091abd
mov rdx, rbx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
mov rcx, rdi
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov r8d, ebx
mov rcx, rbp
mov rdx, rax
call fcn.140091ae0
jmp 0x140091abf
xor al, al
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret
Function at 0x14009f120
Capabilities:
Create thread

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x60
mov rdi, rcx
xor esi, esi
mov dword [rsp + 0x30], esi
cmp qword [0x1401fd738], rsi
je 0x14009f1f7
call fcn.14009f2a0
lea rax, [0x14009f210]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rsi
lea ecx, [rsi + 0x18]
call fcn.1401610ec
mov qword [rax], rdi
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rax + 8], xmm0
mov qword [rsp + 0x78], rax
mov ebx, 1
mov dword [rsp + 0x30], ebx
lea rcx, [rsp + 0x48]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], esi
mov r9, rax
lea r8, [0x1400afc90]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rsp + 0x40], rax
test rax, rax
je 0x14009f1e7
mov qword [rsp + 0x78], rsi
and ebx, 0xfffffffe
mov dword [rsp + 0x30], ebx
cmp dword [rdi + 0xd30], esi
je 0x14009f1c4
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
int3
xorps xmm0, xmm0
movaps xmm1, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm0
movups xmmword [rdi + 0xd28], xmm1
cmp dword [rsp + 0x48], 0
je 0x14009f1f7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll_terminate]
nop
mov dword [rsp + 0x48], esi
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
ret
Function at 0x1400cb160
Capabilities:
Log keystrokes via polling

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rbx, rdx
mov rdi, rcx
mov ecx, reloc.WS2_32.dll_select
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x1400cb1c5
mov ecx, 0x73
call qword [sym.imp.USER32.dll_GetAsyncKeyState]
bt ax, 0xf
jae 0x1400cb1c5
mov rax, qword [0x1401fdbf0]
test rax, rax
je 0x1400cb2b5
mov byte [rax + 0x28], 1
xor ecx, ecx
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
jmp qword [sym.imp.USER32.dll_PostQuitMessage]
mov esi, dword [rdi + 0x18]
mov eax, dword [rbx + 4]
cmp eax, 0x41
jne 0x1400cb258
cmp dword [rbx], 0
jne 0x1400cb258
test byte [rbx + 8], 1
je 0x1400cb258
mov rcx, rdi
call fcn.1400c1f60
xor esi, esi
mov qword [rsp + 0x40], rsi
lea r8, [rsp + 0x40]
mov edx, dword [rdi + 8]
mov rcx, qword [rdi + 0x10]
call qword [sym.imp.sciter_x.dll_SciterGetElementByUID]
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
call qword [sym.imp.sciter_x.dll_Sciter_UseElement]
mov ebx, esi
test eax, eax
cmove rbx, rdi
mov qword [rsp + 0x48], rbx
test rbx, rbx
je 0x1400cb235
xor r9d, r9d
mov r8, rbx
mov edx, __WSAFDIsSet
mov rcx, rbx
call qword [sym.imp.sciter_x.dll_SciterPostEvent]
nop
test rbx, rbx
je 0x1400cb243
mov rcx, rbx
call qword [sym.imp.sciter_x.dll_Sciter_UnuseElement]
mov qword [rsp + 0x48], rsi
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp eax, 0x43
jne 0x1400cb294
cmp dword [rbx], 0
jne 0x1400cb2b5
test byte [rbx + 8], 1
je 0x1400cb2b5
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0x90]
call qword [case.0x1400309a4.0]
cmp esi, 0xffffffff
jne 0x1400cb284
test eax, eax
je 0x1400cb2b5
mov edx, 0xffffffff
mov r9d, 0x4e21
mov r8d, edx
jmp 0x1400cb2ad
cmp eax, 0x20
jne 0x1400cb2b5
cmp dword [rbx], 0
jne 0x1400cb2b5
cmp esi, 0xffffffff
je 0x1400cb2b5
lea r9d, [rax - 0x1e]
lea r8d, [rax - 0x21]
mov edx, esi
mov rcx, rdi
call fcn.1400c6da0
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret

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

Disassembly:
cmp qword [rdx + 0x18], 0x10
mov r10, rcx
mov r8, rdx
jb 0x1400d1270
mov r8, qword [rdx]
mov r9, qword [rdx + 0x10]
movabs rax, 0xcbf29ce484222325
xor edx, edx
test r9, r9
je 0x1400d12a4
movabs r11, 0x100000001b3
nop
movzx ecx, byte [rdx + r8]
inc rdx
xor rax, rcx
imul rax, r11
cmp rdx, r9
jb 0x1400d1290
xor rax, qword [r10 + 0x10]
movabs rcx, 0x9e3779b97f4a7c15
imul rax, rcx
mov rcx, qword [r10 + 8]
shr rax, 0x20
dec rcx
and rax, rcx
ret
Function at 0x1400e0f10
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov r15, r8
mov rbp, rdx
mov r10, rcx
cmp rdx, r8
je 0x1400e1182
lea r13, [rcx + 8]
mov qword [rsp + 0x30], r13
mov rax, qword [r13]
mov qword [rsp + 0xd8], rax
mov r11, qword [rcx + 0x18]
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x50], r13
mov rax, qword [rdx + 8]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x58], rax
mov r14, rdx
mov qword [rsp + 0x60], rdx
mov rax, qword [rdx + 8]
mov qword [rsp + 0x28], rax
lea r8, [rdx + 0x10]
mov r9, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 8
jb 0x1400e0f8b
mov r8, qword [r8]
movabs rdx, 0xcbf29ce484222325
xor ecx, ecx
movabs rbx, 0x100000001b3
add r9, r9
je 0x1400e0fc4
nop word [rax + rax]
movzx eax, byte [rcx + r8]
xor rdx, rax
imul rdx, rbx
inc rcx
cmp rcx, r9
jb 0x1400e0fb0
mov rax, qword [r10 + 0x30]
and rax, rdx
shl rax, 4
add rax, r11
mov qword [rsp + 0xc8], rax
mov rcx, qword [rax]
mov qword [rsp + 0xd0], rcx
mov rax, qword [rax + 8]
mov qword [rsp + 0x20], rax
nop
cmp r14, rax
sete sil
mov rdi, r14
mov r12, qword [r14]
mov r14, r12
mov qword [rsp + 0x60], r12
lea rbx, [rdi + 0x10]
mov qword [rsp + 0x48], rbx
lea rcx, [rbx + 0x20]
call qword [sym.imp.sciter_x.dll_ValueClear]
nop
mov rcx, rbx
call fcn.140024660
mov edx, 0x40
mov rcx, rdi
call fcn.140027f70
dec qword [r13 + 8]
test sil, sil
jne 0x1400e105f
cmp r12, r15
mov rax, qword [rsp + 0x20]
jne 0x1400e0ff0
cmp qword [rsp + 0xd0], rbp
jne 0x1400e1176
mov rax, qword [rsp + 0xc8]
mov qword [rax], r12
jmp 0x1400e1176
mov rax, qword [rsp + 0xc8]
cmp qword [rsp + 0xd0], rbp
jne 0x1400e107e
mov rcx, qword [rsp + 0xd8]
mov qword [rax], rcx
jmp 0x1400e1083
mov rcx, qword [rsp + 0x28]
mov qword [rax + 8], rcx
cmp r12, r15
je 0x1400e1176
lea r8, [r14 + 0x10]
mov r9, qword [r8 + 0x10]
cmp qword [r8 + 0x18], 8
jb 0x1400e10a2
mov r8, qword [r8]
movabs rax, 0xcbf29ce484222325
xor edx, edx
add r9, r9
je 0x1400e10d9
movabs r13, 0x100000001b3
nop dword [rax]
movzx ecx, byte [rdx + r8]
xor rax, rcx
imul rax, r13
inc rdx
cmp rdx, r9
jb 0x1400e10c0
mov r13, qword [rsp + 0x30]
mov rcx, qword [rsp + 0xc0]
and rax, qword [rcx + 0x30]
shl rax, 4
mov r12, qword [rsp + 0x38]
add r12, rax
mov rax, qword [r12 + 8]
mov qword [rsp + 0xc8], rax
nop
cmp r14, rax
sete sil
mov rdi, r14
mov rbp, qword [r14]
mov r14, rbp
mov qword [rsp + 0x60], rbp
lea rbx, [rdi + 0x10]
mov qword [rsp + 0xd0], rbx
lea rcx, [rbx + 0x20]
call qword [sym.imp.sciter_x.dll_ValueClear]
nop
mov rcx, rbx
call fcn.140024660
mov edx, 0x40
mov rcx, rdi
call fcn.140027f70
dec qword [r13 + 8]
test sil, sil
jne 0x1400e1159
cmp rbp, r15
je 0x1400e1172
mov rax, qword [rsp + 0xc8]
jmp 0x1400e1100
mov rdx, qword [rsp + 0xd8]
mov qword [r12], rdx
mov qword [r12 + 8], rdx
cmp rbp, r15
jmp 0x1400e108a
mov qword [r12], rbp
mov rax, qword [rsp + 0x40]
mov qword [rax], r14
mov qword [r14 + 8], rax
mov rax, r15
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
Function at 0x140114560
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x70
mov rbx, rcx
mov rcx, qword [0x1401fb800]
mov rax, qword [rcx]
mov edx, reloc.WS2_32.dll_select
mov rax, qword [rax]
call qword [case.0x1400309a4.0]
mov rcx, rax
mov dword [rsp + 0x20], 0
lea r9, vtable.type_info.0
lea r8, vtable.type_info.0
xor edx, edx
call sub.VCRUNTIME140.dll___RTDynamicCast
mov qword [rsp + 0xb8], rax
test rax, rax
je 0x140114785
mov rax, qword [rbx + 0x10]
sub rax, qword [rbx + 8]
sar rax, 5
mov qword [rsp + 0xc0], rax
xor r14d, r14d
test rax, rax
je 0x140114783
xor r12d, r12d
lea r8, str..sprite.svg
nop word [rax + rax]
mov rsi, qword [rbx + 8]
add rsi, r12
mov r15, qword [rsi + 0x18]
movsxd rax, dword [r15 - 0x10]
mov rcx, rax
cmp eax, 0xb
jb 0x14011476e
lea r13, [rax - 0xb]
cmp rax, r13
jb 0x14011479d
mov edx, reloc.WS2_32.dll_inet_addr
mov rax, r8
lea rcx, [rcx*2 - 0x16]
sub rcx, r8
lea r8, [rcx + r15]
nop
movzx ecx, word [r8 + rax]
cmp cx, word [rax]
jne 0x140114767
add rax, 2
sub rdx, 1
jne 0x140114630
movzx edx, word [rsi + 8]
lea r8, [0x1401aa5c8]
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rdi, rax
test rax, rax
je 0x140114767
mov rdx, rax
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x140114767
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbp, rax
test rax, rax
je 0x140114767
mov rdx, rdi
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_SizeofResource]
test eax, eax
je 0x140114767
mov r9d, eax
lea rcx, [r13 + 1]
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], rcx
lea rax, vtable.layout::AssetManager::svg_group.0
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rbx
movups xmm0, xmmword [rsp + 0x38]
movups xmmword [rsp + 0x58], xmm0
mov rdi, qword [rsp + 0xb8]
mov rax, qword [rdi]
mov r8, rbp
lea rdx, [rsp + 0x48]
mov rcx, rdi
mov rax, qword [rax + 0x10]
call qword [case.0x1400309a4.0]
test al, al
jne 0x140114767
mov rax, qword [rbx + 0x10]
mov rcx, qword [rax - 0x10]
test rcx, rcx
je 0x140114714
mov rax, qword [rcx]
mov edx, 1
mov rax, qword [rax]
call qword [case.0x1400309a4.0]
mov rax, qword [rbx + 0x10]
mov qword [rax - 0x10], 0
mov rax, qword [rbx + 0x10]
sub rax, 0x20
mov qword [rsp + 0xc8], rax
add rax, 0x18
mov qword [rsp + 0x30], rax
mov rdx, qword [rax]
sub rdx, 0x18
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140114762
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400309a4.0]
add qword [rbx + 0x10], 0xffffffffffffffe0
lea r8, str..sprite.svg
inc r14
add r12, 0x20
cmp r14, qword [rsp + 0xc0]
jb 0x1401145f0
mov al, 1
mov rbx, qword [rsp + 0xb0]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14005d0d0
int3
Function at 0x1401147b0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rdi
sub rsp, 0x20
mov rbx, r8
mov rdi, rdx
mov rbp, rcx
call fcn.140115b90
cmp rbx, 0xffffffffffffffff
jne 0x14011488b
mov r8, rbx
nop word [rax + rax]
inc r8
cmp word [rdi + r8*2], 0
jne 0x1401147e0
xor r11d, r11d
lea r10, [r8 + r8]
movabs rdx, 0xcbf29ce484222325
mov ecx, r11d
test r10, r10
je 0x140114823
movabs r9, 0x100000001b3
nop
movzx eax, byte [rcx + rdi]
inc rcx
xor rdx, rax
imul rdx, r9
cmp rcx, r10
jb 0x140114810
mov rcx, qword [rbp + 0x50]
mov rax, qword [rbp + 0x38]
and rcx, rdx
add rcx, rcx
mov r10, qword [rax + rcx*8 + 8]
cmp r10, qword [rbp + 0x28]
je 0x140114917
mov rbx, qword [rax + rcx*8]
mov rcx, qword [r10 + 0x10]
cmp r8, qword [r10 + 0x18]
jne 0x14011487c
mov rdx, r8
test r8, r8
je 0x140114874
mov r9, rdi
sub r9, rcx
nop dword [rax]
movzx eax, word [rcx + r9]
cmp ax, word [rcx]
jne 0x14011487c
add rcx, 2
sub rdx, 1
jne 0x140114860
mov r11, r10
jmp 0x140114917
cmp r10, rbx
je 0x140114917
mov r10, qword [r10 + 8]
jmp 0x140114844
xor r11d, r11d
lea r8, [rbx + rbx]
movabs rdx, 0xcbf29ce484222325
mov ecx, r11d
test r8, r8
je 0x1401148c3
movabs r9, 0x100000001b3
nop
movzx eax, byte [rcx + rdi]
inc rcx
xor rdx, rax
imul rdx, r9
cmp rcx, r8
jb 0x1401148b0
mov rcx, qword [rbp + 0x50]
mov rax, qword [rbp + 0x38]
and rcx, rdx
add rcx, rcx
mov r9, qword [rax + rcx*8 + 8]
cmp r9, qword [rbp + 0x28]
je 0x140114917
mov r10, qword [rax + rcx*8]
mov rax, qword [r9 + 0x10]
cmp rbx, qword [r9 + 0x18]
jne 0x140114937
mov rdx, rbx
test rbx, rbx
je 0x140114914
mov r8, rdi
sub r8, rax
nop dword [rax + rax]
movzx ecx, word [rax + r8]
cmp cx, word [rax]
jne 0x140114937
add rax, 2
sub rdx, 1
jne 0x140114900
mov r11, r9
test r11, r11
cmove r11, qword [rbp + 0x28]
cmp r11, qword [rbp + 0x28]
jne 0x140114942
xor eax, eax
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
cmp r9, r10
je 0x140114917
mov r9, qword [r9 + 8]
jmp 0x1401148e0
mov rax, qword [r11 + 0x20]
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret

Function at 0x140114960
Capabilities:
Extract resource via kernel32 functions

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov rdi, r8
mov rbx, rdx
test r8, r8
je 0x1401149d5
movzx edx, word [r8 + 8]
lea r8, [0x1401aa5c8]
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rsi, rax
test rax, rax
je 0x1401149d5
mov rcx, qword [rdi]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x1401149d5
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov rbp, rax
test rax, rax
je 0x1401149d5
mov rcx, qword [rdi]
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
test eax, eax
je 0x1401149d5
mov qword [rbx], rbp
mov eax, eax
jmp 0x1401149da
xor eax, eax
mov qword [rbx], rax
mov rbp, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x40]
mov qword [rbx + 8], rax
mov rax, rbx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
ret
Function at 0x140114a60
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push rbx
push rdi
sub rsp, 0x78
mov rbx, rdx
mov rdi, rcx
call fcn.140114c40
test al, al
je 0x140114a7f
mov al, 1
add rsp, 0x78
pop rdi
pop rbx
ret
mov rcx, qword [rbx + 0x10]
lea rdx, str.asset:
mov qword [rsp + 0x90], rbp
mov r8d, 6
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x68], r14
mov qword [rsp + 0x60], r15
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcsncmp]
test eax, eax
jne 0x140114c19
mov rdx, qword [rbx + 0x10]
lea rax, [rdi + 0xc2]
xor esi, esi
mov qword [rbx + 0x18], rax
add rdx, 0xc
mov dword [rbx + 0x20], esi
mov rbp, 0xffffffffffffffff
mov qword [rsp + 0x40], rdx
mov r8, rbp
nop dword [rax]
inc r8
cmp word [rdx + r8*2], si
jne 0x140114ae0
mov qword [rsp + 0x48], r8
test r8, r8
je 0x140114b0e
cmp word [rdx], 0x2f
jne 0x140114b0e
add rdx, 2
sub r8, 1
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x48], r8
jne 0x140114af4
cmp dword [rbx + 0x24], 1
mov r14d, ebp
mov dword [rsp + 0xa0], ebp
mov dword [rsp + 0xa8], ebp
mov dword [rsp + 0x30], esi
jne 0x140114b77
movaps xmm0, xmmword [rsp + 0x40]
lea rax, [rsp + 0x30]
lea r9, [rsp + 0xa8]
movdqa xmmword [rsp + 0x40], xmm0
lea r8, [rsp + 0xa0]
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.14005b370
mov ebp, dword [rsp + 0xa0]
mov r14d, dword [rsp + 0xa8]
mov esi, dword [rsp + 0x30]
mov r8, qword [rax + 8]
mov rdx, qword [rax]
mov rax, qword [rdi]
mov rcx, rdi
mov rax, qword [rax + 0x10]
call qword [case.0x1400309a4.0]
mov rdi, rax
test rax, rax
je 0x140114c19
mov r8, qword [rax + 0x10]
test r8, r8
je 0x140114bb2
mov dword [rsp + 0x28], esi
mov r9d, ebp
mov rdx, rbx
mov dword [rsp + 0x20], r14d
call fcn.1401156b0
jmp 0x140114c1b
movzx edx, word [rax + 8]
lea r8, [0x1401aa5c8]
mov rcx, qword [rax]
call qword [sym.imp.KERNEL32.dll_FindResourceW]
mov rsi, rax
test rax, rax
je 0x140114c19
mov rcx, qword [rdi]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x140114c19
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
mov r15, rax
test rax, rax
je 0x140114c19
mov rcx, qword [rdi]
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_SizeofResource]
test eax, eax
je 0x140114c19
mov ecx, eax
mov r9d, r14d
mov r8d, ebp
mov dword [rbx + 0x20], ecx
mov rdx, rbx
mov qword [rbx + 0x18], r15
call fcn.1401158e0
jmp 0x140114c1b
xor al, al
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x90]
mov r15, qword [rsp + 0x60]
add rsp, 0x78
pop rdi
pop rbx
ret