joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1000c300
Capabilities:
Get disk information

Disassembly:
mov r11, rsp
sub rsp, 0x3e8
mov rax, qword [0x10050650]
mov qword [rsp + 0x390], rax
test rdx, rdx
mov qword [r11 - 0x10], rbp
mov qword [r11 - 0x28], r12
mov qword [r11 - 0x38], r14
movsxd r12, r9d
mov rbp, r8
mov r14, rdx
je 0x1000c550
test r8, r8
je 0x1000c550
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x30], r13
mov qword [r11 - 0x40], r15
call qword [sym.imp.KERNEL32.dll_GetLogicalDrives]
mov qword [rsp + 0x3e0], rbx
mov sil, 0x41
mov r15d, eax
mov qword [rsp + 0x3c8], rdi
nop
nop
movsx edi, sil
lea ecx, [rdi - 0x41]
movzx eax, cl
bt r15d, eax
jae 0x1000c51b
mov edx, edi
mov rcx, r14
call qword [sym.imp.msvcrt.dll_strchr]
test rax, rax
je 0x1000c51b
call fcn.10024840
lea rcx, [rsp + 0x61]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x60], 0
mov ebx, eax
call sub.msvcrt.dll_memset
cmp ebx, 1
je 0x1000c4e3
cmp ebx, 2
je 0x1000c4e3
cmp ebx, 3
je 0x1000c4e3
xor eax, eax
lea r8, str._c:_
lea rcx, [rsp + 0x50]
lea edx, [rax + 0x10]
mov r9d, edi
mov byte [rsp + 0x50], 0
mov qword [rsp + 0x51], rax
mov dword [rsp + 0x59], eax
mov word [rsp + 0x5d], ax
mov byte [rsp + 0x5f], al
call fcn.100235a0
lea rcx, [rsp + 0x171]
xor edx, edx
mov r8d, 0x104
mov byte [rsp + 0x170], 0
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x281]
xor edx, edx
mov r8d, 0x104
mov byte [rsp + 0x280], 0
call sub.msvcrt.dll_memset
xor ebx, ebx
lea ecx, [rbx + 1]
mov dword [rsp + 0x48], ebx
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x44], ebx
call qword [sym.imp.KERNEL32.dll_SetErrorMode]
mov dword [rsp + 0x38], 0x105
lea rax, [rsp + 0x280]
lea r9, [rsp + 0x48]
lea rdx, [rsp + 0x170]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x44]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x40]
mov r8d, 0x105
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_GetVolumeInformationA]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetErrorMode]
lea r9, [rsp + 0x170]
lea r8, str._s___c:__
lea rcx, [rsp + 0x60]
mov edx, 0x104
mov dword [rsp + 0x20], edi
call qword [sym.imp.msvcrt.dll__snprintf]
test r12d, r12d
je 0x1000c51b
lea r8d, [r12 - 1]
lea rdx, [rsp + 0x60]
mov rcx, rbp
call qword [sym.imp.msvcrt.dll_strncat]
mov byte [r12 + rbp - 1], bl
jmp 0x1000c51b
lea r8, [0x1003f9d4]
lea rcx, [rsp + 0x60]
mov r9d, edi
mov edx, 0x104
call qword [sym.imp.msvcrt.dll__snprintf]
test r12d, r12d
je 0x1000c51b
lea r8d, [r12 - 1]
lea rdx, [rsp + 0x60]
mov rcx, rbp
call qword [sym.imp.msvcrt.dll_strncat]
mov byte [r12 + rbp - 1], 0
inc sil
cmp sil, 0x5a
jle 0x1000c370
mov r15, qword [rsp + 0x3a8]
mov r13, qword [rsp + 0x3b8]
mov rdi, qword [rsp + 0x3c8]
mov rsi, qword [rsp + 0x3d0]
mov rbx, qword [rsp + 0x3e0]
mov r14, qword [rsp + 0x3b0]
mov r12, qword [rsp + 0x3c0]
mov rbp, qword [rsp + 0x3d8]
mov rcx, qword [rsp + 0x390]
call fcn.1003b040
add rsp, 0x3e8
ret
Function at 0x1000d560
Capabilities:
Encrypt data using dpapi

Disassembly:
mov r11, rsp
sub rsp, 0xd8
mov rax, qword [0x10050650]
mov qword [rsp + 0xb0], rax
test rcx, rcx
mov qword [r11 + 0x20], rbx
mov qword [r11 - 0x10], rsi
mov qword [r11 - 0x18], rdi
mov ebx, r8d
mov rsi, rcx
mov rdi, rdx
je 0x1000d6bb
test rdx, rdx
je 0x1000d6bb
test r8d, r8d
je 0x1000d6bb
xor eax, eax
mov qword [r11 - 8], rbp
xor ebp, ebp
mov qword [rsp + 0x50], rax
mov dword [rsp + 0x58], ebp
mov qword [r11 - 0x78], rax
movabs rax, 0x6400770070
lea r8, [rsp + 0x40]
lea rdx, [0x1003f9d0]
mov qword [r11 - 0x30], rax
xor eax, eax
lea rcx, [r11 - 0x70]
mov dword [rsp + 0x48], ebp
mov qword [rsp + 0x50], rbp
mov byte [rsp + 0x40], al
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::constructor_unsigned_short_int_const____ptr64__class_std::allocator_unsigned_short_int__const____ptr64____ptr64]
xor r11d, r11d
lea r8, [rsp + 0x40]
lea rcx, [rsp + 0x88]
mov rdx, rsi
mov byte [rsp + 0x40], r11b
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const____ptr64__class_std::allocator_char__const____ptr64____ptr64]
lea rcx, [rsp + 0x68]
mov rdx, rax
call fcn.10007480
lea rcx, [rsp + 0x88]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
mov r11, qword [rsp + 0x70]
mov eax, dword [rsp + 0x78]
test r11, r11
lea rdx, [rsp + 0xa8]
lea rcx, [rsp + 0x58]
cmove r11, qword [sym.imp.msvcp60.dll_unsigned_short_int_const__private:_static_unsigned_short_int_const____ptr64___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::_Nullstr_void_::_2::_C]
add eax, eax
xor r9d, r9d
mov dword [rsp + 0x58], eax
lea rax, [rsp + 0x48]
xor r8d, r8d
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], rbp
mov qword [rsp + 0x60], r11
call qword [sym.imp.CRYPT32.dll_CryptProtectData]
mov rbp, qword [rsp + 0xd0]
test eax, eax
setne sil
test sil, sil
je 0x1000d6a0
mov edx, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
mov r9d, ebx
mov r8, rdi
call fcn.1000c1f0
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_LocalFree]
lea rcx, [rsp + 0x68]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_unsigned_short_int__struct_std::char_traits_unsigned_short_int___class_std::allocator_unsigned_short_int__::destructor_void____ptr64]
mov al, sil
jmp 0x1000d6bd
xor al, al
mov rdi, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0xb0]
call fcn.1003b040
add rsp, 0xd8
ret
Function at 0x1000e0e0
Capabilities:
Hash data using djb2

Disassembly:
push rbx
sub rsp, 0x20
movzx eax, byte [r8]
mov rbx, rdx
mov r10, rcx
test eax, eax
mov r9d, 0x1505
je 0x1000e112
nop
nop
imul r9d, r9d, 0x21
inc r8
add r9d, eax
movzx eax, byte [r8]
test eax, eax
jne 0x1000e100
mov rcx, qword [rcx + 0x1a0]
mov rdx, qword [0x10050aa8]
mov rax, qword [rcx + 8]
cmp rax, rdx
je 0x1000e147
nop
nop
cmp dword [rax + 0x18], r9d
jae 0x1000e13c
mov rax, qword [rax + 0x10]
jmp 0x1000e142
mov rcx, rax
mov rax, qword [rax]
cmp rax, rdx
jne 0x1000e130
mov rax, qword [r10 + 0x1a0]
mov qword [rsp + 0x30], rcx
cmp rcx, rax
je 0x1000e165
cmp r9d, dword [rcx + 0x18]
jb 0x1000e165
lea rdx, [rsp + 0x30]
jmp 0x1000e16f
mov qword [rsp + 0x40], rax
lea rdx, [rsp + 0x40]
mov rdx, qword [rdx]
mov rcx, rbx
cmp rdx, rax
je 0x1000e18d
add rdx, 0x20
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
mov rax, rbx
add rsp, 0x20
pop rbx
ret
xor eax, eax
lea r8, [rsp + 0x30]
lea rdx, [0x1003fd49]
mov byte [rsp + 0x30], al
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const____ptr64__class_std::allocator_char__const____ptr64____ptr64]
mov rax, rbx
add rsp, 0x20
pop rbx
ret

Function at 0x1000f6e0
Capabilities:
Hash data using djb2

Disassembly:
push rbx
sub rsp, 0x40
movzx r9d, byte [rdx]
mov r10, r8
mov rbx, rcx
test r9d, r9d
mov eax, 0x1505
je 0x1000f712
nop
nop
imul eax, eax, 0x21
inc rdx
add eax, r9d
movzx r9d, byte [rdx]
test r9d, r9d
jne 0x1000f700
mov dword [rsp + 0x58], eax
xor eax, eax
lea r8, [rsp + 0x50]
lea rcx, [rsp + 0x20]
mov rdx, r10
mov byte [rsp + 0x50], al
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const____ptr64__class_std::allocator_char__const____ptr64____ptr64]
lea rcx, [rbx + 0x198]
lea rdx, [rsp + 0x58]
call fcn.10011ab0
lea rdx, [rsp + 0x20]
mov rcx, rax
call qword [sym.imp.msvcp60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______ptr64___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::operator_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char___const____ptr64____ptr64]
lea rcx, [rsp + 0x20]
call qword [sym.imp.msvcp60.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::destructor_void____ptr64]
add rsp, 0x40
pop rbx
ret
Function at 0x10016200
Capabilities:
Get common file path

Disassembly:
mov r11, rsp
sub rsp, 0x4b8
mov rax, qword [0x10050650]
mov qword [rsp + 0x480], rax
mov qword [r11 - 8], rbx
mov qword [r11 - 0x10], rbp
mov rbp, qword [rsp + 0x4e0]
xor eax, eax
mov qword [r11 - 0x18], rsi
mov qword [r11 - 0x20], rdi
mov rdi, rcx
mov rsi, r8
mov ebx, edx
mov qword [r11 - 0x28], r12
lea rcx, [r11 - 0x357]
xor edx, edx
mov r8d, 0x103
mov r12, r9
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x160], al
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x51]
xor edx, edx
mov r8d, 0x103
mov byte [rsp + 0x50], 0
call sub.msvcrt.dll_memset
lea rcx, [rsp + 0x272]
xor edx, edx
mov r8d, 0x206
mov word [rsp + 0x270], 0
call sub.msvcrt.dll_memset
lea r8, [rsp + 0x40]
mov edx, ebx
mov rcx, rdi
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov rcx, qword [rsp + 0x40]
lea rdx, [rsp + 0x160]
call qword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
lea r9, [rsp + 0x160]
lea r8, str._s_s.lnk
lea rcx, [rsp + 0x50]
mov edx, 0x104
mov qword [rsp + 0x20], rsi
call fcn.100235a0
xor ecx, ecx
call qword [sym.imp.ole32.dll_CoInitialize]
xor edx, edx
lea r11, [rsp + 0x30]
lea r9, [0x10040db8]
lea rcx, [0x10040dc8]
lea r8d, [rdx + 1]
mov qword [rsp + 0x20], r11
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov rdi, qword [rsp + 0x498]
test eax, eax
mov rsi, qword [rsp + 0x4a0]
mov rbx, qword [rsp + 0x4b0]
jns 0x1001633a
mov eax, 0xffffffff
jmp 0x100163e5
mov rcx, qword [rsp + 0x30]
lea r8, [rsp + 0x38]
lea rdx, [0x10040dd8]
mov rax, qword [rcx]
call qword [rax]
test eax, eax
jns 0x10016366
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov eax, 0xfffffffe
jmp 0x100163e5
mov rcx, qword [rsp + 0x30]
mov rdx, r12
mov rax, qword [rcx]
call qword [rax + 0xa0]
test rbp, rbp
je 0x1001638a
mov rcx, qword [rsp + 0x30]
mov rdx, rbp
mov rax, qword [rcx]
call qword [rax + 0x58]
lea rax, [rsp + 0x270]
lea r8, [rsp + 0x50]
mov r9d, 0xffffffff
xor edx, edx
xor ecx, ecx
mov dword [rsp + 0x28], 0x104
mov qword [rsp + 0x20], rax
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
lea rdx, [rsp + 0x270]
mov r8d, 1
call qword [rax + 0x30]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
mov rcx, qword [rsp + 0x30]
mov rax, qword [rcx]
call qword [rax + reloc.WS2_32.dll_recv]
xor eax, eax
mov r12, qword [rsp + 0x490]
mov rbp, qword [rsp + 0x4a8]
mov rcx, qword [rsp + 0x480]
call fcn.1003b040
add rsp, 0x4b8
ret
Function at 0x1001c2d0
Capabilities:
Terminate process
Terminate thread

Disassembly:
sub rsp, 0x28
mov rcx, qword [0x100503c8]
test rcx, rcx
je 0x1001c2e8
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
cmp byte [0x10050328], 0
je 0x1001c30a
mov rcx, qword [0x100503b0]
mov byte [0x10050328], 0
test rcx, rcx
je 0x1001c30a
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [0x10050320]
mov qword [rsp + 0x40], rbx
xor ebx, ebx
test rcx, rcx
mov qword [rsp + 0x48], rdi
lea rdi, [0x1003f428]
je 0x1001c3df
lea edx, [rbx + 0x64]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x1001c3df
mov rcx, qword [0x10050320]
lea rdx, [rsp + 0x38]
mov byte [0x10050328], bl
mov dword [rsp + 0x38], ebx
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
cmp dword [rsp + 0x38], 0x103
jne 0x1001c3df
mov rcx, qword [0x10050320]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_TerminateThread]
mov rcx, qword [0x10050320]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [0x10050329], bl
mov dword [0x10050318], ebx
je 0x1001c3df
lea rcx, [0x10050310]
mov qword [0x10050310], rdi
mov byte [0x10050328], bl
call fcn.10007230
mov rcx, qword [0x100503b0]
mov qword [0x10050320], rbx
test rcx, rcx
mov dword [0x10050318], ebx
je 0x1001c3cc
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [0x10050310]
mov qword [0x100503b0], rbx
call fcn.1003aa90
mov rcx, qword [0x10050498]
test rcx, rcx
je 0x1001c3f3
xor edx, edx
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
cmp byte [0x100503f8], bl
je 0x1001c413
mov rcx, qword [0x10050480]
mov byte [0x100503f8], bl
test rcx, rcx
je 0x1001c413
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov rcx, qword [0x100503f0]
test rcx, rcx
je 0x1001c4d7
mov edx, 0x64
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x1001c4d7
mov rcx, qword [0x100503f0]
lea rdx, [rsp + 0x38]
mov byte [0x100503f8], bl
mov dword [rsp + 0x38], ebx
call qword [sym.imp.KERNEL32.dll_GetExitCodeThread]
cmp dword [rsp + 0x38], 0x103
jne 0x1001c4d7
mov rcx, qword [0x100503f0]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_TerminateThread]
mov rcx, qword [0x100503f0]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp byte [0x100503f9], bl
mov dword [0x100503e8], ebx
je 0x1001c4d7
lea rcx, [0x100503e0]
mov qword [0x100503e0], rdi
mov byte [0x100503f8], bl
call fcn.10007230
mov rcx, qword [0x10050480]
mov qword [0x100503f0], rbx
test rcx, rcx
mov dword [0x100503e8], ebx
je 0x1001c4c4
call qword [sym.imp.KERNEL32.dll_CloseHandle]
lea rcx, [0x100503e0]
mov qword [0x10050480], rbx
call fcn.1003aa90
mov rdi, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x40]
add rsp, 0x28
ret
Function at 0x1001c9c0
Capabilities:
Print debug messages

Disassembly:
push rbx
sub rsp, 0x20
test edx, edx
mov qword [0x10050ad8], rcx
je 0x1001ca50
dec edx
je 0x1001ca11
dec edx
je 0x1001c9f9
dec edx
jne 0x1001ca97
lea rcx, str._cmgtc__DLL_THREAD_DETACH._n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, 1
add rsp, 0x20
pop rbx
ret
lea rcx, str._cmgtc__DLL_THREAD_ATTACH._n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, 1
add rsp, 0x20
pop rbx
ret
lea rcx, [0x10040bf0]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
lea rcx, str.cmgtc
call fcn.1001e790
lea rcx, str._cmgtc__DLL_PROCESS_ATTACH_____._n
mov qword [0x10050988], rax
mov qword [0x10059e10], rax
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, 1
add rsp, 0x20
pop rbx
ret
lea rcx, [0x10040c88]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov rcx, qword [0x10050ae8]
test rcx, rcx
je 0x1001ca8a
call fcn.1001cac0
mov rbx, qword [0x10050ae8]
test rbx, rbx
je 0x1001ca8a
mov rcx, rbx
call fcn.1001ccc0
mov rcx, rbx
call fcn.1003aa90
lea rcx, str._cmgtc__DLL_PROCESS_DETACH_____._n
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
mov eax, 1
add rsp, 0x20
pop rbx
ret

Function at 0x1001d3b0
Capabilities:
Terminate process

Disassembly:
mov rax, rsp
sub rsp, 0x68
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
mov qword [rax + 0x20], rdi
mov rdi, rcx
lea rsi, [0x10050ba0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_RtlCaptureContext]
mov rbx, qword [0x10050c98]
lea rdx, [rsp + 0x70]
mov rcx, rbx
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_RtlLookupFunctionEntry]
test rax, rax
je 0x1001d431
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x38], 0
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x30], rcx
lea rcx, [rsp + 0x48]
mov r9, rax
mov qword [rsp + 0x28], rcx
xor ecx, ecx
mov r8, rbx
mov qword [rsp + 0x20], rsi
call qword [sym.imp.KERNEL32.dll_RtlVirtualUnwind]
mov r11, qword [0x10050c98]
jmp 0x1001d44d
mov r11, qword [rsp + 0x68]
lea rax, [rsp + 0x68]
add rax, 8
mov qword [0x10050c98], r11
mov qword [0x10050c38], rax
mov rax, qword [0x10050650]
mov qword [0x10050b10], r11
mov qword [0x10050c20], rdi
mov dword [0x10050b00], 0xc0000409
mov dword [0x10050b04], 1
mov qword [rsp + 0x50], rax
mov rax, qword [0x10050648]
xor ecx, ecx
mov qword [rsp + 0x50], rax
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
lea rcx, [0x10040da8]
call qword [sym.imp.KERNEL32.dll_UnhandledExceptionFilter]
call qword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov edx, 0xc0000409
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_TerminateProcess]
mov rdi, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x78]
add rsp, 0x68
ret
cmp rcx, qword [0x10050650]
jne 0x1003b059
rol rcx, 0x10
test cx, 0xffff
jne 0x1003b055
ret
ror rcx, 0x10
jmp 0x1001d3b0
Function at 0x1001d4e0
Capabilities:
Hash data using djb2

Disassembly:
sub rsp, 0x28
test rcx, rcx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x20], r12
mov r12, rdx
mov rsi, rcx
je 0x1001d507
mov rcx, qword [rcx]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
movzx ecx, byte [r12]
mov qword [rsp + 0x30], rbx
mov ebx, 0x1505
test ecx, ecx
mov eax, ebx
mov rdx, r12
je 0x1001d52f
nop
imul eax, eax, 0x21
inc rdx
add eax, ecx
movzx ecx, byte [rdx]
test ecx, ecx
jne 0x1001d520
xor r8d, r8d
lea rcx, [rsi + 8]
mov qword [rsp + 0x48], rdi
xor edx, edx
nop
mov edi, dword [rcx]
test edi, edi
je 0x1001d55e
cmp eax, edi
je 0x1001d5fc
inc rdx
inc r8d
add rcx, 0x28
cmp rdx, 0x14
jl 0x1001d540
cmp r8d, 0x14
jge 0x1001d61b
movsxd rax, r8d
mov qword [rsp + 0x38], rbp
lea rdx, [0x10040e18]
lea rdi, [rax + rax*4]
xor eax, eax
mov r8, r12
lea rbp, [rsi + rdi*8 + 0xc]
mov rcx, rbp
mov qword [rbp], rax
mov qword [rbp + 8], rax
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], rax
call qword [sym.imp.msvcrt.dll_sprintf]
lea r12, [rsi + rdi*8 + 8]
xor eax, eax
mov rcx, 0xffffffffffffffff
mov rdi, rbp
mov dword [r12], 0
repne scasb al, byte [rdi]
not rcx
dec rcx
je 0x1001d5e4
movzx eax, byte [rbp]
test eax, eax
je 0x1001d5e0
nop
nop
imul ebx, ebx, 0x21
inc rbp
add ebx, eax
movzx eax, byte [rbp]
test eax, eax
jne 0x1001d5d0
mov dword [r12], ebx
test rsi, rsi
mov rbp, qword [rsp + 0x38]
je 0x1001d5f7
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rax, r12
jmp 0x1001d62b
test rsi, rsi
movsxd rax, r8d
lea rcx, [rax + rax*4]
lea rdi, [rsi + rcx*8 + 8]
je 0x1001d616
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rax, rdi
jmp 0x1001d62b
test rsi, rsi
je 0x1001d629
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
xor eax, eax
mov r12, qword [rsp + 0x20]
mov rdi, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
add rsp, 0x28
ret
Function at 0x1001e790
Capabilities:
Hash data using djb2

Disassembly:
sub rsp, 0x28
mov rax, qword [0x10051070]
mov qword [rsp + 0x40], rbx
mov rbx, rcx
test rax, rax
jne 0x1001e81c
mov qword [rsp + 0x48], rdi
lea rdi, [0x10051080]
test rdi, rdi
je 0x1001e7cb
mov rcx, qword [0x10051080]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rax, qword [0x10051070]
test rax, rax
jne 0x1001e805
mov ecx, 0x1750
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
test rax, rax
je 0x1001e7f0
mov rcx, rax
call fcn.1001e520
jmp 0x1001e7f2
xor eax, eax
lea rcx, [0x1001db60]
mov qword [0x10051070], rax
call fcn.1001f500
test rdi, rdi
mov rdi, qword [rsp + 0x48]
je 0x1001e81c
mov rcx, qword [0x10051080]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rcx, qword [0x10051070]
mov rdx, rbx
mov rbx, qword [rsp + 0x40]
add rsp, 0x28
jmp fcn.1001d4e0
Function at 0x1001e840
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
mov r11, rsp
sub rsp, 0x88
cmp dword [reloc.WS2_32.dll_closesocket], 1
mov qword [r11 - 0x18], rsi
mov rsi, rcx
ja 0x1001e9fe
cmp dword [rcx + 0x24], 1
ja 0x1001e9fe
lea rax, [r11 + 0x18]
mov qword [r11 - 8], rbx
mov qword [r11 - 0x38], rax
mov rax, qword [0x10051070]
test rax, rax
jne 0x1001e8f9
lea rbx, [0x10051080]
test rbx, rbx
je 0x1001e8ad
mov rcx, qword [0x10051080]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rax, qword [0x10051070]
test rax, rax
jne 0x1001e8e7
mov ecx, 0x1750
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
test rax, rax
je 0x1001e8d2
mov rcx, rax
call fcn.1001e520
jmp 0x1001e8d4
xor eax, eax
lea rcx, [0x1001db60]
mov qword [0x10051070], rax
call fcn.1001f500
test rbx, rbx
je 0x1001e8f9
mov rcx, qword [0x10051080]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov qword [rsp + 0x68], rdi
mov rdi, qword [0x10051070]
mov rbx, qword [rsp + 0x98]
test rdi, rdi
je 0x1001e920
mov rcx, qword [rdi]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov qword [rsp + 0x78], rbp
lea rbp, [0x100510a0]
xor edx, edx
mov rcx, rbp
mov r8d, 0x1388
call sub.msvcrt.dll_memset
mov r8, qword [rsp + 0x50]
mov rdx, rbx
mov rcx, rbp
call qword [sym.imp.msvcrt.dll_vsprintf]
lea rcx, [rdi + 0x34c]
xor edx, edx
mov r8d, 0x1400
call sub.msvcrt.dll_memset
xor r11d, r11d
lea rcx, [0x10051090]
mov qword [0x10051090], r11
mov qword [0x10051098], r11
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx r8d, word [0x1005109a]
movzx eax, word [0x1005109c]
movzx r9d, word [0x10051098]
mov qword [rsp + 0x40], rbp
lea r11, [rsi + 4]
lea rcx, str.trace
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r8d
lea rcx, [rdi + 0x34c]
lea r8, str.__02u:_02u:_02u___s____s__s_n
mov edx, 0x1388
call fcn.100235a0
lea rcx, [rdi + 0x34c]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rdi, rdi
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x80]
je 0x1001e9f9
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x88
ret
Function at 0x1001ea10
Capabilities:
Print debug messages

Disassembly:
mov qword [rsp + 0x10], rdx
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x20], r9
mov r11, rsp
sub rsp, 0x88
cmp dword [reloc.WS2_32.dll_closesocket], 2
mov qword [r11 - 0x18], rsi
mov rsi, rcx
ja 0x1001ebce
cmp dword [rcx + 0x24], 2
ja 0x1001ebce
lea rax, [r11 + 0x18]
mov qword [r11 - 8], rbx
mov qword [r11 - 0x38], rax
mov rax, qword [0x10051070]
test rax, rax
jne 0x1001eac9
lea rbx, [0x10051080]
test rbx, rbx
je 0x1001ea7d
mov rcx, qword [0x10051080]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov rax, qword [0x10051070]
test rax, rax
jne 0x1001eab7
mov ecx, 0x1750
call sub.msvcrt.dll_void____ptr64___cdecl_operator_new_unsigned_long_long_unsigned___int64__
test rax, rax
je 0x1001eaa2
mov rcx, rax
call fcn.1001e520
jmp 0x1001eaa4
xor eax, eax
lea rcx, [0x1001db60]
mov qword [0x10051070], rax
call fcn.1001f500
test rbx, rbx
je 0x1001eac9
mov rcx, qword [0x10051080]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov qword [rsp + 0x68], rdi
mov rdi, qword [0x10051070]
mov rbx, qword [rsp + 0x98]
test rdi, rdi
je 0x1001eaf0
mov rcx, qword [rdi]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
mov qword [rsp + 0x78], rbp
lea rbp, [0x100510a0]
xor edx, edx
mov rcx, rbp
mov r8d, 0x1388
call sub.msvcrt.dll_memset
mov r8, qword [rsp + 0x50]
mov rdx, rbx
mov rcx, rbp
call qword [sym.imp.msvcrt.dll_vsprintf]
lea rcx, [rdi + 0x34c]
xor edx, edx
mov r8d, 0x1400
call sub.msvcrt.dll_memset
xor r11d, r11d
lea rcx, [0x10051090]
mov qword [0x10051090], r11
mov qword [0x10051098], r11
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx r8d, word [0x1005109a]
movzx eax, word [0x1005109c]
movzx r9d, word [0x10051098]
mov qword [rsp + 0x40], rbp
lea r11, [rsi + 4]
lea rcx, str.debug
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r8d
lea rcx, [rdi + 0x34c]
lea r8, str.__02u:_02u:_02u___s____s__s_n
mov edx, 0x1388
call fcn.100235a0
lea rcx, [rdi + 0x34c]
call qword [sym.imp.KERNEL32.dll_OutputDebugStringA]
test rdi, rdi
mov rbp, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x80]
je 0x1001ebc9
mov rcx, qword [rdi]
call qword [sym.imp.KERNEL32.dll_ReleaseMutex]
mov rdi, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x88
ret