joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400447f0
Capabilities:
Get common file path

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x250
mov rax, qword [0x14020b038]
xor rax, rsp
mov qword [rsp + 0x248], rax
mov sil, 1
cmp qword [0x14021db00], 0
jne 0x1400448ba
mov rcx, qword [0x14021dad8]
test rcx, rcx
je 0x1400448d7
test byte [0x14020cf68], 1
je 0x1400448ba
cmp byte [rcx + 0x17], 0
jns 0x140044843
mov rcx, qword [rcx]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
mov edx, 4
mov r8d, 3
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [0x14021db00], rax
inc rax
cmp rax, 1
ja 0x1400448ba
lea rdi, [rsp + 0x40]
mov r8d, 0x208
mov rcx, rdi
mov dl, 0xaa
call fcn.140114f20
mov word [rdi], 0
mov ecx, 0x104
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
add eax, 0xfffffefb
cmp eax, 0xfffffefc
jae 0x1400449a6
xor esi, esi
mov rcx, qword [rsp + 0x248]
xor rcx, rsp
call fcn.140113000
mov eax, esi
add rsp, 0x250
pop rbx
pop rdi
pop rsi
ret
mov ecx, 0x18
call fcn.1401119e0
mov rsi, rax
lea rdi, [rsp + 0x40]
mov r8d, 0x208
mov rcx, rdi
mov dl, 0xaa
call fcn.140114f20
xor ecx, ecx
mov rdx, rdi
mov r8d, 0x104
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
movaps xmm0, xmmword [0x1401dfd10]
movups xmmword [rsi], xmm0
movabs rax, 0xaaaaaaaaaaaaaaaa
mov qword [rsi + 0x10], rax
mov rcx, rsi
mov rdx, rdi
call fcn.140059686
movzx eax, byte [rsi + 0x17]
test al, al
jns 0x14004493e
mov rax, qword [rsi + 8]
mov rcx, qword [rsi]
jmp 0x140044944
and eax, 0x7f
mov rcx, rsi
test rax, rax
jne 0x14004496e
lea rdx, str.debug.log
mov r8d, 9
mov rcx, rsi
call fcn.14006c176
mov qword [0x14021dad8], 0
jmp 0x1400448b8
lea r8, [rax + rax]
test r8, r8
je 0x140044949
lea rdx, [r8 - 2]
cmp word [rcx + r8 - 2], 0x5c
mov r8, rdx
jne 0x140044972
cmp rdx, 0xfffffffffffffffe
je 0x140044949
sar rdx, 1
inc rdx
cmp rax, rdx
jb 0x140044a8c
mov rcx, rsi
call fcn.1401535b6
jmp 0x140044949
mov rdi, qword [0x14021dad8]
lea rbx, [rsp + 0x40]
mov rcx, rbx
call fcn.1401390f4
mov rcx, rdi
mov rdx, rbx
mov r8, rax
call fcn.1400c0c94
mov rcx, qword [0x14021dad8]
movzx eax, byte [rcx + 0x17]
test al, al
jns 0x140044a7f
mov rax, qword [rcx + 8]
test rax, rax
je 0x140044a91
mov rdx, qword [rcx]
cmp word [rdx + rax*2 - 2], 0x5c
je 0x140044a0c
lea rdx, [0x1401e5152]
mov r8d, 1
call fcn.14006c176
mov rcx, qword [0x14021dad8]
lea rdx, str.debug.log
mov r8d, 9
call fcn.14006c176
mov rcx, qword [0x14021dad8]
cmp byte [rcx + 0x17], 0
jns 0x140044a2e
mov rcx, qword [rcx]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 4
mov edx, 4
mov r8d, 3
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov qword [0x14021db00], rax
inc rax
cmp rax, 1
ja 0x1400448ba
mov qword [0x14021db00], 0
jmp 0x1400448b8
test rax, rax
je 0x140044a91
mov rdx, rcx
jmp 0x1400449eb
call fcn.14012ba40
lea rax, str.string::back__:_string_is_empty
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude_string
lea r9, str._empty__
mov r8d, 0x4d1
call fcn.140152a0d
int3
Function at 0x140045290
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
mov eax, 0x1038
call fcn.140112fa0
sub rsp, rax
mov rax, qword [0x14020b038]
xor rax, rsp
mov qword [rsp + 0x1030], rax
mov dword [rsp + 0x2c], 0xaaaaaaaa
mov ecx, dword [0x14020d0a8]
mov dword [rsp + 0x2c], ecx
cmp ecx, 0xffffffff
jne 0x14004532c
lea rcx, [rsp + 0x2c]
call fcn.1400d9aa0
test al, al
je 0x1400453a7
mov ecx, dword [rsp + 0x2c]
cmp ecx, 0xffffffff
jne 0x14004530e
lea rcx, [rsp + 0x2c]
call fcn.1400d9aa0
test al, al
je 0x1400453aa
cmp dword [rsp + 0x2c], 0xffffffff
je 0x1400453aa
mov ecx, 0xffffffff
call sub.KERNEL32.dll_TlsFree
mov ecx, dword [rsp + 0x2c]
mov eax, 0xffffffff
lock cmpxchg dword [0x14020d0a8], ecx
je 0x14004532c
call sub.KERNEL32.dll_TlsFree
mov ecx, dword [0x14020d0a8]
mov dword [rsp + 0x2c], ecx
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test al, 3
jne 0x1400453a4
lea rsi, [rsp + 0x30]
mov r8d, 0x1000
mov rcx, rsi
xor edx, edx
call fcn.140114f20
mov ecx, dword [rsp + 0x2c]
lea rdx, [rsp + 0x33]
call sub.KERNEL32.dll_TlsSetValue
mov ecx, 0x1000
call fcn.140111a5c
mov rdi, rax
mov r8d, 0x1000
mov rcx, rax
mov rdx, rsi
call fcn.140114870
mov ecx, dword [rsp + 0x2c]
mov rdx, rdi
or rdx, 3
call sub.KERNEL32.dll_TlsSetValue
mov rcx, qword [rsp + 0x1030]
xor rcx, rsp
call fcn.140113000
mov rax, rdi
add rsp, 0x1038
pop rdi
pop rsi
ret
int3
int3
int3
Function at 0x14005bb50
Capabilities:
Check if file exists

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
cmp qword [rcx], rdx
je 0x14005bb98
mov rsi, rdx
mov rdi, rcx
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rax, qword [rdi]
inc rax
cmp rax, 2
jae 0x14005bba1
lea rax, [rsi + 1]
cmp rax, 2
jb 0x14005bb88
mov qword [rdi], rsi
call fcn.1400713d0
mov ecx, ebx
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp qword [sym.imp.KERNEL32.dll_SetLastError]
nop
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
call fcn.1400713d0
mov rcx, qword [rdi]
call fcn.140081d40
mov qword [rdi], 0
jmp 0x14005bb76

Function at 0x14005f400
Capabilities:
Check if file exists

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x40
mov rax, qword [0x14020b038]
xor rax, rsp
mov qword [rsp + 0x38], rax
test rcx, rcx
je 0x14005f484
mov rsi, rcx
xor eax, eax
mov qword [rsp + 0x30], rax
mov rbx, qword [rdx]
mov qword [rdx], rax
cmp rbx, 0xffffffffffffffff
je 0x14005f43b
test rbx, rbx
je 0x14005f45f
call fcn.1400713d0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
lea rax, [rbx + 1]
cmp rax, 2
jb 0x14005f457
mov qword [rsp + 0x30], rbx
call fcn.1400713d0
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea rdx, [rsp + 0x30]
mov rcx, rsi
call fcn.140086752
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.140113000
mov rax, rsi
add rsp, 0x40
pop rbx
pop rdi
pop rsi
ret
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x23
call fcn.140152a0d
int3
Function at 0x140061f80
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, qword [0x14021c2f8]
cmp rsi, 1
jbe 0x140061fa1
mov rcx, rsi
add rsp, 0x28
pop rdi
pop rsi
jmp fcn.14007f1b0
lea rcx, [0x14021c2f8]
call fcn.140071290
test al, al
je 0x140061fe6
xorps xmm0, xmm0
movups xmmword [0x14021c300], xmm0
lea rdi, [0x14021c2f8]
lea rsi, [0x14021c300]
mov rcx, rsi
xor edx, edx
call fcn.14007f240
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9, rdi
call fcn.140071350
jmp 0x140061f93
mov rsi, qword [0x14021c2f8]
jmp 0x140061f93
Function at 0x140062800
Capabilities:
Access peb ldr_data

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rdi, r8
mov rsi, rcx
mov r12, qword [rsp + 0x90]
cmp r12, 8
jb 0x140062974
mov r14, r9
mov r13d, dword [r9 + 4]
cmp r13, r12
ja 0x140062974
mov qword [rsp + 0x20], rsi
cmp dword [r14], 0x100000
ja 0x140062978
mov r15, rdx
lea rbp, [r14 + r13]
sub r12, r13
mov ecx, 0x88
call fcn.1401119e0
mov rbx, rax
mov rsi, qword [rdi]
mov qword [rdi], 0
lea rdx, [0x1401e567b]
mov rcx, rax
call fcn.1400959d0
lea rax, fcn.140062ae0
mov qword [rbx], rax
mov qword [rbx + 0x10], r15
xorps xmm0, xmm0
movups xmmword [rbx + 0x18], xmm0
mov qword [rbx + 0x28], 0
mov qword [rbx + 0x30], rsi
mov word [rbx + 0x38], 0x100
mov byte [rbx + 0x3a], 1
mov qword [rbx + 0x40], r14
mov qword [rbx + 0x48], r13
mov qword [rbx + 0x50], rbp
mov qword [rbx + 0x58], r12
movups xmmword [rbx + 0x60], xmm0
mov qword [rbx + 0x70], 0
movups xmm0, xmmword [0x1401ed760]
movups xmmword [rbx + 0x78], xmm0
mov eax, dword [0x14021c320]
mov ecx, dword [0x14021ad00]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14006291f
lock inc dword [0x14021c314]
mov rsi, qword [rsp + 0x20]
mov qword [rsi], rbx
mov rcx, qword [rdi]
mov qword [rdi], 0
test rcx, rcx
jne 0x14006297f
mov rax, rsi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [0x14021c320]
call fcn.140111b40
cmp dword [0x14021c320], 0xffffffff
jne 0x1400628ed
lea rax, [0x1401e1e80]
mov qword [0x14021c318], rax
lea r14, [0x14021c318]
call fcn.140082e80
lea r8, str.MojoMessages
mov rcx, rax
mov rdx, r14
xor r9d, r9d
call fcn.1400cef50
lea rcx, [0x14021c320]
call fcn.140111bd8
jmp 0x1400628ed
xor ebx, ebx
jmp 0x1400628f9
xor ebx, ebx
jmp 0x1400628f4
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140173f30.0]
jmp 0x14006290b
Function at 0x140070040
Capabilities:
Encode data using base64

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x30
mov rdi, rdx
mov rsi, rcx
mov rcx, qword [rcx]
mov r14, qword [rsi + 8]
sub r14, rcx
sar r14, 3
lea rdx, [r14 + 1]
mov rax, rdx
shr rax, 0x3d
jne 0x140070199
movabs rax, 0x1fffffffffffffff
movabs rbx, 0x7ffffffffffffff8
mov r8, qword [rsi + 0x10]
sub r8, rcx
mov r15, r8
sar r15, 2
cmp r15, rdx
cmovbe r15, rdx
cmp r8, rbx
cmovae r15, rax
test r15, r15
je 0x14007019e
cmp r15, rax
ja 0x1400701a5
lea rcx, [r15*8]
call fcn.1401119e0
shl r14, 3
add r14, rax
je 0x1400701aa
lea rax, [rax + r15*8]
mov rcx, qword [rdi]
mov qword [r14], rcx
mov qword [rdi], 0
lea rcx, [r14 + 8]
mov rdi, qword [rsi]
mov rdx, qword [rsi + 8]
cmp rdx, rdi
je 0x14007016a
mov r8, qword [rdx - 8]
mov qword [r14 - 8], r8
mov qword [rdx - 8], 0
lea r8, [rdx - 8]
add r14, 0xfffffffffffffff8
mov rdx, r8
cmp r8, rdi
jne 0x1400700ed
mov rdi, qword [rsi]
mov r15, qword [rsi + 8]
mov qword [rsi], r14
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rax
cmp r15, rdi
je 0x140070175
add r15, 0xfffffffffffffff8
add rbx, 7
test r15, r15
je 0x1400701d6
mov rcx, qword [r15]
and rcx, rbx
mov rax, qword [0x14020e7a0]
and rax, rcx
cmp rax, qword [0x14020e788]
je 0x140070163
mov qword [r15], 0
lea rax, [r15 - 8]
cmp r15, rdi
mov r15, rax
jne 0x14007012c
jmp 0x140070175
call fcn.140109940
jmp 0x14007014e
mov qword [rsi], r14
mov qword [rsi + 8], rcx
mov qword [rsi + 0x10], rax
test rdi, rdi
jne 0x140070186
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
mov rcx, rdi
add rsp, 0x30
pop rbx
pop rdi
pop rsi
pop r14
pop r15
jmp fcn.140111a1c
call fcn.14012ba40
xor eax, eax
jmp 0x1400700bf
call fcn.140150c28
lea rax, str.null_pointer_given_to_construct_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
lea r9, str.__location___nullptr
mov r8d, 0x23
call fcn.140152a0d
lea rax, str.null_pointer_given_to_destroy_at
mov qword [rsp + 0x20], rax
lea rcx, str._s:_d:_assertion__s_failed:__s
lea rdx, str....._buildtools_third_partylibc_trunkinclude__memoryconstruct_at.h
lea r9, str.__loc___nullptr
mov r8d, 0x3f
call fcn.140152a0d
int3

Function at 0x140070340
Capabilities:
Check if file exists

Disassembly:
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rdi, rdx
mov rsi, rcx
mov rcx, rdx
call fcn.140080e80
mov qword [rsi], 0
test rax, rax
je 0x140070393
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov rax, qword [rsi]
inc rax
cmp rax, 2
jae 0x1400703c7
lea rax, [rbx + 1]
cmp rax, 2
jb 0x14007038b
mov qword [rsi], rbx
call fcn.1400713d0
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea rcx, [rsi + 8]
lea rdx, [rdi + 8]
call fcn.140070590
lea rcx, [rsi + 0x20]
call fcn.140096a60
mov eax, dword [rdi + 0x24]
mov dword [rsi + 0x24], eax
mov al, byte [rdi + 0x28]
mov byte [rsi + 0x28], al
mov al, byte [rdi + 0x29]
mov byte [rsi + 0x29], al
mov rax, rsi
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
ret
call fcn.1400713d0
mov rcx, qword [rsi]
call fcn.140081d40
mov qword [rsi], 0
jmp 0x140070379
Function at 0x140072bd0
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rdi, rdx
mov rsi, rcx
mov qword [rcx], 0
mov r14, qword [rdx]
mov qword [rdx], 0
lea r15, [r14 + 1]
cmp r15, 2
jb 0x140072c01
call fcn.1400713d0
cmp qword [rsi], r14
je 0x140072c30
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rax, qword [rsi]
inc rax
cmp rax, 2
jae 0x140072c4f
cmp r15, 2
jb 0x140072c28
mov qword [rsi], r14
call fcn.1400713d0
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
movups xmm0, xmmword [rdi + 8]
movups xmm1, xmmword [rdi + 0x18]
movups xmmword [rsi + 0x18], xmm1
movups xmmword [rsi + 8], xmm0
mov rax, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
call fcn.1400713d0
mov rcx, qword [rsi]
call fcn.140081d40
mov qword [rsi], 0
jmp 0x140072c1a

Function at 0x140072c70
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rdi, rdx
mov rsi, rcx
mov r14, qword [rdx]
mov qword [rdx], 0
lea r15, [r14 + 1]
cmp r15, 2
jb 0x140072c9a
call fcn.1400713d0
cmp qword [rsi], r14
je 0x140072cc9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rax, qword [rsi]
inc rax
cmp rax, 2
jae 0x140072ce8
cmp r15, 2
jb 0x140072cc1
mov qword [rsi], r14
call fcn.1400713d0
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
movups xmm0, xmmword [rdi + 8]
movups xmm1, xmmword [rdi + 0x18]
movups xmmword [rsi + 0x18], xmm1
movups xmmword [rsi + 8], xmm0
mov rax, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
call fcn.1400713d0
mov rcx, qword [rsi]
call fcn.140081d40
mov qword [rsi], 0
jmp 0x140072cb3
Function at 0x14007f100
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
mov ecx, dword [0x14020d0a8]
cmp ecx, 0xffffffff
je 0x14007f125
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and eax, 3
dec eax
cmp eax, 2
setb al
add rsp, 0x28
ret
xor eax, eax
jmp 0x14007f120

Function at 0x14007f1b0
Capabilities:
Get thread local storage value

Disassembly:
push rsi
sub rsp, 0x20
mov rsi, rcx
mov ecx, dword [0x14020d0a8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14007f1e4
mov rcx, qword [rsi]
shl rcx, 4
mov edx, dword [rax + rcx + 8]
cmp edx, dword [rsi + 8]
jne 0x14007f1e4
mov rax, qword [rax + rcx]
add rsp, 0x20
pop rsi
ret
xor eax, eax
jmp 0x14007f1de

Function at 0x14007f1f0
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rdi, rdx
mov rsi, rcx
mov ecx, dword [0x14020d0a8]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14007f22e
mov rcx, qword [rsi]
shl rcx, 4
mov qword [rax + rcx], rdi
mov ecx, dword [rsi + 8]
mov rdx, qword [rsi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
add rsp, 0x28
pop rdi
pop rsi
ret
test rdi, rdi
je 0x14007f227
call fcn.140045290
jmp 0x14007f20e
Function at 0x14007f240
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r14
push rsi
push rdi
push rbx
mov eax, 0x1038
call fcn.140112fa0
sub rsp, rax
mov rdi, rdx
mov rsi, rcx
mov rax, qword [0x14020b038]
xor rax, rsp
mov qword [rsp + 0x1030], rax
mov qword [rcx], 0xffffffffffffffff
mov dword [rcx + 8], 0
mov ecx, dword [0x14020d0a8]
cmp ecx, 0xffffffff
je 0x14007f28d
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test al, 3
jne 0x14007f307
mov dword [rsp + 0x2c], 0xaaaaaaaa
mov ecx, dword [0x14020d0a8]
mov dword [rsp + 0x2c], ecx
cmp ecx, 0xffffffff
je 0x14007f3d5
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test al, 3
jne 0x14007f492
lea rbx, [rsp + 0x30]
mov r8d, 0x1000
mov rcx, rbx
xor edx, edx
call fcn.140114f20
mov ecx, dword [rsp + 0x2c]
lea rdx, [rsp + 0x33]
call sub.KERNEL32.dll_TlsSetValue
mov ecx, 0x1000
call fcn.140111a5c
mov r14, rax
mov r8d, 0x1000
mov rcx, rax
mov rdx, rbx
call fcn.140114870
mov ecx, dword [rsp + 0x2c]
or r14, 3
mov rdx, r14
call sub.KERNEL32.dll_TlsSetValue
mov eax, dword [0x14021f498]
mov ecx, dword [0x14021ad00]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14007f43c
mov rbx, qword [0x14021f490]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x14007f482
mov rax, qword [0x14021dc88]
inc rax
xor ecx, ecx
lea rdx, [0x14021dc90]
nop word [rax + rax]
lea r8d, [rax + rcx]
movzx r8d, r8b
lea r9, [r8 + r8*2]
cmp dword [rdx + r9*8], 0
je 0x14007f381
inc rcx
cmp rcx, 0x100
jne 0x14007f360
jmp 0x14007f39f
lea rax, [rdx + r9*8]
mov dword [rax], 1
mov qword [rax + 8], rdi
mov qword [0x14021dc88], r8
mov qword [rsi], r8
mov eax, dword [rax + 0x10]
mov dword [rsi + 8], eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
cmp qword [rsi], 0x100
jae 0x14007f48f
mov rcx, qword [rsp + 0x1030]
xor rcx, rsp
call fcn.140113000
mov rax, rsi
add rsp, 0x1038
pop rbx
pop rdi
pop rsi
pop r14
ret
lea rcx, [rsp + 0x2c]
call fcn.1400d9aa0
test al, al
je 0x14007f495
mov ecx, dword [rsp + 0x2c]
cmp ecx, 0xffffffff
je 0x14007f417
mov eax, 0xffffffff
lock cmpxchg dword [0x14020d0a8], ecx
je 0x14007f2a8
call sub.KERNEL32.dll_TlsFree
mov ecx, dword [0x14020d0a8]
mov dword [rsp + 0x2c], ecx
jmp 0x14007f2a8
lea rcx, [rsp + 0x2c]
call fcn.1400d9aa0
test al, al
je 0x14007f498
cmp dword [rsp + 0x2c], 0xffffffff
je 0x14007f498
mov ecx, 0xffffffff
call sub.KERNEL32.dll_TlsFree
mov ecx, dword [rsp + 0x2c]
jmp 0x14007f3f0
lea rcx, [0x14021f498]
call fcn.140111b40
cmp dword [0x14021f498], 0xffffffff
jne 0x14007f32c
mov ecx, 8
call fcn.1401119e0
mov rbx, rax
mov rcx, rax
call fcn.14005ce90
mov qword [0x14021f490], rbx
lea rcx, [0x14021f498]
call fcn.140111bd8
jmp 0x14007f32c
mov rcx, rbx
call fcn.140081a40
jmp 0x14007f344
int3
int3
int3
int3
Function at 0x140080d50
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0xc0
movaps xmmword [rsp + 0xb0], xmm6
mov rsi, rcx
mov rax, qword [0x14020b038]
xor rax, rsp
mov qword [rsp + 0xa8], rax
movabs rax, 0xaaaaaaaaaaaaaaaa
lea rdi, [rsp + 0x50]
mov qword [rdi + 0x50], rax
movaps xmm6, xmmword [0x1401dfd10]
movaps xmmword [rdi + 0x40], xmm6
movaps xmmword [rdi + 0x30], xmm6
movaps xmmword [rdi + 0x20], xmm6
movaps xmmword [rdi + 0x10], xmm6
movaps xmmword [rdi], xmm6
lea rdx, str.PathExists
lea r8, str....._base_files_file_util_win.cc
lea rbx, [rsp + 0x20]
mov rcx, rbx
mov r9d, 0x269
call fcn.1400713b0
mov rcx, rdi
mov rdx, rbx
xor r8d, r8d
call fcn.14007d430
call fcn.14009b8a0
test al, al
jne 0x140080e23
cmp byte [rsi + 0x17], 0
jns 0x140080de5
mov rsi, qword [rsi]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
setne bl
lea rcx, [rsp + 0x50]
call fcn.14007e5d0
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.140113000
mov eax, ebx
movaps xmm6, xmmword [rsp + 0xb0]
add rsp, 0xc0
pop rbx
pop rdi
pop rsi
ret
movaps xmmword [rsp + 0x30], xmm6
movaps xmmword [rsp + 0x20], xmm6
mov dword [rsp + 0x40], 0xaaaaaaaa
cmp byte [rsi + 0x17], 0
jns 0x140080e3e
mov rsi, qword [rsi]
lea r8, [rsp + 0x20]
mov rcx, rsi
xor edx, edx
call fcn.14017bb90
test eax, eax
jmp 0x140080df1

Function at 0x140080fc0
Capabilities:
Write file on windows

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0xb8
mov esi, r8d
mov rdi, rdx
mov rbx, rcx
mov rax, qword [0x14020b038]
xor rax, rsp
mov qword [rsp + 0xb0], rax
movabs r12, 0xaaaaaaaaaaaaaaaa
lea r14, [rsp + 0x50]
mov qword [r14 + 0x50], r12
movaps xmm0, xmmword [0x1401dfd10]
movaps xmmword [r14 + 0x40], xmm0
movaps xmmword [r14 + 0x30], xmm0
movaps xmmword [r14 + 0x20], xmm0
movaps xmmword [r14 + 0x10], xmm0
movaps xmmword [r14], xmm0
lea rdx, str.WriteAtCurrentPos
lea r8, str....._base_files_file_win.cc
lea r15, [rsp + 0x30]
mov rcx, r15
mov r9d, 0x99
call fcn.1400713b0
mov rcx, r14
mov rdx, r15
xor r8d, r8d
call fcn.14007d430
test esi, esi
js 0x1400810cf
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x30], 0
call fcn.140096a40
test al, al
jne 0x1400810d6
lea r14, [rsp + 0x2c]
mov dword [r14], 0xaaaaaaaa
mov rcx, qword [rbx]
mov qword [rsp + 0x20], 0
mov rdx, rdi
mov r8d, esi
mov r9, r14
call qword [sym.imp.KERNEL32.dll_WriteFile]
xor esi, esi
cmp eax, 1
sbb esi, esi
or esi, dword [r14]
lea rcx, [rsp + 0x30]
call fcn.140096ad0
lea rcx, [rsp + 0x50]
call fcn.14007e5d0
mov rcx, qword [rsp + 0xb0]
xor rcx, rsp
call fcn.140113000
mov eax, esi
add rsp, 0xb8
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
mov esi, 0xffffffff
jmp 0x1400810a2
mov r9d, esi
lea rdx, str.File::WriteAtCurrentPos
lea rcx, [rsp + 0x30]
mov r8, rbx
call fcn.140179de0
jmp 0x140081067
Function at 0x140081440
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rdi, rdx
mov rsi, rcx
mov r14, qword [rdx]
mov qword [rdx], 0
lea r15, [r14 + 1]
cmp r15, 2
jb 0x14008146a
call fcn.1400713d0
mov qword [rsi], 0
test r14, r14
je 0x1400814a0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rax, qword [rsi]
inc rax
cmp rax, 2
jae 0x1400814c5
cmp r15, 2
jb 0x140081498
mov qword [rsi], r14
call fcn.1400713d0
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov al, byte [rdi + 8]
mov byte [rsi + 8], al
mov byte [rdi + 8], 0
mov rax, qword [rdi]
inc rax
cmp rax, 2
jae 0x1400814db
mov rax, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
call fcn.1400713d0
mov rcx, qword [rsi]
call fcn.140081d40
mov qword [rsi], 0
jmp 0x14008148a
call fcn.1400713d0
mov rcx, qword [rdi]
call fcn.140081d40
mov qword [rdi], 0
jmp 0x1400814b6

Function at 0x140081500
Capabilities:
Check if file exists

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rdi, rdx
mov rsi, rcx
mov r14, qword [rdx]
mov qword [rdx], 0
lea r15, [r14 + 1]
cmp r15, 2
jae 0x140081579
cmp qword [rsi], r14
je 0x140081554
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebx, eax
mov rax, qword [rsi]
inc rax
cmp rax, 2
jae 0x140081580
cmp r15, 2
jb 0x14008154c
mov qword [rsi], r14
call fcn.1400713d0
mov ecx, ebx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov al, byte [rdi + 8]
mov byte [rsi + 8], al
mov byte [rdi + 8], 0
mov rax, qword [rdi]
inc rax
cmp rax, 2
jae 0x140081596
mov rax, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
call fcn.1400713d0
jmp 0x140081525
call fcn.1400713d0
mov rcx, qword [rsi]
call fcn.140081d40
mov qword [rsi], 0
jmp 0x14008153e
call fcn.1400713d0
mov rcx, qword [rdi]
call fcn.140081d40
mov qword [rdi], 0
jmp 0x14008156a

Function at 0x140081c80
Capabilities:
Query or enumerate registry value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
mov r15, r9
mov r14, r8
mov rsi, rdx
mov r12, rcx
mov rdi, qword [rsp + 0xd0]
mov rax, qword [0x14020b038]
xor rax, rsp
mov qword [rsp + 0x60], rax
lea rbx, [rsp + 0x58]
mov byte [rbx], 0xaa
mov r13, qword [rcx]
lea rdx, str.ReadValue
lea r8, str....._basewin_registry.cc
lea rbp, [rsp + 0x38]
mov rcx, rbp
mov r9d, 0x1ab
call fcn.1400713b0
mov rcx, rbx
mov rdx, rbp
mov r8, r13
mov r9d, 1
call fcn.140082e70
mov rcx, qword [r12]
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], r14
mov rdx, rsi
xor r8d, r8d
mov r9, rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
mov esi, eax
mov rcx, rbx
call fcn.140050720
mov rcx, qword [rsp + 0x60]
xor rcx, rsp
call fcn.140113000
mov eax, esi
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret