joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14003e210
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov r12, rcx
mov r9, qword [rdx]
mov rdi, qword [rdx + 8]
mov qword [rsp + 0x28], 0
movaps xmm0, xmmword [0x14013f230]
movups xmmword [rsp + 0x38], xmm0
mov byte [rsp + 0x28], 0
cmp rdi, 0xf
jbe 0x14003e259
lea rcx, [rsp + 0x28]
mov rdx, rdi
call fcn.140003190
jmp 0x14003e273
mov qword [rsp + 0x38], rdi
lea rcx, [rsp + 0x28]
mov rdx, r9
mov r8, rdi
call sub.VCRUNTIME140.dll_memmove
mov byte [rsp + rdi + 0x28], 0
mov rax, qword [rsp + 0x28]
mov r14, qword [rsp + 0x38]
mov r15, qword [rsp + 0x40]
cmp r15, 0x10
lea rbx, [rsp + 0x28]
mov qword [rsp + 0x20], rax
cmovae rbx, rax
test r14, r14
je 0x14003e2c2
lea rax, [r14 - 1]
mov r8d, r14d
and r8d, 3
movabs rcx, 0x100000001b3
cmp rax, 3
jae 0x14003e2d1
movabs rax, 0xcbf29ce484222325
xor edx, edx
jmp 0x14003e328
movabs rsi, 0xcbf29ce484222325
jmp 0x14003e357
mov rdi, r14
and rdi, 0xfffffffffffffffc
movabs rax, 0xcbf29ce484222325
xor edx, edx
nop word cs:[rax + rax]
nop
movzx ebp, byte [rbx + rdx]
xor rbp, rax
imul rbp, rcx
movzx eax, byte [rbx + rdx + 1]
xor rax, rbp
imul rax, rcx
movzx ebp, byte [rbx + rdx + 2]
xor rbp, rax
imul rbp, rcx
movzx eax, byte [rbx + rdx + 3]
xor rax, rbp
imul rax, rcx
add rdx, 4
cmp rdi, rdx
jne 0x14003e2f0
mov rsi, rax
test r8, r8
je 0x14003e357
add rdx, rbx
xor ebp, ebp
nop word cs:[rax + rax]
nop
movzx esi, byte [rdx + rbp]
xor rsi, rax
imul rsi, rcx
add rbp, 1
mov rax, rsi
cmp r8, rbp
jne 0x14003e340
and rsi, qword [r12 + 0x30]
mov r13, qword [r12 + 8]
mov rax, qword [r12 + 0x18]
mov rcx, rsi
shl rcx, 4
mov rbp, qword [rax + rcx + 8]
cmp rbp, r13
je 0x14003e3c4
add rsi, rsi
mov rdi, qword [rax + rsi*8]
cmp r14, qword [rbp + 0x20]
jne 0x14003e3b3
nop word cs:[rax + rax]
nop
cmp qword [rbp + 0x28], 0x10
jb 0x14003e3a0
mov rdx, qword [rbp + 0x10]
jmp 0x14003e3a4
lea rdx, [rbp + 0x10]
mov rcx, rbx
mov r8, r14
call sub.VCRUNTIME140.dll_memcmp
test eax, eax
je 0x14003e3c6
cmp rbp, rdi
je 0x14003e3c4
mov rbp, qword [rbp + 8]
cmp r14, qword [rbp + 0x20]
je 0x14003e390
jmp 0x14003e3b3
xor ebp, ebp
cmp r15, 0x10
jb 0x14003e405
lea rdx, [r15 + 1]
cmp rdx, 0x1000
jb 0x14003e3fb
mov rcx, qword [rsp + 0x20]
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x14003e423
add r15, 0x28
mov rdx, r15
mov rcx, rax
jmp 0x14003e400
mov rcx, qword [rsp + 0x20]
call fcn.1400651e0
test rbp, rbp
cmove rbp, r13
cmp rbp, r13
setne al
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
Function at 0x14003fde0
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov r14, rdx
mov rdi, rcx
mov rbx, qword [r8]
mov rsi, qword [r8 + 8]
lea rcx, [0x140141907]
mov rdx, rbx
mov r8, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
mov bpl, 1
test eax, eax
je 0x14003fe41
lea rcx, str.true
mov rdx, rbx
mov r8, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
test eax, eax
je 0x14003fe41
lea rcx, [0x140140140]
mov rdx, rbx
mov r8, rsi
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll__strnicmp]
test eax, eax
sete bpl
mov rcx, rdi
mov rdx, r14
mov r8d, ebp
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
jmp fcn.14003fa00
Function at 0x14004ac50
Capabilities:
Create directory

Disassembly:
push rsi
push rdi
sub rsp, 0x48
lea rax, [0x14013faa2]
test rcx, rcx
cmovne rax, rcx
mov qword [rsp + 0x28], rax
je 0x14004ac72
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
jmp 0x14004ac74
xor eax, eax
mov qword [rsp + 0x30], rax
lea rsi, [rsp + 0x38]
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.140018250
mov rax, qword [rsp + 0x38]
test rax, rax
lea rcx, [0x1401413f6]
cmovne rcx, rax
call qword [sym.imp.api_ms_win_crt_filesystem_l1_1_0.dll__wmkdir]
mov edi, eax
mov rcx, rsi
call fcn.140018490
mov eax, edi
add rsp, 0x48
pop rdi
pop rsi
ret

Function at 0x14004ae30
Capabilities:
Delete directory

Disassembly:
push rsi
push rdi
sub rsp, 0x48
lea rax, [0x14013faa2]
test rcx, rcx
cmovne rax, rcx
mov qword [rsp + 0x28], rax
je 0x14004ae52
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
jmp 0x14004ae54
xor eax, eax
mov qword [rsp + 0x30], rax
lea rsi, [rsp + 0x38]
lea rdx, [rsp + 0x28]
mov rcx, rsi
call fcn.140018250
mov rax, qword [rsp + 0x38]
test rax, rax
lea rcx, [0x1401413f6]
cmovne rcx, rax
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor edi, edi
test eax, eax
sete dil
mov rcx, rsi
call fcn.140018490
mov eax, edi
add rsp, 0x48
pop rdi
pop rsi
ret

Function at 0x14004b900
Capabilities:
Allocate thread local storage
Get thread local storage value
Set thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
lea r14, [0x14018b5d8]
mov rcx, r14
call fcn.1400319f0
test al, al
je 0x14004b969
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x14018b5e0], eax
lea rsi, [0x14018b5d8]
lea rcx, [0x14018b5e8]
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov dword [0x14018b610], 0
lea rcx, [0x14018b618]
mov r8d, 0x200
xor edx, edx
call sub.VCRUNTIME140.dll_memset
mov rcx, rsi
call fcn.140031a40
mov ecx, dword [0x14018b5e0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
je 0x14004ba00
mov rdi, rax
xor ebx, ebx
lea r15, [0x14018b5e8]
mov r12, qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r13, qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x14004b9aa
add rbx, 1
cmp rbx, 0x40
je 0x14004b9d8
mov rsi, qword [rdi + rbx*8]
test rsi, rsi
je 0x14004b9a0
mov qword [rdi + rbx*8], 0
mov rcx, r15
call r12
mov rbp, qword [r14 + rbx*8 + 0x40]
mov rcx, r15
call r13
test rbp, rbp
je 0x14004b9a0
mov rcx, rsi
call rbp
jmp 0x14004b9a0
mov ecx, dword [0x14018b5e0]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rcx, rdi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
nop
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x140055960
Capabilities:
Hash data using fnv

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
movabs rax, 0x800000000000001
cmp rdx, rax
jae 0x140055b09
mov r15, rcx
add rdx, 0xffffffffffffffff
or rdx, 1
bsr rcx, rdx
xor ecx, 0x3f
neg cl
mov esi, 1
shl rsi, cl
lea r14, [r15 + 0x18]
mov r12, qword [r15 + 8]
lea rdx, [rsi + rsi]
mov rcx, r14
mov r8, r12
call fcn.140055b20
lea rdi, [rsi - 1]
mov qword [r15 + 0x30], rdi
mov qword [r15 + 0x38], rsi
mov rax, qword [r15 + 8]
mov rdx, qword [rax]
cmp rdx, r12
je 0x140055afb
movabs r8, 0xcbf29ce484222325
movabs r9, 0x100000001b3
jmp 0x140055a08
mov qword [rdi + r10*8], rdx
mov qword [rdi + rcx*8], rdx
cmp r11, r12
je 0x140055afb
mov rdi, qword [r15 + 0x30]
mov rdx, r11
mov r11, qword [rdx]
movzx eax, byte [rdx + 0x10]
xor rax, r8
imul rax, r9
movzx ecx, byte [rdx + 0x11]
xor rcx, rax
imul rcx, r9
movzx eax, byte [rdx + 0x12]
xor rax, rcx
imul rax, r9
movzx esi, byte [rdx + 0x13]
xor rsi, rax
imul rsi, r9
and rsi, rdi
mov rdi, qword [r14]
lea r10, [rsi + rsi]
lea rcx, [rsi + rsi]
add rcx, 1
shl rsi, 4
mov rbx, qword [rdi + rsi]
cmp rbx, r12
je 0x1400559f0
mov rsi, qword [rdi + rcx*8]
mov eax, dword [rdx + 0x10]
cmp eax, dword [rsi + 0x10]
jne 0x140055a90
mov rax, qword [rsi]
cmp rax, rdx
je 0x1400559f4
mov r10, qword [rdx + 8]
mov qword [r10], r11
mov rsi, qword [r11 + 8]
mov qword [rsi], rax
mov rbx, qword [rax + 8]
mov qword [rbx], rdx
mov qword [rax + 8], rsi
mov qword [r11 + 8], r10
mov qword [rdx + 8], rbx
jmp 0x1400559f4
cmp rbx, rsi
je 0x140055acd
mov rsi, qword [rsi + 8]
cmp eax, dword [rsi + 0x10]
jne 0x140055a90
mov rax, qword [rsi]
mov rcx, qword [rdx + 8]
mov qword [rcx], r11
mov rbx, qword [r11 + 8]
mov qword [rbx], rax
mov rdi, qword [rax + 8]
mov qword [rdi], rdx
mov qword [rax + 8], rbx
mov qword [r11 + 8], rcx
mov qword [rdx + 8], rdi
cmp r11, r12
jne 0x140055a01
jmp 0x140055afb
mov rax, qword [rdx + 8]
mov qword [rax], r11
mov rcx, qword [r11 + 8]
mov qword [rcx], rbx
mov rsi, qword [rbx + 8]
mov qword [rsi], rdx
mov qword [rbx + 8], rcx
mov qword [r11 + 8], rax
mov qword [rdx + 8], rsi
mov qword [rdi + r10*8], rdx
cmp r11, r12
jne 0x140055a01
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea rcx, str.invalid_hash_bucket_count
call sub.MSVCP140.dll_void___cdecl_std::_Xlength_error_char_const____ptr64_
int3
Function at 0x140056530
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
cmp qword [rdx + 8], 0
je 0x1400565e8
mov rdi, rcx
cmp dword [rcx + 8], 0
jne 0x1400565e8
mov rsi, rdx
mov rbx, qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
mov r14, qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fwrite]
mov r15, qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ferror]
nop dword [rax]
call rbx
mov ebp, dword [rax]
call rbx
mov dword [rax], 0
mov r9, qword [rdi]
mov rcx, qword [rsi]
mov r8, qword [rsi + 8]
mov edx, 1
call r14
test rax, rax
je 0x1400565a0
add qword [rdi + 0x10], rax
add qword [rsi], rax
sub qword [rsi + 8], rax
jmp 0x1400565d0
call rbx
cmp dword [rax], 4
je 0x1400565d0
call rbx
cmp dword [rax], 0
je 0x1400565b7
call rbx
mov eax, dword [rax]
mov dword [rdi + 8], eax
jmp 0x1400565d0
mov rcx, qword [rdi]
call r15
test eax, eax
je 0x1400565d0
mov dword [rdi + 8], 9
nop dword [rax + rax]
call rbx
cmp dword [rax], 0
jne 0x1400565db
call rbx
mov dword [rax], ebp
cmp qword [rsi + 8], 0
je 0x1400565e8
cmp dword [rdi + 8], 0
je 0x140056570
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret

Function at 0x140056910
Capabilities:
Read file on windows

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rax, rdx
mov rdi, rcx
lea rdx, [0x140149a67]
mov rcx, rax
call fcn.14004a6e0
test rax, rax
je 0x1400569a6
mov rsi, rax
xor ebx, ebx
mov rcx, rax
xor edx, edx
mov r8d, 2
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
js 0x1400569b2
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ftell]
test eax, eax
js 0x1400569bc
je 0x1400569c8
mov ebp, eax
xor ebx, ebx
mov rcx, rsi
xor edx, edx
xor r8d, r8d
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fseek]
test eax, eax
js 0x1400569b2
mov ebx, ebp
mov rcx, rbx
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
test rax, rax
je 0x1400569bc
mov rbp, rax
mov edx, 1
mov rcx, rax
mov r8, rbx
mov r9, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fread]
cmp rax, rbx
jne 0x1400569ed
mov qword [rdi], rbp
mov qword [rdi + 8], rbx
jmp 0x1400569ce
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
xor ebx, ebx
sub ebx, dword [rax]
jmp 0x1400569e2
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
sub ebx, dword [rax]
jmp 0x1400569d9
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__errno]
xor ebx, ebx
sub ebx, dword [rax]
jmp 0x1400569d9
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov eax, 0x87002013
mov qword [rdi + 0x10], rax
xor ebx, ebx
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_fclose]
mov eax, ebx
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
ret
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_feof]
mov ebx, 0xfffffffb
test eax, eax
jne 0x1400569d9
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_stdio_l1_1_0.dll_ferror]
mov ebx, eax
neg ebx
jmp 0x1400569d9
Function at 0x140071670
Capabilities:
Parse credit card information

Disassembly:
mov qword [rsp + 0x10], rbx
push rdi
sub rsp, 0x30
mov rax, qword [rcx + 0x38]
xor edi, edi
mov rbx, rcx
mov rdx, qword [rax + 0x20]
cmp byte [rdx], 0x25
jne 0x1400717d5
mov qword [rsp + 0x40], rsi
call fcn.1400a9250
mov rcx, rbx
call fcn.14006bbb0
mov rsi, rax
test rax, rax
jne 0x1400716cb
lea r8, str.xmlParsePEReference:_no_name_n
mov rcx, rbx
lea edx, [rdi + 0x44]
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
jmp fcn.140076d90
mov rax, qword [rbx + 0x38]
mov rcx, qword [rax + 0x20]
cmp byte [rcx], 0x3b
mov rcx, rbx
je 0x1400716f6
xor r8d, r8d
lea edx, [r8 + 0x17]
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
jmp fcn.1400752d0
call fcn.1400a9250
mov rax, qword [rbx]
inc dword [rbx + 0x2a4]
test rax, rax
je 0x140071722
mov r8, qword [rax + 0xc0]
test r8, r8
je 0x140071722
mov rcx, qword [rbx + 8]
mov rdx, rsi
call r8
mov rdi, rax
cmp dword [rbx + 0x108], 0xffffffff
je 0x1400717d0
test rdi, rdi
jne 0x1400717e0
cmp dword [rbx + 0x30], 1
je 0x14007177a
cmp dword [rbx + 0x84], edi
jne 0x14007174e
cmp dword [rbx + 0x88], edi
je 0x14007177a
mov r9, rsi
mov qword [rsp + 0x20], 0
lea r8, str.PEReference:____s__not_found_n
mov edx, 0x1b
mov rcx, rbx
call fcn.140076e60
mov dword [rbx + 0x90], 0
jmp 0x140071791
mov r9, rsi
lea r8, str.PEReference:____s__not_found_n
mov edx, 0x1a
mov rcx, rbx
call fcn.140077260
test dword [rbx + 0x224], 0x80000
jne 0x1400717c6
mov eax, dword [rbx + 0x24c]
sub eax, 0x1a
cmp eax, 1
ja 0x1400717c6
cmp dword [rbx + 0x2a4], 0x2710
jbe 0x1400717c6
xor r8d, r8d
mov rcx, rbx
lea edx, [r8 + 0x59]
call fcn.1400752d0
mov dword [rbx + 0x88], 1
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
mov eax, dword [rdi + 0x5c]
sub eax, 4
cmp eax, 1
jbe 0x14007180d
mov r9, rsi
mov qword [rsp + 0x20], 0
lea r8, str.Internal:____s__is_not_a_parameter_entity_n
mov edx, 0x1b
mov rcx, rbx
call fcn.140076e60
jmp 0x1400717c6
mov rax, qword [rbx + 0x38]
lea rcx, [0x1400785e0]
mov rdx, rdi
cmp qword [rax + 0x40], rcx
mov rcx, rbx
je 0x14007183a
call fcn.1400785f0
mov rdx, rax
mov rcx, rbx
call fcn.14006b640
test eax, eax
js 0x1400717d0
jmp 0x1400717c6
call fcn.1400a85b0
mov rdx, rax
mov rcx, rbx
call fcn.14006b640
test eax, eax
js 0x1400717d0
cmp dword [rdi + 0x5c], 5
jne 0x1400717c6
mov rax, qword [rbx + 0x38]
mov rcx, qword [rax + 0x20]
cmp byte [rcx], 0x3c
jne 0x1400717c6
cmp byte [rcx + 1], 0x3f
jne 0x1400717c6
cmp byte [rcx + 2], 0x78
jne 0x1400717c6
cmp byte [rcx + 3], 0x6d
jne 0x1400717c6
cmp byte [rcx + 4], 0x6c
jne 0x1400717c6
movzx eax, byte [rcx + 5]
cmp al, 0x20
ja 0x1400717c6
movabs rcx, 0x100002600
bt rcx, rax
jae 0x1400717c6
mov rcx, rbx
call fcn.140073990
cmp dword [rbx + 0x80], 0x20
jne 0x1400717c6
mov rsi, qword [rsp + 0x40]
mov dword [rbx + 0x108], 0xffffffff
mov rbx, qword [rsp + 0x48]
add rsp, 0x30
pop rdi
ret
Function at 0x1400789b0
Capabilities:
Parse credit card information

Disassembly:
push rbx
sub rsp, 0x20
test dword [rcx + 0x224], 0x20000
movsxd rbx, edx
jne 0x140078aac
cmp ebx, 0x3e
ja 0x1400789e2
movabs rcx, 0x4000800100000000
bt rcx, rbx
jb 0x140078b99
lea eax, [rbx - 0x2000]
cmp eax, 0x3e
ja 0x140078a01
movabs rcx, 0x7fffffffffffcfff
bt rcx, rax
jb 0x140078a90
lea eax, [rbx - 0xfdd0]
cmp eax, 0x1f
jbe 0x140078a90
lea eax, [rbx - 0xd800]
cmp eax, 0x20ff
jbe 0x140078a90
lea eax, [rbx - 0x2ff0]
cmp eax, 0x10
jbe 0x140078a90
lea eax, [rbx - 0x2190]
cmp eax, 0xa6f
jbe 0x140078a90
lea eax, [rbx - 0x2041]
cmp eax, 0x2e
jbe 0x140078a90
cmp ebx, 0x2c
jle 0x140078a90
cmp ebx, 0x37e
je 0x140078a90
lea eax, [rbx - 0xb8]
cmp eax, 0x3f
ja 0x140078a68
movabs rcx, 0x80000000800000ff
bt rcx, rax
jb 0x140078a90
lea eax, [rbx - 0x7b]
cmp eax, 0x3b
jbe 0x140078a90
lea eax, [rbx - 0x2f]
cmp eax, 0x31
ja 0x140078a88
movabs rcx, 0x2f0000003f001
bt rcx, rax
jb 0x140078a90
cmp ebx, 0xfffe
jl 0x140078aa1
lea eax, [rbx - 0x10000]
cmp eax, 0xdffff
ja 0x140078b99
mov eax, 1
add rsp, 0x20
pop rbx
ret
cmp ebx, 0x100
jge 0x140078ad9
cmp ebx, 0xd7
je 0x140078aeb
lea eax, [rbx - 0x7b]
cmp eax, 0x44
jbe 0x140078aeb
lea eax, [rbx - 0x5b]
cmp eax, 5
jbe 0x140078aeb
cmp ebx, 0x40
jle 0x140078aeb
cmp ebx, 0xf7
jmp 0x140078ae9
lea rdx, [0x14014fe80]
mov ecx, ebx
call fcn.1400ad3b0
test eax, eax
jne 0x140078aa1
lea eax, [rbx - 0x4e00]
cmp eax, 0x51a5
jbe 0x140078aa1
cmp ebx, 0x3007
je 0x140078aa1
lea eax, [rbx - 0x3021]
cmp eax, 8
jbe 0x140078aa1
cmp ebx, 0x100
jge 0x140078b26
lea eax, [rbx - 0x30]
cmp eax, 9
ja 0x140078b3c
mov eax, 1
add rsp, 0x20
pop rbx
ret
lea rdx, [0x14014fec8]
mov ecx, ebx
call fcn.1400ad3b0
test eax, eax
jne 0x140078aa1
lea eax, [rbx - 0x2d]
cmp eax, 0x32
ja 0x140078b58
movabs rcx, 0x4000000002003
bt rcx, rax
jb 0x140078aa1
cmp ebx, 0x100
jl 0x140078b86
lea rdx, [0x14014feb0]
mov ecx, ebx
call fcn.1400ad3b0
test eax, eax
jne 0x140078aa1
lea rdx, [0x14014fee0]
mov ecx, ebx
call fcn.1400ad3b0
jmp 0x140078b91
xor eax, eax
cmp ebx, 0xb7
sete al
test eax, eax
jne 0x140078aa1
xor eax, eax
add rsp, 0x20
pop rbx
ret
Function at 0x14008f4c0
Capabilities:
Create thread
Get thread local storage value
Set thread local storage value

Disassembly:
sub rsp, 0x48
call fcn.14008f630
mov ecx, dword [0x140188e98]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
jne 0x14008f61c
mov qword [rsp + 0x50], rbx
mov ecx, 0x3c8
mov qword [rsp + 0x60], rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test rax, rax
jne 0x14008f525
call fcn.14008e090
mov rbx, rax
call fcn.14008e0f0
lea rdx, str.xmlGetGlobalState:_out_of_memory_n
mov rcx, qword [rax]
call qword [rbx]
mov rbx, qword [rsp + 0x50]
xor eax, eax
mov rsi, qword [rsp + 0x60]
add rsp, 0x48
ret
xor edx, edx
mov qword [rsp + 0x58], rbp
mov r8d, 0x3c8
mov rcx, rsi
call sub.VCRUNTIME140.dll_memset
mov rcx, rsi
call fcn.14008da80
mov ecx, 0x10
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rbp, rax
test rax, rax
jne 0x14008f599
call fcn.14008e090
mov rbx, rax
call fcn.14008e0f0
lea rdx, str.xmlGetGlobalState:_out_of_memory_n
mov rcx, qword [rax]
call qword [rbx]
lea rcx, [rsi + 0x358]
call fcn.140098310
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rbp, qword [rsp + 0x58]
xor eax, eax
mov rbx, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x60]
add rsp, 0x48
ret
mov qword [rsp + 0x40], rdi
mov qword [rax + 8], rsi
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [rsp + 0x30], 2
mov r9, rbp
mov rcx, rax
mov dword [rsp + 0x28], 1
mov r8, rdi
mov dword [rsp + 0x20], 0
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_DuplicateHandle]
mov ecx, dword [0x140188e98]
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov r8, rbp
lea rcx, [0x14008f730]
xor edx, edx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthread]
mov rdi, qword [rsp + 0x40]
mov rax, rsi
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x50]
add rsp, 0x48
ret

Function at 0x14008f630
Capabilities:
Allocate thread local storage

Disassembly:
sub rsp, 0x28
cmp dword [0x14018bf28], 0
jne 0x14008f697
mov eax, 1
lock xadd dword [0x14018bf2c], eax
inc eax
cmp eax, 1
jne 0x14008f67d
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x140188e98], eax
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x14018bf20], eax
call fcn.140094cb0
mov dword [0x14018bf28], 1
add rsp, 0x28
ret
cmp dword [0x14018bf28], 0
jne 0x14008f697
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_Sleep]
cmp dword [0x14018bf28], 0
je 0x14008f686
add rsp, 0x28
ret
Function at 0x140092820
Capabilities:
Query environment variable

Disassembly:
sub rsp, 0x28
cmp dword [0x14018c318], 0
je 0x140092837
mov eax, 0xffffffff
add rsp, 0x28
ret
mov dword [0x14018c318], 1
call fcn.14008f2a0
lea rcx, str.XML_MEM_BREAKPOINT
mov qword [0x14018c328], rax
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
je 0x140092875
lea r8, [0x14018c334]
mov rcx, rax
lea rdx, [0x14014d2dc]
call fcn.140047f70
lea rcx, str.XML_MEM_TRACE
call qword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll_getenv]
test rax, rax
je 0x14009289d
lea r8, [0x14018c338]
mov rcx, rax
lea rdx, [0x14014d2f0]
call fcn.140047f70
xor eax, eax
add rsp, 0x28
ret

Function at 0x140095cb0
Capabilities:
Encode data using xor

Disassembly:
test edx, edx
jle 0x140095cf3
test rcx, rcx
je 0x140095cf3
movsxd r9, edx
test edx, edx
jle 0x140095ce1
xor edx, edx
movzx eax, byte [rdx + rcx]
inc rdx
add eax, r8d
imul r8d, eax, 0x401
mov eax, r8d
shr eax, 6
xor r8d, eax
cmp rdx, r9
jl 0x140095cc2
lea eax, [r8 + r8*8]
mov ecx, eax
shr ecx, 0xb
xor ecx, eax
imul eax, ecx, 0x8001
ret
xor eax, eax
ret

Function at 0x140095d00
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
mov r10d, dword [rsp + 0x28]
mov rbx, r8
movsxd r8, edx
xor edx, edx
test r8, r8
jle 0x140095d40
mov r11d, edx
nop word [rax + rax]
movzx eax, byte [r11 + rcx]
inc r11
add eax, r10d
imul r10d, eax, 0x401
mov eax, r10d
shr eax, 6
xor r10d, eax
cmp r11, r8
jl 0x140095d20
lea eax, [r10 + 0x3a]
movsxd r8, r9d
imul eax, eax, 0x401
mov ecx, eax
shr ecx, 6
xor eax, ecx
test r9d, r9d
jle 0x140095d7b
nop dword [rax]
movzx ecx, byte [rdx + rbx]
inc rdx
add ecx, eax
imul eax, ecx, 0x401
mov ecx, eax
shr ecx, 6
xor eax, ecx
cmp rdx, r8
jl 0x140095d60
mov rbx, qword [rsp + 8]
lea ecx, [rax + rax*8]
mov eax, ecx
shr eax, 0xb
xor eax, ecx
imul eax, eax, 0x8001
ret
Function at 0x140097570
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rbx
xor eax, eax
mov r10, rdx
mov rbx, rcx
test rdx, rdx
je 0x1400975b0
movzx r11d, byte [rdx]
imul eax, r11d, 0x1e
test r11b, r11b
je 0x1400975b0
nop
mov edx, eax
mov ecx, eax
shl edx, 5
inc r10
shr ecx, 3
add edx, ecx
movsx ecx, r11b
add edx, ecx
movzx r11d, byte [r10]
xor eax, edx
test r11b, r11b
jne 0x140097590
mov edx, eax
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
xor eax, edx
test r8, r8
je 0x1400975f0
movzx r10d, byte [r8]
test r10b, r10b
je 0x1400975f0
nop dword [rax]
mov edx, eax
mov ecx, eax
shl edx, 5
inc r8
shr ecx, 3
add edx, ecx
movsx ecx, r10b
add edx, ecx
movzx r10d, byte [r8]
xor eax, edx
test r10b, r10b
jne 0x1400975d0
mov edx, eax
mov ecx, eax
shl edx, 5
shr ecx, 3
add edx, ecx
xor eax, edx
test r9, r9
je 0x140097631
movzx r8d, byte [r9]
test r8b, r8b
je 0x140097631
nop dword [rax]
mov edx, eax
lea r9, [r9 + 1]
shl edx, 5
mov ecx, eax
shr ecx, 3
add edx, ecx
movsx ecx, r8b
movzx r8d, byte [r9]
add edx, ecx
xor eax, edx
test r8b, r8b
jne 0x140097610
xor edx, edx
div dword [rbx + 8]
mov rbx, qword [rsp + 8]
mov eax, edx
ret