joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14003dbc0
Capabilities:
Get system information on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x78
mov r12, r8
mov ebx, edx
mov edi, ecx
mov rax, qword [0x140158018]
xor rax, rsp
mov qword [rsp + 0x70], rax
movzx eax, byte [r8 + 0x17]
test al, al
jns 0x14003dbf4
mov rax, qword [r12 + 8]
test rax, rax
je 0x14003dcec
mov eax, ebx
not eax
test eax, 0x300
je 0x14003dcec
cmp edi, 2
lea rax, [0x140168860]
lea rcx, [0x140168a60]
cmove rcx, rax
cmp word [rcx], 0
jne 0x14003dcec
xorps xmm0, xmm0
lea rsi, [rsp + 0x40]
movaps xmmword [rsi + 0x20], xmm0
movaps xmmword [rsi + 0x10], xmm0
movaps xmmword [rsi], xmm0
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
cmp word [rsi], 0
je 0x14003dcec
cmp byte [0x140168850], 0
setne al
bt ebx, 8
jb 0x14003dcec
shr ebx, 9
and ebx, 1
or bl, al
je 0x14003dcec
cmp edi, 2
lea rax, str.SOFTWAREClasses
lea rsi, str.SOFTWARE
cmove rsi, rax
movzx r13d, byte [r12 + 0x17]
test r13b, r13b
jns 0x14003dd47
mov rbx, qword [r12]
mov r13, qword [r12 + 8]
mov r14d, 1
xor r15d, r15d
xor eax, eax
mov qword [rsp + 0x38], rax
xor eax, eax
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x2c], 0
mov rdi, qword [rsi + 8]
mov rbp, r13
sub rbp, rdi
jb 0x14003dcd9
mov rdx, qword [rsi]
mov rcx, rbx
mov r8, rdi
call fcn.1400b1bbc
test eax, eax
je 0x14003dd0b
add rsi, 0x28
inc r15
cmp r15, r14
jb 0x14003dcbb
cmp dword [rsp + 0x2c], 0
jne 0x14003dd4f
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14009d8b0
nop
add rsp, 0x78
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
movzx ecx, word [rbx + rdi*2]
cmp cx, 0x5c
je 0x14003dd1a
test cx, cx
jne 0x14003dcd9
lea rax, [rbx + rdi*2]
mov edx, dword [rsi + 0x10]
mov dword [rsp + 0x2c], edx
cmp edx, 1
je 0x14003dd77
cmp dword [rsp + 0x2c], 2
jne 0x14003dd88
lea rdx, str.WOW6432Node
mov qword [rsp + 0x38], rdx
mov rdx, rax
mov qword [rsp + 0x30], rax
jmp 0x14003dd88
mov rbx, r12
jmp 0x14003dc9c
cmp byte [r12 + 0x17], 0
js 0x14003ddb7
mov rax, r12
mov rdx, qword [rsp + 0x30]
sub rdx, rax
sar rdx, 1
mov rcx, r12
mov r8, qword [rsp + 0x38]
call fcn.14002c330
jmp 0x14003dcec
lea rdx, str.WOW6432Node_
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x30], rbx
cmp cx, 0x5c
jne 0x14003dda1
lea rbx, [rax + 2]
dec rbp
cmp word [rax + 2], 0x5c
mov rax, rbx
je 0x14003dd8e
jmp 0x14003dda4
mov rbx, rax
mov r14, qword [rsi + 0x20]
mov rsi, qword [rsi + 0x18]
xor r15d, r15d
mov r13, rbp
jmp 0x14003dce0
mov rax, qword [r12]
jmp 0x14003dd5a
Function at 0x140040110
Capabilities:
Set thread local storage value

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x48
mov rax, qword [0x140158018]
xor rax, rsp
mov qword [rsp + 0x40], rax
test rcx, rcx
je 0x14004036b
movabs rax, 0xe69e32f3ad9ea63
cmp qword [0x14015b430], rax
jne 0x14004036e
mov rsi, rcx
mov edi, dword [rcx + 0xc]
add rdi, 0x2f8
mov byte [rsp + 0x3f], 0xaa
bsr rax, rdi
xor rax, 0xffffffffffffffc0
lea rcx, [0x140141230]
mov cl, byte [rax + rcx + 0x41]
mov rdx, rdi
shr rdx, cl
and edx, 3
lea rcx, [0x140141280]
mov rcx, qword [rcx + rax*8 + 0x208]
and rcx, rdi
lea rax, [rdx + rax*4]
add rax, 0x104
cmp rcx, 1
sbb rax, 0xffffffffffffffff
lea rcx, [0x140140e18]
movzx eax, word [rcx + rax*2 + 0x200]
lea r12, [rax + rax*4]
lea r15, [rsi + r12*8]
add r15, 0x58
lea r14, [rsi + 0x50]
mov ebx, 1
xor r13d, r13d
mov rbp, qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
mov rcx, r14
call rbp
test al, al
je 0x140040333
mov rax, qword [r15]
mov rbx, qword [rax]
test rbx, rbx
je 0x1400402cc
mov byte [rsp + 0x3f], 0
mov rdx, qword [rbx]
test rdx, rdx
je 0x1400402c5
mov ecx, dword [rsi + r12*8 + 0x70]
mov rdi, rdx
bswap rdi
test edi, 0x1fc000
je 0x140040366
mov rbp, rdi
xor rbp, rbx
cmp rbp, 0x1fffff
ja 0x140040366
not rdx
cmp qword [rbx + 8], rdx
jne 0x140040366
prefetcht0 byte [rdi]
mov qword [rax], rdi
inc word [rax + 0x18]
mov rax, qword [rax + 0x10]
mov eax, dword [rax + 0x18]
add rax, qword [rsi + 0xaa8]
mov qword [rsi + 0xaa8], rax
mov rcx, qword [rsi + 0xab0]
cmp rcx, rax
cmovae rax, rcx
mov qword [rsi + 0xab0], rax
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov rcx, rbx
mov rdx, rsi
call fcn.140079050
mov ecx, dword [0x140168f38]
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov eax, dword [0x140161624]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 0x140], rbx
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14009d8b0
mov rax, rbx
add rsp, 0x48
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor edi, edi
jmp 0x140040236
lea rax, [rsp + 0x3f]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x4000
mov rcx, r15
mov rdx, rsi
mov r8d, 2
mov r9, rdi
call fcn.140061f80
test rax, rax
je 0x140040371
mov rbx, rax
mov rcx, rax
and rcx, 0xffffffffffe00000
mov rdx, rax
shr rdx, 9
and edx, 0xfe0
lea rax, [rdx + rcx]
movzx ecx, byte [rdx + rcx + 0x101e]
and ecx, 0x3f
shl rcx, 5
sub rax, rcx
add rax, 0x1000
jmp 0x14004023d
mov eax, ebx
test ebx, ebx
jle 0x140040342
pause
dec eax
jne 0x140040339
add r13d, ebx
add ebx, ebx
cmp ebx, 0x10
mov eax, 0x10
cmovge ebx, eax
cmp r13d, 0x40
jl 0x1400401cf
mov rcx, r14
call sub.KERNEL32.dll_AcquireSRWLockExclusive
jmp 0x1400401dc
call fcn.1400c97d0
int3
int3
xor ebx, ebx
jmp 0x140040267
Function at 0x140040f10
Capabilities:
Query or enumerate registry value

Disassembly:
push rsi
push rdi
sub rsp, 0x48
mov rsi, r8
mov rax, qword [0x140158018]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov eax, 4
lea r9, [rsp + 0x3c]
mov dword [r9], eax
lea rdi, [rsp + 0x38]
mov dword [rdi], eax
lea rax, [rsp + 0x34]
mov dword [rax], 0
mov rcx, qword [rcx]
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140040f97
mov eax, dword [rsp + 0x3c]
add eax, 0xfffffffd
mov edi, 0x3f4
cmp eax, 1
ja 0x140040f81
cmp dword [rsp + 0x38], 4
jne 0x140040f81
mov eax, dword [rsp + 0x34]
mov dword [rsi], eax
xor edi, edi
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14009d8b0
mov eax, edi
add rsp, 0x48
pop rdi
pop rsi
ret
mov edi, eax
jmp 0x140040f81

Function at 0x140040fa0
Capabilities:
Query environment variable
Query or enumerate registry value

Disassembly:
push r14
push rsi
push rdi
push rbx
mov eax, 0x1048
call fcn.14009d840
sub rsp, rax
mov r14, r8
mov rdi, rdx
mov rbx, rcx
mov rax, qword [0x140158018]
xor rax, rsp
mov qword [rsp + 0x1040], rax
lea rsi, [rsp + 0x840]
mov r8d, 0x800
mov rcx, rsi
mov dl, 0xaa
call fcn.1400a05e0
lea r9, [rsp + 0x3c]
mov dword [r9], 1
lea rax, [rsp + 0x38]
mov dword [rax], 0x800
mov rcx, qword [rbx]
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rsi
mov rdx, rdi
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x140041053
mov eax, dword [rsp + 0x3c]
cmp eax, 1
jne 0x140041057
lea rdx, [rsp + 0x840]
mov rcx, r14
call fcn.14002c080
xor edi, edi
mov rcx, qword [rsp + 0x1040]
xor rcx, rsp
call fcn.14009d8b0
mov eax, edi
add rsp, 0x1048
pop rbx
pop rdi
pop rsi
pop r14
ret
mov edi, eax
jmp 0x140041034
cmp eax, 2
jne 0x14004109f
lea rsi, [rsp + 0x40]
mov r8d, 0x800
mov rcx, rsi
mov dl, 0xaa
call fcn.1400a05e0
lea rcx, [rsp + 0x840]
mov rdx, rsi
mov r8d, 0x400
call qword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
mov dword [rsp + 0x38], eax
add eax, 0xfffffbff
cmp eax, 0xfffffc00
jb 0x1400410a6
lea rdx, [rsp + 0x40]
jmp 0x14004102a
mov edi, 0x3f4
jmp 0x140041034
mov edi, 0xea
jmp 0x140041034

Function at 0x140041c00
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
mov ecx, dword [0x140161450]
cmp ecx, 0xffffffff
je 0x140041c25
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 0x140041c20
Function at 0x140041c30
Capabilities:
Get thread local storage value

Disassembly:
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x20
mov r14, rdx
mov r15, rcx
mov ecx, dword [0x140161450]
cmp ecx, 0xffffffff
je 0x140041d0e
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test al, 3
je 0x140041d0e
mov eax, dword [0x14016ae18]
mov ecx, dword [0x140161624]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x140041d18
mov rbx, qword [0x14016ae10]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x140041d5e
mov rax, qword [0x140169608]
inc rax
xor ecx, ecx
lea rdx, [0x140169610]
lea edi, [rax + rcx]
movzx edi, dil
lea rsi, [rdi + rdi*2]
cmp dword [rdx + rsi*8], 0
jne 0x140041d6b
lea rax, [rdx + rsi*8]
mov dword [rax], 1
mov qword [rax + 8], r14
mov qword [0x140169608], rdi
mov dword [r15], edi
mov eax, dword [rax + 0x10]
mov dword [r15 + 4], eax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [r15]
cmp eax, 0xffffffff
je 0x140041d80
cmp eax, 0x100
jge 0x140041d83
add rsp, 0x20
pop rbx
pop rdi
pop rsi
pop r14
pop r15
ret
call fcn.140041d90
jmp 0x140041c5e
lea rcx, [0x14016ae18]
call fcn.14009d0c0
cmp dword [0x14016ae18], 0xffffffff
jne 0x140041c83
mov ecx, 8
call fcn.14009cf68
mov rbx, rax
mov rcx, rax
call fcn.1400719a0
mov qword [0x14016ae10], rbx
lea rcx, [0x14016ae18]
call fcn.14009d158
jmp 0x140041c83
mov rcx, rbx
call fcn.1400719b0
jmp 0x140041c9b
inc rcx
cmp rcx, 0x100
jne 0x140041cae
jmp 0x140041ce2
int3
int3

Function at 0x140041d90
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
mov eax, 0x1038
call fcn.14009d840
sub rsp, rax
mov rax, qword [0x140158018]
xor rax, rsp
mov qword [rsp + 0x1030], rax
mov dword [rsp + 0x2c], 0xaaaaaaaa
mov ecx, dword [0x140161450]
mov dword [rsp + 0x2c], ecx
cmp ecx, 0xffffffff
je 0x140041e44
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test al, 3
jne 0x140041e82
lea rsi, [rsp + 0x30]
mov r8d, 0x1000
mov rcx, rsi
xor edx, edx
call fcn.1400a05e0
mov ecx, dword [rsp + 0x2c]
lea rdx, [rsp + 0x33]
call sub.KERNEL32.dll_TlsSetValue
mov ecx, 0x1000
call fcn.14009cfdc
mov rdi, rax
mov r8d, 0x1000
mov rcx, rax
mov rdx, rsi
call fcn.1400a01d0
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.14009d8b0
mov rax, rdi
add rsp, 0x1038
pop rdi
pop rsi
ret
lea rcx, [rsp + 0x2c]
call fcn.14004fd40
test al, al
je 0x140041e85
mov ecx, dword [rsp + 0x2c]
cmp ecx, 0xffffffff
je 0x140041e88
mov eax, 0xffffffff
lock cmpxchg dword [0x140161450], ecx
je 0x140041dc8
call sub.KERNEL32.dll_TlsFree
mov ecx, dword [0x140161450]
mov dword [rsp + 0x2c], ecx
jmp 0x140041dc8
int3
int3
lea rcx, [rsp + 0x2c]
call fcn.14004fd40
test al, al
je 0x140041ead
cmp dword [rsp + 0x2c], 0xffffffff
je 0x140041ead
mov ecx, 0xffffffff
call sub.KERNEL32.dll_TlsFree
mov ecx, dword [rsp + 0x2c]
jmp 0x140041e5b
int3
Function at 0x140043150
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov rdi, qword [0x14016af20]
cmp rdi, 1
jbe 0x140043179
mov rcx, rdi
mov rdx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp fcn.14007a990
lea rcx, [0x14016af20]
call fcn.14004ef20
test al, al
je 0x1400431bf
mov qword [0x14016af28], 0
lea rbx, [0x14016af20]
lea rdi, [0x14016af28]
mov rcx, rdi
xor edx, edx
call fcn.140041fa0
mov rcx, rbx
mov rdx, rdi
xor r8d, r8d
mov r9, rbx
call fcn.14004efc0
jmp 0x140043167
mov rdi, qword [0x14016af20]
jmp 0x140043167
Function at 0x140048060
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
mov rsi, r9
mov r14, r8
mov r15, rdx
mov r12, rcx
mov rdi, qword [rsp + 0xb0]
mov rax, qword [0x140158018]
xor rax, rsp
mov qword [rsp + 0x50], rax
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
test rdi, rdi
je 0x140048193
mov ecx, dword [rdi + 0x2c]
call fcn.1400832c0
test rax, rax
je 0x1400481aa
mov rbx, rax
xor ecx, ecx
call fcn.140083300
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x30], rdi
mov rax, qword [rdi + 0x10]
lea rcx, [0x14010ae50]
cmp rax, rcx
jne 0x14004819a
xorps xmm0, xmm0
movups xmmword [rbx + 0x5c], xmm0
movups xmmword [rbx + 0x50], xmm0
movups xmmword [rbx + 0x40], xmm0
movups xmmword [rbx + 0x30], xmm0
movups xmmword [rbx + 0x20], xmm0
movaps xmm0, xmmword [0x140144240]
movups xmmword [rbx], xmm0
movaps xmm0, xmmword [0x140144250]
movups xmmword [rbx + 0x10], xmm0
mov dword [rbx + 0x6c], 0x20
lea rbx, [rsp + 0x30]
mov rax, qword [rbx]
mov rax, qword [rax + 0x18]
mov rcx, rbx
mov rdx, r12
mov r8, r15
call qword [0x140177010]
mov rax, qword [rbx]
mov rax, qword [rax + 0x20]
mov rcx, rbx
mov rdx, r14
call qword [0x140177010]
mov rax, qword [rbx]
test rsi, rsi
je 0x14004814d
mov ecx, dword [rax + 4]
mov dword [rsi], ecx
mov edx, dword [rax + 0x2c]
mov rcx, qword [rsp + 0x38]
call fcn.140083340
mov esi, 1
mov rdi, qword [rsp + 0x38]
mov rcx, rdi
call fcn.140083300
mov rax, qword [rsp + 0x48]
test rax, rax
jne 0x1400481d1
mov rcx, qword [rsp + 0x50]
xor rcx, rsp
call fcn.14009d8b0
mov eax, esi
add rsp, 0x58
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
xor ebx, ebx
jmp 0x1400480cb
lea rcx, [rsp + 0x30]
call qword [0x140177010]
jmp 0x140048112
mov dword [rsp + 0x20], 0xcd
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_digest_digest.c
xor edi, edi
mov ecx, 0x1d
xor edx, edx
mov r8d, 0x41
call fcn.14011db40
xor esi, esi
jmp 0x140048164
mov rax, qword [rax]
mov rcx, qword [rsp + 0x40]
call qword [0x140177010]
jmp 0x140048176

Function at 0x140048240
Capabilities:
Hash data using sha256

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x30
mov rdi, rdx
mov rsi, rcx
cmp qword [rcx], rdx
je 0x140048272
mov ecx, dword [rdi + 0x2c]
call fcn.1400832c0
test rax, rax
je 0x1400482d3
mov rbx, rax
mov rcx, qword [rsi + 8]
call fcn.140083300
mov qword [rsi + 8], rbx
mov qword [rsi], rdi
mov rax, qword [rdi + 0x10]
lea rcx, [0x14010ae50]
cmp rax, rcx
jne 0x1400482c8
mov rax, qword [rsi + 8]
xorps xmm0, xmm0
movups xmmword [rax + 0x5c], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x20], xmm0
movaps xmm0, xmmword [0x140144240]
movups xmmword [rax], xmm0
movaps xmm0, xmmword [0x140144250]
movups xmmword [rax + 0x10], xmm0
mov dword [rax + 0x6c], 0x20
mov esi, 1
mov eax, esi
add rsp, 0x30
pop rbx
pop rdi
pop rsi
ret
mov rcx, rsi
call qword [0x140177010]
jmp 0x1400482b9
mov dword [rsp + 0x20], 0xcd
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_digest_digest.c
xor esi, esi
mov ecx, 0x1d
xor edx, edx
mov r8d, 0x41
call fcn.14011db40
jmp 0x1400482be
Function at 0x14004ab20
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
movaps xmmword [rsp + 0xd0], xmm8
movaps xmmword [rsp + 0xc0], xmm7
movaps xmmword [rsp + 0xb0], xmm6
mov qword [rsp + 0x28], r9
mov rax, qword [0x140158018]
xor rax, rsp
mov qword [rsp + 0xa8], rax
xorps xmm6, xmm6
movaps xmmword [rsp + 0x40], xmm6
movaps xmmword [rsp + 0x30], xmm6
mov esi, 1
test rdx, rdx
je 0x14004acee
mov r13, r8
mov rdi, rdx
mov rbx, rcx
mov r14, qword [rsp + 0x150]
mov r12d, dword [r14 + 4]
xor eax, eax
movaps xmm8, xmmword [0x140144240]
movaps xmm7, xmmword [0x140144250]
lea rsi, [rsp + 0x30]
xor r15d, r15d
mov ecx, r15d
bswap ecx
mov dword [rsp + 0x5c], ecx
cmp rax, r14
je 0x14004abe3
mov ecx, dword [r14 + 0x2c]
call fcn.1400832c0
test rax, rax
je 0x14004ad51
mov rbp, rax
mov rcx, qword [rsp + 0x38]
call fcn.140083300
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], r14
mov rax, qword [r14 + 0x10]
lea rcx, [0x14010ae50]
cmp rax, rcx
jne 0x14004ad41
mov rax, qword [rsp + 0x38]
movups xmmword [rax + 0x5c], xmm6
movups xmmword [rax + 0x50], xmm6
movups xmmword [rax + 0x40], xmm6
movups xmmword [rax + 0x30], xmm6
movups xmmword [rax + 0x20], xmm6
movups xmmword [rax], xmm8
movups xmmword [rax + 0x10], xmm7
mov dword [rax + 0x6c], 0x20
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x18]
mov rcx, rsi
mov rdx, r13
mov r8, qword [rsp + 0x28]
call qword [0x140177010]
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x18]
mov r8d, 4
mov rcx, rsi
lea rdx, [rsp + 0x5c]
call qword [0x140177010]
cmp rdi, r12
jb 0x14004ac97
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x20]
mov rcx, rsi
mov rdx, rbx
call qword [0x140177010]
mov rax, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov edx, dword [rax + 0x2c]
call fcn.140083340
sub rdi, r12
je 0x14004ace9
add rbx, r12
inc r15d
mov rax, qword [rsp + 0x30]
jmp 0x14004abac
movaps xmm0, xmmword [0x140136a00]
lea rsi, [rsp + 0x60]
movaps xmmword [rsi + 0x30], xmm0
movaps xmmword [rsi + 0x20], xmm0
movaps xmmword [rsi + 0x10], xmm0
movaps xmmword [rsi], xmm0
lea rbp, [rsp + 0x30]
mov rax, qword [rbp]
mov rax, qword [rax + 0x20]
mov rcx, rbp
mov rdx, rsi
call qword [0x140177010]
mov rax, qword [rbp]
mov rcx, qword [rbp + 8]
mov edx, dword [rax + 0x2c]
call fcn.140083340
mov rcx, rbx
mov rdx, rsi
mov r8, rdi
call fcn.1400a01d0
mov esi, 1
mov rcx, qword [rsp + 0x38]
call fcn.140083300
mov rax, qword [rsp + 0x48]
test rax, rax
jne 0x14004ad79
mov rcx, qword [rsp + 0xa8]
xor rcx, rsp
call fcn.14009d8b0
mov eax, esi
movaps xmm6, xmmword [rsp + 0xb0]
movaps xmm7, xmmword [rsp + 0xc0]
movaps xmm8, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x30]
call qword [0x140177010]
jmp 0x14004ac1f
mov dword [rsp + 0x20], 0xcd
lea r9, str..._.._third_party_boringssl_src_crypto_fipsmodule_digest_digest.c
xor esi, esi
mov ecx, 0x1d
xor edx, edx
mov r8d, 0x41
call fcn.14011db40
jmp 0x14004acee
mov rax, qword [rax]
mov rcx, qword [rsp + 0x40]
call qword [0x140177010]
jmp 0x14004ad02
Function at 0x14004ed20
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
push rdi
sub rsp, 0x28
cmp qword [0x14016b470], 0
jne 0x14004ed5d
mov rsi, rdx
mov rdi, rcx
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
je 0x14004ed50
mov dword [rdi], eax
mov dword [0x14016b478], eax
mov qword [0x14016b470], rsi
cmp eax, 0xffffffff
setne al
add rsp, 0x28
pop rdi
pop rsi
ret
int3

Function at 0x14004fd40
Capabilities:
Allocate thread local storage

Disassembly:
push rsi
sub rsp, 0x20
mov rsi, rcx
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
cmp eax, 0xffffffff
je 0x14004fd55
mov dword [rsi], eax
cmp eax, 0xffffffff
setne al
add rsp, 0x20
pop rsi
ret
Function at 0x140054880
Capabilities:
Get thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x20
mov rsi, rcx
mov rdi, qword [0x14016c160]
cmp rdi, 1
jbe 0x1400548a9
mov rcx, rdi
mov rdx, rsi
add rsp, 0x20
pop rbx
pop rdi
pop rsi
jmp fcn.14007a990
lea rcx, [0x14016c160]
call fcn.14004ef20
test al, al
je 0x1400548ef
mov qword [0x14016c168], 0
lea rbx, [0x14016c160]
lea rdi, [0x14016c168]
mov rcx, rdi
xor edx, edx
call fcn.140041fa0
mov rcx, rbx
mov rdx, rdi
xor r8d, r8d
mov r9, rbx
call fcn.14004efc0
jmp 0x140054897
mov rdi, qword [0x14016c160]
jmp 0x140054897

Function at 0x140057270
Capabilities:
Get thread local storage value
Set thread local storage value

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x30
mov rdi, r8
mov r14, rdx
mov ebx, ecx
mov rax, qword [0x140158018]
xor rax, rsp
mov qword [rsp + 0x28], rax
lea rax, [0x140057240]
lea r8, [rsp + 0x20]
mov qword [r8], rax
lea rcx, [0x14016c1c8]
lea rdx, [0x1400570b0]
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_InitOnceExecuteOnce]
test eax, eax
je 0x140057369
cmp dword [0x14016c1d0], 0
jne 0x140057376
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ebp, eax
mov ecx, dword [0x14016c1d4]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rsi, rax
mov ecx, ebp
call qword [sym.imp.KERNEL32.dll_SetLastError]
test rsi, rsi
jne 0x14005731f
mov ecx, 0x20
call fcn.1400832c0
test rax, rax
je 0x140057376
mov rsi, rax
xorps xmm0, xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax], xmm0
mov ecx, dword [0x14016c1d4]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test eax, eax
je 0x14005736e
lea rbp, [0x14016c1d8]
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
movsxd rbx, ebx
lea rax, [0x14016c1e0]
mov qword [rax + rbx*8], rdi
mov rcx, rbp
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov qword [rsi + rbx*8], r14
mov esi, 1
mov rcx, qword [rsp + 0x28]
xor rcx, rsp
call fcn.14009d8b0
mov eax, esi
add rsp, 0x30
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
call fcn.1400aef40
mov rcx, rsi
call fcn.140083300
mov rcx, r14
mov rax, rdi
call qword [0x140177010]
xor esi, esi
jmp 0x14005734f

Function at 0x140057510
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
test rdx, rdx
je 0x14005754c
mov rsi, rdx
mov rdi, rcx
mov r14d, 0xffffffff
cmp rsi, r14
mov ebx, 0xffffffff
cmovb rbx, rsi
mov rcx, rdi
mov edx, ebx
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x140057556
add rdi, rbx
sub rsi, rbx
jne 0x14005752a
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
call fcn.1400aef40
int3
Function at 0x1400687c0
Capabilities:
Encode data using xor

Disassembly:
sub rsp, 0x88
movdqa xmmword [rsp + 0x70], xmm13
movdqa xmmword [rsp + 0x60], xmm12
movdqa xmmword [rsp + 0x50], xmm11
movdqa xmmword [rsp + 0x40], xmm10
movdqa xmmword [rsp + 0x30], xmm9
movdqa xmmword [rsp + 0x20], xmm8
movdqa xmmword [rsp + 0x10], xmm7
movdqa xmmword [rsp], xmm6
movdqu xmm0, xmmword [rcx]
movdqu xmm3, xmmword [rcx + 0x10]
movdqu xmm2, xmmword [rcx + 0x20]
movdqu xmm1, xmmword [rcx + 0x30]
movd xmm4, r8d
pxor xmm4, xmm0
add rdx, 0xffffffffffffffc0
add rcx, 0x40
cmp rdx, 0x40
jb 0x1400688f5
movabs rax, 0x154442bd4
movq xmm9, rax
movdqa xmm8, xmmword [0x14013ac00]
nop word cs:[rax + rax]
nop dword [rax]
movdqa xmm6, xmm4
pclmulqdq xmm6, xmm9, 0
movdqa xmm12, xmm3
pclmulqdq xmm12, xmm9, 0
movdqa xmm11, xmm2
pclmulqdq xmm11, xmm9, 0
movdqa xmm10, xmm1
pclmulqdq xmm10, xmm9, 0
movdqa xmm0, xmm4
pclmulqdq xmm0, xmm8, 0x11
movdqa xmm5, xmm3
pclmulqdq xmm5, xmm8, 0x11
movdqa xmm7, xmm2
pclmulqdq xmm7, xmm8, 0x11
movdqa xmm13, xmm1
pclmulqdq xmm13, xmm8, 0x11
movdqu xmm4, xmmword [rcx]
pxor xmm4, xmm6
pxor xmm4, xmm0
movdqu xmm3, xmmword [rcx + 0x10]
pxor xmm3, xmm12
pxor xmm3, xmm5
movdqu xmm2, xmmword [rcx + 0x20]
pxor xmm2, xmm11
pxor xmm2, xmm7
movdqu xmm1, xmmword [rcx + 0x30]
pxor xmm1, xmm10
pxor xmm1, xmm13
add rdx, 0xffffffffffffffc0
add rcx, 0x40
cmp rdx, 0x3f
ja 0x140068850
movabs rax, 0x1751997d0
movq xmm0, rax
movdqa xmm5, xmm4
pclmulqdq xmm5, xmm0, 0
pxor xmm5, xmm3
movdqa xmm3, xmmword [0x14013ac10]
pclmulqdq xmm4, xmm3, 0x11
pxor xmm4, xmm5
movdqa xmm5, xmm4
pclmulqdq xmm5, xmm0, 0
pxor xmm5, xmm2
pclmulqdq xmm4, xmm3, 0x11
pxor xmm4, xmm5
movdqa xmm2, xmm4
pclmulqdq xmm2, xmm0, 0
pxor xmm2, xmm1
pclmulqdq xmm4, xmm3, 0x11
pxor xmm4, xmm2
cmp rdx, 0x10
jb 0x140068984
movdqu xmm1, xmmword [rcx]
movdqa xmm2, xmm4
pclmulqdq xmm2, xmm0, 0
pxor xmm2, xmm1
pclmulqdq xmm4, xmm3, 0x11
pxor xmm4, xmm2
add rcx, 0x10
add rdx, 0xfffffffffffffff0
cmp rdx, 0xf
ja 0x14006895a
movdqa xmm0, xmmword [0x14013ac10]
pclmulqdq xmm0, xmm4, 1
psrldq xmm4, 8
pxor xmm4, xmm0
pxor xmm0, xmm0
pxor xmm1, xmm1
pblendw xmm1, xmm4, 3
psrldq xmm4, 4
movabs rax, 0x163cd6124
movq xmm2, rax
pclmulqdq xmm2, xmm1, 0
pxor xmm2, xmm4
pxor xmm1, xmm1
pblendw xmm1, xmm2, 3
pclmulqdq xmm1, xmmword [0x14013ac20], 0x10
pblendw xmm1, xmm0, 0xfc
movabs rax, 0x1db710641
movq xmm0, rax
pclmulqdq xmm0, xmm1, 0
pxor xmm0, xmm2
pextrd eax, xmm0, 1
movaps xmm6, xmmword [rsp]
movaps xmm7, xmmword [rsp + 0x10]
movaps xmm8, xmmword [rsp + 0x20]
movaps xmm9, xmmword [rsp + 0x30]
movaps xmm10, xmmword [rsp + 0x40]
movaps xmm11, xmmword [rsp + 0x50]
movaps xmm12, xmmword [rsp + 0x60]
movaps xmm13, xmmword [rsp + 0x70]
add rsp, 0x88
ret