Function at 0x100059a28
Capabilities:
Listen for remote procedure calls

Disassembly:
mov rax, rsp
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x60
movdqu xmm0, xmmword [0x1004c4228]
mov rcx, qword [0x1004c42f8]
xor r12d, r12d
mov qword [rax + 0x10], r12
movdqu xmmword [rax - 0x38], xmm0
cmp rcx, r12
je 0x100059a8b
lea rdx, [0x100040518]
call qword [0x1004c42d0]
cmp al, r12b
je 0x100059a8b
mov rcx, qword [0x1004c42f8]
lea rdx, [0x100040518]
xor r9d, r9d
xor r8d, r8d
call qword [0x1004c42d8]
lea rcx, [0x1004c6580]
call fcn.10005bc8c
mov r14d, 1
lea r15, [0x1004a9500]
cmp eax, r12d
mov edi, eax
jl 0x100059e91
mov edi, r12d
mov ebx, 0x80004005
cmp dword [0x1004c6540], r12d
jne 0x100059b5f
lea rcx, [0x1004c6518]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
cmp eax, r12d
jne 0x100059af8
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r12d
jne 0x100059ae7
mov edi, ebx
jmp 0x100059b04
movzx edi, ax
or edi, 0x80070000
cmp eax, r12d
cmovle edi, eax
jmp 0x100059aff
mov dword [0x1004c6540], r14d
cmp edi, r12d
jge 0x100059b5f
mov rcx, qword [0x1004a9500]
cmp rcx, r15
je 0x100059b2e
test byte [rcx + 0x3c], 2
je 0x100059b2e
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003fa00]
mov edx, 0xb
mov r9d, edi
call fcn.10005c358
cmp edi, r12d
jge 0x100059b5f
mov rcx, qword [0x1004a9500]
cmp rcx, r15
je 0x100059b66
test byte [rcx + 0x3c], 2
je 0x100059b66
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003fa00]
mov edx, 0xa
mov r9d, edi
call fcn.10005c358
jmp 0x100059b66
mov dword [0x1004c6510], r12d
cmp edi, r12d
jl 0x100059e91
mov ebp, r12d
jmp 0x100059b8c
lea ecx, [rax + 2]
lock cmpxchg dword [0x1004c6510], ecx
je 0x100059b99
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x1004c6510]
test r14b, al
je 0x100059b74
jmp 0x100059ba9
lea rcx, [0x1004c6518]
mov ebp, r14d
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [0x1004c3ff0]
call fcn.1000a18a8
cmp eax, r12d
mov edi, eax
jge 0x100059be6
mov rcx, qword [0x1004a9500]
cmp rcx, r15
je 0x100059be6
test byte [rcx + 0x3c], 2
je 0x100059be6
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f3d8]
mov edx, 0xa
mov r9d, eax
call fcn.10005c358
cmp edi, r12d
jl 0x100059e95
mov ecx, 4
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000384
mov qword [rsp + 0x20], r12
call fcn.1000582dc
lea r11, [0x10005a5cc]
lea r9, [0x100040140]
mov qword [rsp + 0x28], r11
lea r8, [0x100040608]
lea rdx, [0x100040648]
lea rcx, [0x1004c6548]
mov dword [rsp + 0x20], 0x21
call fcn.10005a3e4
cmp eax, r12d
mov edi, eax
jl 0x100059e95
xor r9d, r9d
xor r8d, r8d
mov edx, r14d
xor ecx, ecx
mov edi, r12d
call qword [sym.imp.KERNEL32.dll_CreateEventW]
mov esi, 8
mov qword [0x1004c65c8], rax
cmp rax, r12
je 0x100059c96
lea r8, [0x10005a5b8]
lea rcx, [0x1004c65d0]
xor r9d, r9d
mov rdx, rax
mov dword [rsp + 0x28], esi
or dword [rsp + 0x20], 0xffffffff
call qword [sym.imp.KERNEL32.dll_RegisterWaitForSingleObject]
cmp eax, r12d
jne 0x100059ce3
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r12d
jne 0x100059ca5
mov edi, ebx
jmp 0x100059cb9
movzx edi, ax
or edi, 0x80070000
cmp eax, r12d
cmovle edi, eax
cmp edi, r12d
jge 0x100059cec
mov rcx, qword [0x1004a9500]
cmp rcx, r15
je 0x100059ce3
test byte [rcx + 0x3c], 2
je 0x100059ce3
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f9b0]
mov edx, 0x10
mov r9d, edi
call fcn.10005c358
cmp edi, r12d
jl 0x100059e95
mov edi, r12d
call qword [sym.imp.KERNEL32.dll_CreateTimerQueue]
mov qword [0x1004c65b8], rax
cmp rax, r12
je 0x100059d2e
mov dword [rsp + 0x30], esi
lea r8, [0x10005a5c0]
lea rcx, [0x1004c65b0]
xor r9d, r9d
mov rdx, rax
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], r12d
call qword [sym.imp.KERNEL32.dll_CreateTimerQueueTimer]
cmp eax, r12d
jne 0x100059d7b
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r12d
jne 0x100059d3d
mov edi, ebx
jmp 0x100059d51
movzx edi, ax
or edi, 0x80070000
cmp eax, r12d
cmovle edi, eax
cmp edi, r12d
jge 0x100059d84
mov rcx, qword [0x1004a9500]
cmp rcx, r15
je 0x100059d7b
test byte [rcx + 0x3c], 2
je 0x100059d7b
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f9b0]
mov edx, 0xf
mov r9d, edi
call fcn.10005c358
cmp edi, r12d
jl 0x100059e95
xor edx, edx
xor r8d, r8d
lea ecx, [rdx + 4]
call fcn.10005a0b4
cmp ebp, r12d
je 0x100059dc6
lea rcx, [0x1004c6518]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x100059db0
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x1004c6510]
lea ecx, [rax - 2]
lock cmpxchg dword [0x1004c6510], ecx
jne 0x100059da5
mov ebp, r12d
movdqu xmm0, xmmword [0x1004c4148]
mov rsi, r12
mov edi, r12d
movdqu xmmword [rsp + 0x50], xmm0
mov ebx, dword [rsp + 0x58]
cmp dword [0x1004c6570], r12d
je 0x100059e03
cmp ebx, r12d
jne 0x100059e03
lea rcx, [0x1004c6548]
lea rsi, [0x1004c6548]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, r14d
cmp dword [0x1004c657c], r12d
je 0x100059e81
cmp dword [0x1004c6578], r12d
jne 0x100059e81
cmp ebx, r12d
je 0x100059e26
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ebx, r12d
xor r8d, r8d
mov ecx, r14d
lea edx, [r8 + 0x64]
call qword [sym.imp.RPCRT4.dll_RpcServerListen]
cmp eax, r12d
je 0x100059e81
mov ecx, eax
call qword [sym.imp.RPCRT4.dll_I_RpcMapWin32Status]
movzx edi, ax
or edi, 0x80070000
cmp eax, r12d
cmovle edi, eax
cmp edi, r12d
jge 0x100059e81
mov rcx, qword [0x1004a9500]
cmp rcx, r15
je 0x100059e81
test byte [rcx + 0x3c], 2
je 0x100059e81
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f9b0]
mov edx, 0xc
mov r9d, edi
call fcn.10005c358
cmp ebx, r12d
je 0x100059e95
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x100059e95
mov ebp, dword [rsp + 0x50]
cmp ebp, r12d
je 0x100059eca
lea rcx, [0x1004c6518]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x100059eb4
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x1004c6510]
lea ecx, [rax - 2]
lock cmpxchg dword [0x1004c6510], ecx
jne 0x100059ea9
mov ebp, r12d
cmp edi, r12d
jge 0x100059f05
lea rdx, [rsp + 0x98]
xor ecx, ecx
call fcn.100059350
mov r9, qword [rsp + 0x98]
mov ecx, r14d
mov r8d, edi
mov edx, 0xc00003e9
mov qword [rsp + 0x28], r12
mov qword [rsp + 0x20], r12
call fcn.10005836c
call fcn.10005a7c8
mov rcx, qword [0x1004c42f8]
mov dword [rsp + 0x90], edi
cmp rcx, r12
je 0x100059f60
lea rdx, [0x100040528]
call qword [0x1004c42d0]
cmp al, r12b
je 0x100059f60
mov rcx, qword [0x1004c42f8]
lea rax, [rsp + 0x90]
lea r9, [rsp + 0x40]
lea rdx, [0x100040528]
mov r8d, r14d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x48], 4
mov dword [rsp + 0x4c], r12d
call qword [0x1004c42d8]
cmp edi, r12d
jge 0x100059f8f
mov rcx, qword [0x1004a9500]
cmp rcx, r15
je 0x100059f8f
test byte [rcx + 0x3c], 2
je 0x100059f8f
mov rcx, qword [rcx + 0x30]
lea r8, [0x10003f9b0]
mov edx, 0x12
mov r9d, edi
call fcn.10005c358
mov rax, qword [rsp + 0x98]
cmp rax, r12
je 0x100059fb4
lea rbx, [rax - 4]
call qword [sym.imp.KERNEL32.dll_GetProcessHeap]
mov r8, rbx
mov rcx, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp ebp, r12d
je 0x100059fe6
lea rcx, [0x1004c6518]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x100059fd3
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x1004c6510]
lea ecx, [rax - 2]
lock cmpxchg dword [0x1004c6510], ecx
jne 0x100059fc8
lea r11, [rsp + 0x60]
mov eax, edi
mov rbx, qword [r11 + 0x40]
mov rbp, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret