joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1400ba0a0
Capabilities:
Get thread local storage value

Disassembly:
push rbp
push rsi
push rdi
push r15
sub rsp, 0x28
mov ebp, r9d
mov edi, edx
mov rsi, rcx
test r8, r8
je 0x1400ba18a
movzx r15d, word [r8]
test r15w, r15w
je 0x1400ba18a
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x60], r13
xor r13d, r13d
test edx, edx
mov qword [rsp + 0x20], r14
cmovs edi, r13d
test rcx, rcx
je 0x1400ba10d
cmp word [rcx], r13w
je 0x1400ba10d
or rbx, 0xffffffffffffffff
inc rbx
cmp word [rcx + rbx*2], r13w
jne 0x1400ba0f5
cmp ebx, edi
cmovg ebx, edi
sub edi, ebx
jns 0x1400ba110
mov edi, r13d
jmp 0x1400ba110
mov ebx, r13d
call fcn.1400bcf30
lea ecx, [rbx + rdi]
mov edx, ebp
mov r12d, eax
call fcn.1400bc880
mov r14, rax
test r12d, r12d
je 0x1400ba135
mov ecx, r12d
call fcn.1400bcfa0
mov rsi, rax
mov r12, qword [rsp + 0x58]
test ebx, ebx
je 0x1400ba153
movsxd rcx, edi
movsxd r8, ebx
mov rdx, rsi
lea rcx, [r14 + rcx*2]
add r8, r8
call sub.msvcrt.dll_memmove
test edi, edi
je 0x1400ba169
mov edx, edi
mov rdi, r14
movzx eax, r15w
mov ecx, edx
lea r14, [r14 + rdx*2]
rep stosw word [rdi], ax
movsxd rax, ebx
mov rbx, qword [rsp + 0x50]
mov word [r14 + rax*2], r13w
mov r14, qword [rsp + 0x20]
mov r13, qword [rsp + 0x60]
add rsp, 0x28
pop r15
pop rdi
pop rsi
pop rbp
ret
mov ecx, r9d
add rsp, 0x28
pop r15
pop rdi
pop rsi
pop rbp
jmp fcn.1400bcce0

Function at 0x1400ba1f0
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x20
mov rdi, rcx
cmp edx, 0xd
jne 0x1400ba23d
mov ebx, IsNetDrive
mov edx, r8d
mov ecx, ebx
call fcn.1400bc880
mov rdx, rdi
mov rcx, rax
call fcn.1401f3afc
or rdx, 0xffffffffffffffff
inc rdx
cmp word [rax + rdx*2], 0
jne 0x1400ba220
sub ebx, edx
mov ecx, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400bc9c0
cmp edx, 1
je 0x1400ba25b
cmp edx, 0x18
je 0x1400ba25b
cmp edx, 3
je 0x1400ba256
cmp edx, 0x19
je 0x1400ba256
cmp edx, 0xb
jne 0x1400ba25e
movzx edi, cx
jmp 0x1400ba25e
movzx edi, cl
mov ebx, 0x20
mov edx, r8d
mov ecx, ebx
call fcn.1400bc880
lea rdx, [0x14023dcdc]
mov r8d, edi
mov rcx, rax
call fcn.1401f4370
sub ebx, eax
mov ecx, ebx
mov rbx, qword [rsp + 0x30]
add rsp, 0x20
pop rdi
jmp fcn.1400bc9c0

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

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rsi
push rdi
sub rsp, 0x20
mov rsi, rcx
mov ecx, dword [0x1405374f0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdi, rax
test rax, rax
jne 0x1400bb329
mov r8, qword [0x1405374e8]
mov rcx, qword [0x1404bbcd8]
lea edx, [rax + 8]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [0x1405374f0]
mov rdx, rax
mov rdi, rax
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rbx, qword [0x1405374e0]
jmp 0x1400bb315
mov rdx, qword [rbx + 0x18]
test rdx, rdx
je 0x1400bb312
mov rcx, qword [rbx + 0x10]
add rcx, rdi
call rdx
mov rbx, qword [rbx]
test rbx, rbx
jne 0x1400bb300
lea rcx, [0x1400bb20c]
mov rdx, rdi
call fcn.1401f3c6c
mov rbx, qword [rsp + 0x30]
lea rax, [rdi + rsi]
mov rsi, qword [rsp + 0x38]
add rsp, 0x20
pop rdi
ret
Function at 0x1400bb340
Capabilities:
Allocate thread local storage
Get thread local storage value
Set thread local storage value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x20
mov ebx, ecx
mov rbp, r8
mov rdi, rdx
and ecx, 7
je 0x1400bb36a
mov eax, 8
sub eax, ecx
add ebx, eax
mov rcx, qword [0x1405374e8]
test rcx, rcx
jne 0x1400bb3ad
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov rcx, qword [0x1404bbcd8]
movsxd r8, ebx
mov edx, 8
mov dword [0x1405374f0], eax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov ecx, dword [0x1405374f0]
mov rdx, rax
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
mov rcx, qword [0x1405374e8]
mov rsi, rcx
movsxd rax, ebx
add rcx, rax
mov qword [0x1405374e8], rcx
mov ecx, dword [0x1405374f0]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov r9, qword [0x1405374e8]
mov rcx, qword [0x1404bbcd8]
mov r8, rax
mov edx, 8
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov ecx, dword [0x1405374f0]
mov rdx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
test rdi, rdi
jne 0x1400bb401
test rbp, rbp
je 0x1400bb428
lea rcx, [0x1405374e0]
mov edx, 0x28
call fcn.1400bbfdc
mov qword [rax], rsi
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rbp
test rdi, rdi
je 0x1400bb428
lea rcx, [rbx + rsi]
call rdi
mov rbx, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
mov rax, rsi
mov rsi, qword [rsp + 0x40]
add rsp, 0x20
pop rdi
ret

Function at 0x1400bc0b0
Capabilities:
Allocate thread local storage

Disassembly:
sub rsp, 0x28
xor r8d, r8d
mov edx, 0x1000
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_HeapCreate]
mov qword [0x140539320], rax
call qword [sym.imp.KERNEL32.dll_TlsAlloc]
mov dword [0x1404b3c24], eax
call fcn.1400bd390
add rsp, 0x28
ret

Function at 0x1400bc210
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x48
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [rsp + 0x20], eax
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x30], rax
mov ecx, dword [rsp + 0x20]
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rax, qword [rsp + 0x30]
add rsp, 0x48
ret
Function at 0x1400bc2d0
Capabilities:
Get thread local storage value

Disassembly:
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x28], rax
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x10]
sub rcx, rax
mov rax, rcx
mov dword [rsp + 0x20], eax
mov rax, qword [rsp + 0x40]
cmp qword [rax], 0
jne 0x1400bc336
movsxd rax, dword [rsp + 0x20]
add rax, 0xa
mov r8, rax
xor edx, edx
mov rcx, qword [0x140539320]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rcx, qword [rsp + 0x40]
mov qword [rcx], rax
jmp 0x1400bc361
movsxd rax, dword [rsp + 0x20]
add rax, 0xa
mov r9, rax
mov rax, qword [rsp + 0x40]
mov r8, qword [rax]
xor edx, edx
mov rcx, qword [0x140539320]
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rcx, qword [rsp + 0x40]
mov qword [rcx], rax
movsxd rax, dword [rsp + 0x20]
xor edx, edx
mov ecx, 2
div rcx
movsxd rcx, dword [rsp + 0x48]
mov rdx, qword [rsp + 0x28]
add rcx, qword [rdx]
mov r8d, eax
mov rdx, rcx
mov rax, qword [rsp + 0x40]
mov rcx, qword [rax]
call fcn.1400bcfd0
movsxd rax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x28]
mov qword [rcx + 0x10], rax
add rsp, 0x38
ret

Function at 0x1400bc410
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x38
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
add rsp, 0x38
ret

Function at 0x1400bc440
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x38
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
add rsp, 0x38
ret

Function at 0x1400bc470
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x38
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov rax, qword [rax + 0x10]
add rax, 2
mov rcx, qword [rsp + 0x20]
mov qword [rcx + 0x10], rax
add rsp, 0x38
ret

Function at 0x1400bc4a0
Capabilities:
Get thread local storage value

Disassembly:
mov dword [rsp + 8], ecx
sub rsp, 0x38
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x20], rax
movsxd rax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x20]
mov qword [rcx + 0x10], rax
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x20]
add rax, qword [rcx + 0x10]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x28]
add rsp, 0x38
ret
Function at 0x1400bc5a0
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x28
cmp dword [0x1404b3c24], 0xffffffff
jne 0x1400bc5cf
call fcn.1400bc0b0
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, rax
lea rcx, [0x1400bc550]
call fcn.1401f3c6c
jmp 0x1400bc600
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
test rax, rax
jne 0x1400bc600
call fcn.1400bd390
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov rdx, rax
lea rcx, [0x1400bc550]
call fcn.1401f3c6c
add rsp, 0x28
ret

Function at 0x1400bc680
Capabilities:
Get thread local storage value

Disassembly:
sub rsp, 0x38
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x20]
add rax, qword [rcx + 0x10]
add rsp, 0x38
ret

Function at 0x1400bc880
Capabilities:
Get thread local storage value

Disassembly:
mov dword [rsp + 0x10], edx
mov dword [rsp + 8], ecx
sub rsp, 0x48
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x28], rax
cmp dword [rsp + 0x58], 0xffffffff
jne 0x1400bc8b0
mov rax, qword [rsp + 0x28]
mov eax, dword [rax + 0x10]
mov dword [rsp + 0x58], eax
movsxd rax, dword [rsp + 0x50]
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 0x10]
lea rax, [rcx + rax*2]
mov dword [rsp + 0x20], eax
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov rcx, qword [rcx + 8]
sub rcx, 4
cmp rax, rcx
jl 0x1400bc922
mov eax, dword [rsp + 0x20]
add eax, 0x4000
cdqe
mov rcx, qword [rsp + 0x28]
mov qword [rcx + 8], rax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
add rax, 0xa
mov r9, rax
mov rax, qword [rsp + 0x28]
mov r8, qword [rax]
xor edx, edx
mov rcx, qword [0x140539320]
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rcx, qword [rsp + 0x28]
mov qword [rcx], rax
jmp 0x1400bc980
mov rax, qword [rsp + 0x28]
cmp qword [rax + 8], 0x100000
jle 0x1400bc980
cmp dword [rsp + 0x20], 0x100000
jge 0x1400bc943
mov dword [rsp + 0x20], 0x100000
movsxd rax, dword [rsp + 0x20]
mov rcx, qword [rsp + 0x28]
mov qword [rcx + 8], rax
mov rax, qword [rsp + 0x28]
mov rax, qword [rax + 8]
add rax, 0xa
mov r9, rax
mov rax, qword [rsp + 0x28]
mov r8, qword [rax]
xor edx, edx
mov rcx, qword [0x140539320]
call qword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov rcx, qword [rsp + 0x28]
mov qword [rcx], rax
movsxd rax, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x28]
add rax, qword [rcx]
mov qword [rsp + 0x30], rax
movsxd rax, dword [rsp + 0x58]
movsxd rcx, dword [rsp + 0x50]
lea rax, [rax + rcx*2]
mov rcx, qword [rsp + 0x28]
mov qword [rcx + 0x10], rax
mov rax, qword [rsp + 0x30]
add rsp, 0x48
ret

Function at 0x1400bc9c0
Capabilities:
Get thread local storage value

Disassembly:
mov dword [rsp + 8], ecx
sub rsp, 0x38
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x20], rax
mov eax, dword [rsp + 0x40]
shl eax, 1
cdqe
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx + 0x10]
sub rcx, rax
mov rax, rcx
mov rcx, qword [rsp + 0x20]
mov qword [rcx + 0x10], rax
add rsp, 0x38
ret
Function at 0x1400bcce0
Capabilities:
Get thread local storage value

Disassembly:
mov dword [rsp + 8], ecx
sub rsp, 0x38
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x20], rax
movsxd rax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x20]
mov qword [rcx + 0x10], rax
movsxd rax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx]
xor edx, edx
mov word [rcx + rax], dx
add rsp, 0x38
ret

Function at 0x1400bcf30
Capabilities:
Get thread local storage value

Disassembly:
mov qword [rsp + 8], rcx
sub rsp, 0x38
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x20], rax
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
cmp qword [rsp + 0x40], rax
jb 0x1400bcf8b
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x20]
add rax, qword [rcx + 0x10]
cmp qword [rsp + 0x40], rax
ja 0x1400bcf8b
mov rax, qword [rsp + 0x20]
mov rax, qword [rax]
mov rcx, qword [rsp + 0x40]
sub rcx, rax
mov rax, rcx
inc rax
jmp 0x1400bcf8d
xor eax, eax
add rsp, 0x38
ret

Function at 0x1400bcfa0
Capabilities:
Get thread local storage value

Disassembly:
mov dword [rsp + 8], ecx
sub rsp, 0x38
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x20], rax
movsxd rax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x20]
mov rcx, qword [rcx]
lea rax, [rcx + rax - 1]
add rsp, 0x38
ret

Function at 0x1400bd050
Capabilities:
Get thread local storage value

Disassembly:
mov dword [rsp + 8], ecx
sub rsp, 0x38
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsGetValue]
mov qword [rsp + 0x20], rax
movsxd rax, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x20]
add rax, qword [rcx]
add rsp, 0x38
ret

Function at 0x1400bd390
Capabilities:
Set thread local storage value

Disassembly:
sub rsp, 0x38
mov r8d, SafeArrayPutElement
xor edx, edx
mov rcx, qword [0x140539320]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rsp + 0x20], rax
mov r8d, reloc.WS2_32.dll_recv
xor edx, edx
mov rcx, qword [0x140539320]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rcx, qword [rsp + 0x20]
mov qword [rcx], rax
mov rax, qword [rsp + 0x20]
mov qword [rax + 8], reloc.WS2_32.dll_recv
mov rax, qword [rsp + 0x20]
mov qword [rax + 0x10], 0
mov rdx, qword [rsp + 0x20]
mov ecx, dword [0x1404b3c24]
call qword [sym.imp.KERNEL32.dll_TlsSetValue]
add rsp, 0x38
ret
Function at 0x1400c1fb0
Capabilities:
Generate random numbers via rtlgenrandom
Query environment variable

Disassembly:
mov qword [rsp + 8], rbx
push rdi
sub rsp, 0x30
xor edi, edi
mov ebx, edi
nop
lea rcx, [rsp + 0x48]
mov edx, 4
mov dword [rsp + 0x48], edi
call sub.ADVAPI32.dll_SystemFunction036
test al, al
je 0x1400c2049
mov edx, dword [rsp + 0x48]
mov rcx, rdi
nop
cmp rbx, 4
jae 0x1400c2001
mov eax, edx
inc rbx
shr eax, cl
add rcx, 8
mov byte [rsp + rbx + 0x4f], al
cmp rcx, 0x20
jb 0x1400c1fe0
cmp rbx, 4
jb 0x1400c1fc0
lea rcx, str.EXPAT_ENTROPY_DEBUG
call qword [sym.imp.msvcrt.dll_getenv]
mov ebx, dword [rsp + 0x50]
test rax, rax
je 0x1400c20c3
movzx ecx, byte [rax]
cmp cl, byte [0x14023e1fc]
jne 0x1400c20c3
movzx eax, byte [rax + 1]
cmp al, byte [0x14023e1fd]
jne 0x1400c20c3
call qword [sym.imp.msvcrt.dll___iob_func]
lea r8, str.rand_s
jmp 0x1400c20a0
lea rcx, [rsp + 0x48]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
mov ebx, dword [rsp + 0x48]
xor ebx, dword [rsp + 0x4c]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
lea rcx, str.EXPAT_ENTROPY_DEBUG
xor eax, ebx
imul ebx, eax, 0x7fffffff
call qword [sym.imp.msvcrt.dll_getenv]
test rax, rax
je 0x1400c20c3
movzx ecx, byte [rax]
cmp cl, byte [0x14023e1fc]
jne 0x1400c20c3
movzx eax, byte [rax + 1]
cmp al, byte [0x14023e1fd]
jne 0x1400c20c3
call qword [sym.imp.msvcrt.dll___iob_func]
lea r8, str.fallback_4_
lea rdx, str.Entropy:__s_____0x_0lx___lu_bytes__n
lea rcx, [rax + 0x60]
mov r9d, 8
mov dword [rsp + 0x28], 4
mov dword [rsp + 0x20], ebx
call qword [sym.imp.msvcrt.dll_fprintf]
mov eax, ebx
mov rbx, qword [rsp + 0x40]
add rsp, 0x30
pop rdi
ret
Function at 0x1400c6800
Capabilities:
Encode data using xor

Disassembly:
movzx edx, byte [rcx + 0x28]
mov r9, qword [rcx + 0x30]
mov r8, rcx
sub dl, cl
sub dl, 0x20
movsx rax, dl
add r9, rax
movsx eax, dl
shl r9, 0x38
dec eax
cmp eax, 6
ja case.default.0x1400c6838
lea rdx, [0x140000000]
cdqe
mov ecx, dword [rdx + rax*4 + 0xc6950]
add rcx, rdx
jmp rcx
movzx eax, byte [r8 + 0x26]
shl rax, 0x30
or r9, rax
movzx eax, byte [r8 + 0x25]
shl rax, 0x28
or r9, rax
movzx eax, byte [r8 + 0x24]
shl rax, 0x20
or r9, rax
movzx eax, byte [r8 + 0x23]
shl rax, 0x18
or r9, rax
movzx eax, byte [r8 + 0x22]
shl rax, 0x10
or r9, rax
movzx eax, byte [r8 + 0x21]
shl rax, 8
or r9, rax
movzx eax, byte [r8 + 0x20]
or r9, rax
xor qword [r8 + 0x18], r9
mov r10, qword [r8]
mov rcx, qword [r8 + 8]
mov rax, qword [r8 + 0x18]
mov rdx, qword [r8 + 0x10]
mov r11d, 2
add r10, rcx
add rdx, rax
rol rcx, 0xd
xor rcx, r10
rol rax, 0x10
xor rax, rdx
add rdx, rcx
rol r10, 0x20
add r10, rax
mov qword [r8], r10
rol rcx, 0x11
xor rcx, rdx
rol rax, 0x15
xor rax, r10
rol rdx, 0x20
dec r11
jne 0x1400c68a3
xor qword [r8], r9
mov r9, qword [r8]
xor rdx, 0xff
mov qword [r8 + 0x10], rdx
mov qword [r8 + 0x18], rax
mov qword [r8 + 8], rcx
lea r10d, [r11 + 4]
nop dword [rax + rax]
add r9, rcx
add rdx, rax
rol rcx, 0xd
xor rcx, r9
rol rax, 0x10
xor rax, rdx
add rdx, rcx
rol r9, 0x20
add r9, rax
mov qword [r8], r9
rol rcx, 0x11
xor rcx, rdx
rol rax, 0x15
xor rax, r9
rol rdx, 0x20
dec r10
jne 0x1400c6900
mov qword [r8 + 0x18], rax
xor rax, rdx
mov qword [r8 + 8], rcx
xor rax, rcx
mov qword [r8 + 0x10], rdx
xor rax, r9
ret

Function at 0x1400c69e0
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rsi
lea rbx, [rdx + r8]
mov qword [rsp + 0x10], rbp
mov r11, rcx
lea rax, [rcx + 0x28]
mov qword [rsp + 0x18], rdi
cmp rdx, rbx
jae 0x1400c6a19
mov r8, qword [rax]
cmp r8, rax
jae 0x1400c6a22
movzx ecx, byte [rdx]
inc rdx
mov byte [r8], cl
inc qword [rax]
cmp rdx, rbx
jb 0x1400c6a00
cmp qword [rax], rax
jb 0x1400c6af8
movzx ecx, byte [r11 + 0x26]
movzx edi, byte [r11 + 0x27]
mov r10, qword [r11]
mov r8, qword [r11 + 8]
mov r9, qword [r11 + 0x10]
shl rdi, 8
or rdi, rcx
movzx ecx, byte [r11 + 0x25]
lea rbp, [r11 + 0x20]
shl rdi, 8
mov esi, 2
or rdi, rcx
movzx ecx, byte [r11 + 0x24]
shl rdi, 8
or rdi, rcx
movzx ecx, byte [r11 + 0x23]
shl rdi, 8
or rdi, rcx
movzx ecx, byte [r11 + 0x22]
shl rdi, 8
or rdi, rcx
movzx ecx, byte [r11 + 0x21]
shl rdi, 8
or rdi, rcx
movzx ecx, byte [rbp]
shl rdi, 8
or rdi, rcx
xor qword [r11 + 0x18], rdi
mov rcx, qword [r11 + 0x18]
nop word [rax + rax]
add r10, r8
add r9, rcx
rol r8, 0xd
xor r8, r10
rol rcx, 0x10
xor rcx, r9
add r9, r8
rol r10, 0x20
add r10, rcx
mov qword [r11], r10
rol r8, 0x11
xor r8, r9
rol rcx, 0x15
xor rcx, r10
rol r9, 0x20
dec rsi
jne 0x1400c6aa0
xor qword [r11], rdi
add qword [r11 + 0x30], 8
mov qword [r11 + 0x18], rcx
mov qword [r11 + 8], r8
mov qword [r11 + 0x10], r9
mov qword [rax], rbp
cmp rdx, rbx
jb 0x1400c6a00
mov rdi, qword [rsp + 0x18]
mov rbp, qword [rsp + 0x10]
mov rbx, qword [rsp + 0x20]
mov rax, r11
pop rsi
ret
Function at 0x1400da9d0
Capabilities:
Hash data with crc32

Disassembly:
sub rsp, 8
mov r11d, edx
mov r10, rcx
mov r8d, 0x80000000
test rcx, rcx
je 0x1400daa3f
mov qword [rsp], rbx
lea rbx, [0x140243d70]
test r10b, 1
je 0x1400daa33
mov ecx, r11d
mov eax, r8d
mov edx, 0x80000000
and ecx, 0x1f
xor r8d, r8d
mov r9d, dword [rbx + rcx*4]
nop dword [rax + rax]
test r9d, edx
je 0x1400daa20
lea ecx, [rdx - 1]
xor r8d, eax
test r9d, ecx
je 0x1400daa33
shr edx, 1
test al, 1
je 0x1400daa2f
shr eax, 1
xor eax, 0xedb88320
jmp 0x1400daa10
shr eax, 1
jmp 0x1400daa10
inc r11d
sar r10, 1
jne 0x1400da9f0
mov rbx, qword [rsp]
mov eax, r8d
add rsp, 8
ret
Function at 0x1400fcc30
Capabilities:
Query environment variable

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x20], rsi
push rdi
sub rsp, 0x20
xor esi, esi
mov rdi, rcx
mov qword [rcx + 8], rsi
call fcn.1400ff200
mov edx, 0xa0
mov rcx, rdi
mov dword [rsp + 0x38], eax
call fcn.1400ff1d0
mov rbx, rax
test rax, rax
jne 0x1400fcc86
mov rcx, rdi
call fcn.1400ff210
mov rcx, qword [rdi]
mov dword [rcx + 0x28], gethostname
mov rcx, qword [rdi]
mov dword [rcx + 0x2c], esi
mov rdx, qword [rdi]
mov rcx, rdi
call qword [rdx]
mov dword [rbx + 0x5c], 0x3b9aca00
lea rax, [fcn.1400fc7d0]
lea rcx, str.JPEGMEM
mov qword [rbx], rax
lea rax, [fcn.1400fc600]
mov qword [rbx + 8], rax
lea rax, [fcn.1400fc6f0]
mov qword [rbx + 0x10], rax
lea rax, [fcn.1400fc510]
mov qword [rbx + 0x18], rax
lea rax, [0x1400fd050]
mov qword [rbx + 0x20], rax
lea rax, [0x1400fcfa0]
mov qword [rbx + 0x28], rax
lea rax, [0x1400fcdc0]
mov qword [rbx + 0x30], rax
lea rax, [0x1400fc2c0]
mov qword [rbx + 0x38], rax
lea rax, [0x1400fc060]
mov qword [rbx + 0x40], rax
lea rax, [0x1400fcae0]
mov qword [rbx + 0x48], rax
lea rax, [0x1400fd100]
mov qword [rbx + 0x50], rax
mov eax, dword [rsp + 0x38]
mov dword [rbx + 0x58], eax
mov qword [rbx + 0x68], rsi
mov qword [rbx + 0x78], rsi
mov qword [rbx + 0x60], rsi
mov qword [rbx + 0x70], rsi
mov qword [rbx + 0x80], rsi
mov qword [rbx + 0x88], rsi
mov qword [rbx + 0x90], 0xa0
mov qword [rdi + 8], rbx
call qword [sym.imp.msvcrt.dll_getenv]
test rax, rax
je 0x1400fcd90
lea r9, [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, str._ld_c
mov rcx, rax
mov byte [rsp + 0x30], 0x78
call qword [sym.imp.msvcrt.dll_sscanf]
test eax, eax
jle 0x1400fcd90
movzx eax, byte [rsp + 0x30]
sub al, 0x4d
test al, 0xdf
jne 0x1400fcd83
imul eax, dword [rsp + 0x38], 0x3e8
jmp 0x1400fcd87
mov eax, dword [rsp + 0x38]
imul eax, eax, 0x3e8
mov dword [rbx + 0x58], eax
mov rbx, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x48]
add rsp, 0x20
pop rdi
ret
Function at 0x1401720e0
Capabilities:
Reference sql statements

Disassembly:
mov rax, rsp
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rbp
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
push r14
sub rsp, 0x40
mov r14d, dword [rsp + 0x70]
mov ebx, r8d
mov rbp, r9
mov dword [rax - 0x18], r14d
mov qword [rax - 0x20], r9
mov rdi, rdx
mov r9, rdx
mov r8, rdx
lea rdx, str.SELECT_1_FROM___w_.sqlite_master_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual___AND_sqlite_rename_test__Q__sql__type__name___d___Q___d_NULL
mov rsi, rcx
mov byte [rcx + 0x1c], 1
mov dword [rax - 0x28], ebx
call fcn.1401a4990
test ebx, ebx
jne 0x140172149
lea rdx, str.SELECT_1_FROM_temp.sqlite_master_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual___AND_sqlite_rename_test__Q__sql__type__name__1___Q___d_NULL
mov r9, rbp
mov r8, rdi
mov rcx, rsi
mov dword [rsp + 0x20], r14d
call fcn.1401a4990
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
mov rdi, qword [rsp + 0x68]
add rsp, 0x40
pop r14
ret
Function at 0x140192490
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbx
push rsi
push rdi
push r14
sub rsp, 0x28
xor r11d, r11d
mov rdi, r8
mov r14, rdx
mov ebx, r11d
mov rsi, rcx
cmp dword [rcx + 0x28], ebx
jle 0x140192599
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x20], r15
lea r15, [0x14024c270]
lea r12, str.main
nop
mov r9d, ebx
cmp ebx, 2
jge 0x1401924dc
xor r9d, 1
mov rax, qword [rsi + 0x20]
movsxd rcx, r9d
shl rcx, 5
mov rbp, qword [rcx + rax + 0x18]
test rdi, rdi
je 0x140192511
mov r8, qword [rcx + rax]
mov r10, rdi
sub r10, r8
nop dword [rax + rax]
movzx ecx, byte [r8]
movzx eax, byte [r10 + r8]
cmp ecx, eax
jne 0x14019254c
test ecx, ecx
jne 0x14019255a
lea rcx, [rbp + 0x20]
xor r8d, r8d
mov rdx, r14
call fcn.140141570
mov r11, qword [rax + 0x10]
test r11, r11
jne 0x140192530
inc ebx
cmp ebx, dword [rsi + 0x28]
jl 0x1401924d0
mov r12, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
mov r15, qword [rsp + 0x20]
mov rax, r11
add rsp, 0x28
pop r14
pop rdi
pop rsi
pop rbx
ret
movzx edx, byte [rax + r15]
movzx ecx, byte [rcx + r15]
cmp ecx, edx
jne 0x14019255f
inc r8
jmp 0x140192500
test r9d, r9d
jne 0x140192529
mov r9, rdi
mov rax, r12
sub r9, r12
nop dword [rax]
movzx edx, byte [rax]
movzx ecx, byte [r9 + rax]
cmp edx, ecx
jne 0x140192585
test edx, edx
je 0x140192511
inc rax
jmp 0x140192570
movzx r8d, byte [rcx + r15]
movzx edx, byte [rdx + r15]
cmp edx, r8d
jne 0x140192529
inc rax
jmp 0x140192570
mov rax, r11
add rsp, 0x28
pop r14
pop rdi
pop rsi
pop rbx
ret
Function at 0x1401dd340
Capabilities:
Create thread

Disassembly:
push rbx
sub rsp, 0x20
cmp dword [rcx + 0x20], 0
mov rbx, rcx
je 0x1401dd39d
mov rcx, qword [rcx]
call fcn.1401df830
mov ecx, eax
test eax, eax
jne 0x1401dd3bb
movups xmm1, xmmword [rbx + 0x28]
movups xmm0, xmmword [rbx + 0x38]
movups xmmword [rbx + 0x28], xmm0
movups xmmword [rbx + 0x38], xmm1
mov rax, qword [rbx + 0x10]
cmp qword [rbx + 0x30], rax
jne 0x1401dd386
mov eax, ecx
mov dword [rbx + 0x1c], 1
add rsp, 0x20
pop rbx
ret
mov rcx, qword [rbx]
lea rdx, [0x1401dd320]
mov r8, rbx
add rsp, 0x20
pop rbx
jmp fcn.1401b6cd0
call fcn.1401dd010
movups xmm0, xmmword [rbx + 0x38]
movups xmmword [rbx + 0x28], xmm0
mov rcx, qword [rbx + 0x10]
cmp qword [rbx + 0x30], rcx
jne 0x1401dd3bb
mov dword [rbx + 0x1c], 1
add rsp, 0x20
pop rbx
ret