joyce8/EMBER2024-capa huggingface dataset:
Function at 0x140105164
Capabilities:
Check if file exists

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
cmp qword [rcx], rdx
je 0x1401051b0
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 0x1401051bb
lea rax, [rsi + 1]
cmp rax, 2
jb 0x14010519e
mov qword [rdi], rsi
call fcn.1400bb620
mov ecx, ebx
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
jmp qword [sym.imp.KERNEL32.dll_SetLastError]
nop
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
call fcn.1400bb620
mov r14, qword [rdi]
mov rcx, qword [0x1403198a0]
test rcx, rcx
je 0x1401051e0
mov rax, qword [rcx]
mov rdx, r14
call qword [rax]
mov qword [rdi], 0
jmp 0x14010518c
int3

Function at 0x14010a530
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push rsi
push rdi
mov r9, qword [rcx]
mov r10, qword [rcx + 8]
mov r8, r10
sub r8, r9
je 0x14010a5bf
mov rax, r8
shr rax, 2
mov rdx, r9
not rdx
add rdx, r10
jne 0x14010a557
xor edx, edx
jmp 0x14010a59c
mov r10, r8
and r10, 0xfffffffffffffffe
xor edx, edx
lea r11, [0x1402d0c00]
nop word [rax + rax]
movzx esi, al
movzx edi, byte [r9 + rdx]
xor edi, esi
shr eax, 8
xor eax, dword [r11 + rdi*4]
movzx esi, al
movzx edi, byte [r9 + rdx + 1]
xor edi, esi
shr eax, 8
xor eax, dword [r11 + rdi*4]
add rdx, 2
cmp r10, rdx
jne 0x14010a570
test r8b, 1
je 0x14010a5b9
movzx edi, al
movzx edx, byte [r9 + rdx]
xor edx, edi
lea rdi, [0x1402d0c00]
shr eax, 8
xor eax, dword [rdi + rdx*4]
mov dword [rcx + 0x18], eax
pop rdi
pop rsi
ret
xor eax, eax
jmp 0x14010a5b9
Function at 0x14010b4d0
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov qword [rcx], rdx
mov rdi, qword [0x140314cf8]
cmp rdi, 1
jbe 0x14010b520
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010b566
movsxd rcx, dword [rdi]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [rdi + 4]
movsxd rdx, dword [rdi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rax, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
lea rcx, [0x140314cf8]
call fcn.1400c4120
test al, al
je 0x14010b572
mov qword [0x140314d00], 0
lea rbx, [0x140314cf8]
lea rdi, [0x140314d00]
mov rcx, rdi
xor edx, edx
call fcn.1400bc270
mov rcx, rbx
mov rdx, rdi
xor r8d, r8d
mov r9, rbx
call fcn.1400c4100
jmp 0x14010b4ea
test rsi, rsi
je 0x14010b515
call fcn.1400086f0
jmp 0x14010b4fc
mov rdi, qword [0x140314cf8]
jmp 0x14010b4ea

Function at 0x14010ed50
Capabilities:
Get thread local storage value

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rdi, rdx
mov rsi, rcx
mov rbx, qword [0x14031af28]
cmp rbx, 1
jbe 0x14010eda4
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010edea
movsxd rcx, dword [rbx]
shl rcx, 4
mov qword [rax + rcx], rdi
mov ecx, dword [rbx + 4]
movsxd rdx, dword [rbx]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rax, rsi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
lea rcx, [0x14031af28]
call fcn.1400c4120
test al, al
je 0x14010edf6
mov qword [0x14031af30], 0
lea r14, [0x14031af28]
lea rbx, [0x14031af30]
mov rcx, rbx
xor edx, edx
call fcn.1400bc270
mov rcx, r14
mov rdx, rbx
xor r8d, r8d
mov r9, r14
call fcn.1400c4100
jmp 0x14010ed6c
test rdi, rdi
je 0x14010ed97
call fcn.1400086f0
jmp 0x14010ed7e
mov rbx, qword [0x14031af28]
jmp 0x14010ed6c

Function at 0x14010ee10
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, qword [0x14031af28]
cmp rsi, 1
jbe 0x14010ee59
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010ee52
movsxd rcx, dword [rsi]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [rsi + 4]
movsxd rdx, dword [rsi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, [0x14031af28]
call fcn.1400c4120
test al, al
je 0x14010ee9f
mov qword [0x14031af30], 0
lea rdi, [0x14031af28]
lea rsi, [0x14031af30]
mov rcx, rsi
xor edx, edx
call fcn.1400bc270
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9, rdi
call fcn.1400c4100
jmp 0x14010ee23
mov rsi, qword [0x14031af28]
jmp 0x14010ee23
Function at 0x14010f810
Capabilities:
Get thread local storage value

Disassembly:
push rsi
sub rsp, 0x20
mov rsi, rcx
mov eax, dword [0x14031dea0]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14010f875
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010f8b1
movsxd rcx, dword [0x14031de98]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x14031de9c]
movsxd rdx, dword [0x14031de98]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
add rsp, 0x20
pop rsi
ret
lea rcx, [0x14031dea0]
call fcn.1401120e4
cmp dword [0x14031dea0], 0xffffffff
jne 0x14010f839
mov qword [0x14031de98], 0
lea rcx, [0x14031de98]
xor edx, edx
call fcn.1400bc270
lea rcx, [0x14031dea0]
call fcn.140112084
jmp 0x14010f839
test rsi, rsi
je 0x14010f86f
call fcn.1400086f0
jmp 0x14010f84b

Function at 0x14010f8e0
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, rcx
mov eax, dword [rdx]
mov dword [rcx], eax
mov eax, 1
lock xadd dword [0x14031de84], eax
mov dword [rcx + 4], eax
mov eax, dword [0x14031de80]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14010f9c9
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010fa4f
movsxd rcx, dword [0x14031de78]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [0x14031de7c]
movsxd rdx, dword [0x14031de78]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov eax, dword [0x14031de90]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14010fa0c
lea rdi, [rsi + 4]
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010fa62
movsxd rcx, dword [0x14031de88]
shl rcx, 4
mov qword [rax + rcx], rdi
mov ecx, dword [0x14031de8c]
movsxd rdx, dword [0x14031de88]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rax, rsi
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, [0x14031de80]
call fcn.1401120e4
cmp dword [0x14031de80], 0xffffffff
jne 0x14010f922
mov qword [0x14031de78], 0
lea rcx, [0x14031de78]
xor edx, edx
call fcn.1400bc270
lea rcx, [0x14031de80]
call fcn.140112084
jmp 0x14010f922
lea rcx, [0x14031de90]
call fcn.1401120e4
cmp dword [0x14031de90], 0xffffffff
jne 0x14010f981
mov qword [0x14031de88], 0
lea rcx, [0x14031de88]
xor edx, edx
call fcn.1400bc270
lea rcx, [0x14031de90]
call fcn.140112084
jmp 0x14010f981
test rsi, rsi
je 0x14010f95c
call fcn.1400086f0
jmp 0x14010f938
test rdi, rdi
je 0x14010f9bf
call fcn.1400086f0
jmp 0x14010f99b
Function at 0x14010fa80
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov byte [rcx], dl
mov rdi, qword [0x14031b0c0]
cmp rdi, 1
jbe 0x14010facf
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010fb15
movsxd rcx, dword [rdi]
shl rcx, 4
mov qword [rax + rcx], rsi
mov ecx, dword [rdi + 4]
movsxd rdx, dword [rdi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rax, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
lea rcx, [0x14031b0c0]
call fcn.1400c4120
test al, al
je 0x14010fb21
mov qword [0x14031b0c8], 0
lea rbx, [0x14031b0c0]
lea rdi, [0x14031b0c8]
mov rcx, rdi
xor edx, edx
call fcn.1400bc270
mov rcx, rbx
mov rdx, rdi
xor r8d, r8d
mov r9, rbx
call fcn.1400c4100
jmp 0x14010fa99
test rsi, rsi
je 0x14010fac4
call fcn.1400086f0
jmp 0x14010faab
mov rdi, qword [0x14031b0c0]
jmp 0x14010fa99

Function at 0x14010fb30
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, qword [0x14031b0c0]
cmp rsi, 1
jbe 0x14010fb79
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010fb72
movsxd rcx, dword [rsi]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [rsi + 4]
movsxd rdx, dword [rsi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
add rsp, 0x28
pop rdi
pop rsi
ret
lea rcx, [0x14031b0c0]
call fcn.1400c4120
test al, al
je 0x14010fbbf
mov qword [0x14031b0c8], 0
lea rdi, [0x14031b0c0]
lea rsi, [0x14031b0c8]
mov rcx, rsi
xor edx, edx
call fcn.1400bc270
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9, rdi
call fcn.1400c4100
jmp 0x14010fb43
mov rsi, qword [0x14031b0c0]
jmp 0x14010fb43

Function at 0x14010fbd0
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
mov eax, dword [0x14031de80]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14010fc97
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010fc33
movsxd rcx, dword [0x14031de78]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x14031de7c]
movsxd rdx, dword [0x14031de78]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov eax, dword [0x14031de90]
mov ecx, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14010fcda
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x14010fc92
movsxd rcx, dword [0x14031de88]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [0x14031de8c]
movsxd rdx, dword [0x14031de88]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
add rsp, 0x28
ret
lea rcx, [0x14031de80]
call fcn.1401120e4
cmp dword [0x14031de80], 0xffffffff
jne 0x14010fbf9
mov qword [0x14031de78], 0
lea rcx, [0x14031de78]
xor edx, edx
call fcn.1400bc270
lea rcx, [0x14031de80]
call fcn.140112084
jmp 0x14010fbf9
lea rcx, [0x14031de90]
call fcn.1401120e4
cmp dword [0x14031de90], 0xffffffff
jne 0x14010fc58
mov qword [0x14031de88], 0
lea rcx, [0x14031de88]
xor edx, edx
call fcn.1400bc270
lea rcx, [0x14031de90]
call fcn.140112084
jmp 0x14010fc58
Function at 0x140110030
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov edi, dword [0x14031c6b0]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov ecx, edi
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test esi, esi
jne 0x14011005d
mov rax, rdi
add rsp, 0x28
pop rdi
pop rsi
ret
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_SetLastError]
jmp 0x140110053

Function at 0x14011460c
Capabilities:
Encode data using xor

Disassembly:
pop rbp
xchg dword [rsi - 0xd], edx
push rcx
test dword [rbx + 0x7b], eax
mov ebp, ebp
jne 0x140114678
cdq
cmp bh, byte cs:[rsp + riz*4]
cmc
pop rdi
lodsd eax, dword [rsi]
out 0x5e, al
sbb bh, byte [0x1463455b3]
and eax, dword [rsi]
fcmovnb st(0), st(0)
imul dword [rdx]
sbb edi, dword [rax]
test dh, 0xb7
cdq
stc
xor al, 0xbd
jae 0x140114626
cwde
invalid
cdq
invalid
invalid

Function at 0x14011629d
Capabilities:
Parse pe header

Disassembly:
mov rax, qword [rsp + 8]
and rdx, 0
Function at 0x140146380
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov rdi, qword [0x140314d08]
cmp rdi, 1
jbe 0x1401463e5
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1401463c6
movsxd rcx, dword [rdi]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [rdi + 4]
movsxd rdx, dword [rdi]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
lea rcx, [rsi + 8]
call fcn.1400bc1a0
mov rcx, qword [rsi]
test rcx, rcx
je 0x1401463dd
lock dec dword [rcx + 8]
je 0x14014643a
add rsp, 0x20
pop rbx
pop rdi
pop rsi
ret
lea rcx, [0x140314d08]
call fcn.1400c4120
test al, al
je 0x14014642e
mov qword [0x140314d10], 0
lea rbx, [0x140314d08]
lea rdi, [0x140314d10]
mov rcx, rdi
xor edx, edx
call fcn.1400bc270
mov rcx, rbx
mov rdx, rdi
xor r8d, r8d
mov r9, rbx
call fcn.1400c4100
jmp 0x140146397
mov rdi, qword [0x140314d08]
jmp 0x140146397
add rcx, 8
add rcx, 0xfffffffffffffff8
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp fcn.1400bc0a0

Function at 0x140159fc0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov qword [rbp], 0xfffffffffffffffe
mov rdi, r8
mov rsi, rdx
mov bl, byte [rbp + 0x68]
test byte [r9 + 8], 1
jne 0x14015a013
mov al, byte [rbp + 0x60]
movzx edx, bl
mov rbx, qword [rcx]
mov dword [rsp + 0x28], edx
mov byte [rsp + 0x20], al
mov rdx, rsi
mov r8, rdi
call qword [rbx + 0x30]
mov rax, rsi
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
mov rax, qword [r9 + 0x30]
lea rcx, [rbp - 0x20]
mov qword [rcx], rax
mov qword [rbp - 8], rax
lock inc dword [rax + 8]
lea rdx, [0x140313e20]
call fcn.1400e5038
mov r14, rax
mov eax, 0xffffffff
mov rcx, qword [rbp - 8]
lock xadd dword [rcx + 8], eax
test eax, eax
jne 0x14015a051
mov rcx, qword [rbp - 8]
mov rax, qword [rcx]
call qword [rax + 8]
movabs rax, 0xaaaaaaaaaaaaaaaa
lea r15, [rbp - 0x20]
mov qword [r15 + 0x10], rax
movaps xmm0, xmmword [0x1402ae190]
movaps xmmword [r15], xmm0
mov rax, qword [r14]
xor bl, 1
movzx ebx, bl
mov rcx, r14
mov rdx, r15
call qword [rax + rbx*8 + 0x28]
movzx r9d, byte [r15 + 0x17]
test r9b, r9b
mov rcx, qword [r15]
mov r8, qword [r15 + 8]
mov rax, r9
cmovs rax, r8
test rax, rax
je 0x14015a108
test r9b, r9b
mov rbx, r15
cmovs rbx, rcx
test rdi, rdi
je 0x14015a0f6
mov al, byte [rbx]
movzx eax, al
mov rcx, qword [rdi + 0x30]
cmp rcx, qword [rdi + 0x38]
je 0x14015a0fa
lea rdx, [rcx + 1]
mov qword [rdi + 0x30], rdx
mov byte [rcx], al
cmp eax, 0xffffffff
jne 0x14015a0cb
xor edi, edi
mov r9b, byte [rbp - 9]
mov rcx, qword [rbp - 0x20]
mov r8, qword [rbp - 0x18]
inc rbx
test r9b, r9b
mov rax, r15
cmovs rax, rcx
movzx edx, r9b
cmovs rdx, r8
add rdx, rax
cmp rbx, rdx
jne 0x14015a0a6
jmp 0x14015a108
xor edi, edi
jmp 0x14015a0d7
mov r8, qword [rdi]
mov rcx, rdi
mov edx, eax
call qword [r8 + 0x60]
jmp 0x14015a0c4
shr r9b, 7
mov qword [rsi], rdi
test r9b, r9b
je 0x14015a003
call fcn.140112038
jmp 0x14015a003
Function at 0x14015f04a
Capabilities:
Access peb ldr_data

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov rsi, rcx
mov rcx, qword [rcx]
test rcx, rcx
jne 0x14015f121
mov rax, qword [rsi + 0x28]
cmp rax, 0x60
mov edi, 0x60
cmova rdi, rax
mov rcx, rdi
call qword [rsi + 0x48]
mov rdx, rax
xor r8d, r8d
mov qword [rax], r8
mov qword [rax + 8], 0x18
mov qword [rax + 0x10], rdi
lock add qword [rsi + 0x10], rdi
lea rcx, [rax + 0x18]
mov qword [rax + 8], 0x60
mov qword [rax + 0x18], rsi
mov edi, dword [0x140311f48]
mov rax, qword gs:[0x58]
mov rax, qword [rax + rdi*8]
lea rax, [rax + 0x120]
mov qword [rdx + 0x20], rax
mov qword [rdx + 0x28], rdx
lea rax, [rdx + 0x60]
mov qword [rdx + 0x40], rax
mov rax, qword [rdx + 0x10]
add rax, rdx
mov qword [rdx + 0x48], rax
mov qword [rdx + 0x30], r8
xorps xmm0, xmm0
movups xmmword [rdx + 0x50], xmm0
mov rax, qword [rsi]
mov qword [rdx + 0x38], rax
lock cmpxchg qword [rsi], rcx
jne 0x14015f0e3
mov eax, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rax, qword [rdx + rax*8]
mov qword [rax + 0x128], rcx
mov rdx, qword [rsi + 0x20]
mov qword [rax + 0x120], rdx
mov qword [rsi + 8], rcx
mov rax, rcx
add rsp, 0x28
pop rdi
pop rsi
ret
mov eax, dword [0x140311f48]
mov rdx, qword gs:[0x58]
mov rax, qword [rdx + rax*8]
lea rax, [rax + 0x120]
cmp qword [rcx + 8], rax
je 0x14015f0ee
mov rcx, qword [rcx + 0x20]
jmp 0x14015f056

Function at 0x1401650d0
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x30
mov rsi, rcx
mov rax, qword [0x14030d038]
xor rax, rsp
mov qword [rsp + 0x28], rax
lea rax, [0x1402a9c00]
mov qword [rcx], rax
lea rdi, [rcx + 8]
lea rax, [0x1402acd38]
mov qword [rcx + 8], rax
lea rbx, [rsp + 0x20]
mov rcx, rbx
call fcn.1400bd250
mov rcx, rbx
mov rdx, rsi
call fcn.140165230
call fcn.1400bd020
mov rcx, rax
mov rdx, rdi
call fcn.1400f2240
mov rdi, qword [rsi + 0x10]
add rdi, 8
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x1401651d9
mov rax, qword [rsi + 0x18]
test rax, rax
jne 0x1401651e6
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
lea rdx, [rsp + 0x20]
mov dword [rdx], eax
mov ecx, 0x308
add rcx, qword [rsi + 0x10]
call fcn.140165240
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rdi, qword [rsi + 0x10]
mov ecx, dword [0x140310d60]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
and rax, 0xfffffffffffffffc
je 0x1401651b2
movsxd rcx, dword [rdi + 0x2f0]
shl rcx, 4
mov qword [rax + rcx], 0
mov ecx, dword [rdi + 0x2f4]
movsxd rdx, dword [rdi + 0x2f0]
shl rdx, 4
mov dword [rax + rdx + 8], ecx
mov rdi, qword [rsi + 0x18]
mov qword [rsi + 0x18], 0
test rdi, rdi
jne 0x14016521d
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.140115e50
nop
add rsp, 0x30
pop rbx
pop rdi
pop rsi
ret
mov rcx, rdi
call fcn.1400bb6f0
jmp 0x140165143
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rcx + 0x360]
cmp dword [rsi + 0x28], edx
jne 0x140165150
mov rcx, qword [rcx + 0x20]
mov qword [rsi + 0x18], 0
lea r8, [rsp + 0x20]
mov qword [r8], rax
mov rdx, qword [rsi + 0x20]
mov rax, qword [rcx]
call qword [rax + 0x10]
jmp 0x140165150
mov rcx, rdi
call fcn.140145a40
mov rcx, rdi
call fcn.140112038
jmp 0x1401651c3
Function at 0x1401698b6
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rsi, rcx
test r8d, r8d
jne 0x1401698e0
movabs rax, 0x100000001
mov qword [rsi], rax
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
mov edi, r8d
mov dword [rsi], 0
test dl, 1
jne 0x140169901
xor ebx, ebx
movzx edx, dx
shr edx, 1
inc ebx
mov r14d, edx
test dl, 1
je 0x1401698f0
jmp 0x140169907
movzx r14d, dx
xor ebx, ebx
bsr eax, r14d
xor eax, 0x1f
mov ecx, 0x20
sub ecx, eax
imul ecx, edi
cmp ecx, 0xde3
jg 0x1401699d9
mov ecx, 1
mov ebp, ecx
lea ecx, [rbp + rbp]
cmp ebp, edi
jle 0x140169929
xor r8d, r8d
sar ebp, 2
movzx r9d, dx
jne 0x140169991
xor ebp, ebp
mov rdx, r9
mov dword [rsi], 0
test rdx, rdx
je 0x14016996c
xor eax, eax
mov ecx, edx
and ecx, 0xfffffff
mov dword [rsi + rax*4 + 4], ecx
shr rdx, 0x1c
inc rax
test rdx, rdx
jne 0x140169951
mov word [rsi], ax
test r8b, 1
jne 0x1401699fb
test ebp, ebp
jne 0x1401699de
imul ebx, edi
mov rcx, rsi
mov edx, ebx
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
jmp fcn.1401692dc
xor r8d, r8d
mov r10d, 1
mov rdx, r9
imul rdx, rdx
test ebp, edi
jne 0x1401699b4
sar ebp, 1
je 0x140169944
mov rcx, rdx
shr rcx, 0x20
jne 0x140169944
jmp 0x14016999d
mov ecx, eax
or cl, 0x20
mov r11, rdx
shr r11, cl
test r11, r11
mov ecx, 1
cmove rcx, r9
movzx r8d, r8b
cmovne r8d, r10d
imul rdx, rcx
jmp 0x1401699a5
call fcn.140157ee2
mov rcx, rsi
call fcn.140261a6c
test ebp, edi
je 0x1401699f5
mov rcx, rsi
mov edx, r14d
call fcn.14016959e
sar ebp, 1
je 0x14016997a
jmp 0x1401699de
mov rcx, rsi
mov edx, r14d
call fcn.14016959e
jmp 0x140169976

Function at 0x14016ada0
Capabilities:
Set registry value

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x60
mov esi, r9d
mov rdi, r8
mov r14, rdx
mov rbx, rcx
mov ebp, dword [rsp + 0xb0]
mov rax, qword [0x14030d038]
xor rax, rsp
mov qword [rsp + 0x58], rax
lea rdx, str.WriteValue
lea r8, str..._.._base_win_registry.cc
lea rcx, [rsp + 0x38]
mov r9d, 0x1d9
call fcn.1400c0870
mov rcx, qword [rbx]
mov dword [rsp + 0x28], esi
mov qword [rsp + 0x20], rdi
mov rdx, r14
xor r8d, r8d
mov r9d, ebp
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov esi, eax
mov rcx, qword [rsp + 0x58]
xor rcx, rsp
call fcn.140115e50
mov eax, esi
add rsp, 0x60
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
Function at 0x14017e220
Capabilities:
Get common file path

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x278
mov r14, rcx
mov rax, qword [0x14030d038]
xor rax, rsp
mov qword [rsp + 0x270], rax
lea rbx, [rsp + 0x60]
mov r8d, 0x20a
mov rcx, rbx
mov dl, 0xaa
call fcn.140117f60
mov ecx, 0x104
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
mov edi, eax
dec edi
cmp edi, 0x102
ja 0x14017e2bf
lea rsi, [rsp + 0x20]
mov qword [rsi], rbx
mov rcx, rbx
call fcn.1401124ec
mov qword [rsi + 8], rax
lea rbx, [rsp + 0x30]
mov rcx, rbx
mov rdx, rsi
call fcn.1400e4ea0
lea rsi, [rsp + 0x48]
mov rcx, rbx
mov rdx, rsi
call fcn.1400ff250
mov rcx, r14
mov rdx, rsi
call fcn.1400f94f0
mov rcx, rsi
call fcn.1400e1350
mov rcx, rbx
call fcn.1400e1350
cmp edi, 0x103
setb bl
mov rcx, qword [rsp + 0x270]
xor rcx, rsp
call fcn.140115e50
mov eax, ebx
add rsp, 0x278
pop rbx
pop rdi
pop rsi
pop r14
ret

Function at 0x1401837ff
Capabilities:
Clear file content

Disassembly:
push rsi
push rdi
sub rsp, 0x178
mov rdi, rcx
mov rax, qword [0x14030d038]
xor rax, rsp
mov qword [rsp + 0x170], rax
xor esi, esi
xor edx, edx
xor r8d, r8d
call fcn.14017cf67
test rax, rax
jne 0x14018383e
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetEndOfFile]
mov sil, 1
test eax, eax
je 0x14018385a
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.140115e50
mov eax, esi
add rsp, 0x178
pop rdi
pop rsi
ret
mov ecx, 2
call fcn.1400f34e0
test al, al
je 0x1401838b0
call sub.KERNEL32.dll_GetLastError
mov dword [rsp + 0x20], eax
lea rdx, str..._.._third_party_crashpad_crashpad_util_file_file_io_win.cc
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov r8d, 0xfc
mov r9d, 2
call fcn.14019f9e0
lea rcx, [rsp + 0x40]
lea rdx, [0x1402c796e]
mov r8d, 0xc
call fcn.1400ff874
mov rcx, rsi
call fcn.140183e60
xor esi, esi
jmp 0x14018383e

Function at 0x14018b3ae
Capabilities:
Extract resource via kernel32 functions

Disassembly:
push rsi
push rdi
sub rsp, 0x28
mov esi, edx
mov rdi, rcx
mov eax, edx
shr eax, 4
inc eax
movzx edx, ax
mov r8d, 6
call qword [sym.imp.KERNEL32.dll_FindResourceW]
test rax, rax
jne 0x14018b3dd
xor eax, eax
add rsp, 0x28
pop rdi
pop rsi
ret
mov rcx, rdi
mov rdx, rax
mov r8d, esi
add rsp, 0x28
pop rdi
pop rsi
jmp 0x1401fb58d
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov edi, r8d
mov r14, rdx
mov rbx, rcx
call qword [sym.imp.KERNEL32.dll_LoadResource]
test rax, rax
je 0x1401fb60a
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_LockResource]
test rax, rax
je 0x1401fb60a
mov rsi, rax
mov rcx, rbx
mov rdx, r14
call qword [sym.imp.KERNEL32.dll_SizeofResource]
test eax, eax
setne cl
and edi, 0xf
je 0x1401fb5fa
test eax, eax
je 0x1401fb5fa
mov ecx, eax
mov rax, rsi
add rax, rcx
dec edi
movzx ecx, word [rsi]
lea rsi, [rsi + rcx*2]
add rsi, 2
cmp rsi, rax
setb cl
add edi, 0xffffffff
jae 0x1401fb5fa
cmp rsi, rax
jb 0x1401fb5df
test cl, cl
je 0x1401fb60a
xor eax, eax
cmp word [rsi], 0
cmovne rax, rsi
jmp 0x1401fb60c
xor eax, eax
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret