Function at 0x10004db58
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 [0x1003479b8]
mov rcx, qword [0x100347a80]
xor r12d, r12d
mov qword [rax + 0x10], r12
movdqu xmmword [rax - 0x38], xmm0
cmp rcx, r12
je 0x10004dbbb
lea rdx, [0x100036858]
call qword [0x100347a68]
cmp al, r12b
je 0x10004dbbb
mov rcx, qword [0x100347a80]
lea rdx, [0x100036858]
xor r9d, r9d
xor r8d, r8d
call qword [0x100347a70]
lea rcx, [0x100349be8]
call fcn.10004ff54
mov r14d, 1
lea r15, [0x100331948]
cmp eax, r12d
mov edi, eax
jl 0x10004dfc1
mov edi, r12d
mov ebx, 0x80004005
cmp dword [0x100349ba8], r12d
jne 0x10004dc8f
lea rcx, [0x100349b80]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_InitializeCriticalSectionAndSpinCount]
cmp eax, r12d
jne 0x10004dc28
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r12d
jne 0x10004dc17
mov edi, ebx
jmp 0x10004dc34
movzx edi, ax
or edi, 0x80070000
cmp eax, r12d
cmovle edi, eax
jmp 0x10004dc2f
mov dword [0x100349ba8], r14d
cmp edi, r12d
jge 0x10004dc8f
mov rcx, qword [0x100331948]
cmp rcx, r15
je 0x10004dc5e
test byte [rcx + 0x3c], 2
je 0x10004dc5e
mov rcx, qword [rcx + 0x30]
lea r8, [0x1000215b0]
mov edx, 0xb
mov r9d, edi
call fcn.100050618
cmp edi, r12d
jge 0x10004dc8f
mov rcx, qword [0x100331948]
cmp rcx, r15
je 0x10004dc96
test byte [rcx + 0x3c], 2
je 0x10004dc96
mov rcx, qword [rcx + 0x30]
lea r8, [0x1000215b0]
mov edx, 0xa
mov r9d, edi
call fcn.100050618
jmp 0x10004dc96
mov dword [0x100349b78], r12d
cmp edi, r12d
jl 0x10004dfc1
mov ebp, r12d
jmp 0x10004dcbc
lea ecx, [rax + 2]
lock cmpxchg dword [0x100349b78], ecx
je 0x10004dcc9
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x100349b78]
test r14b, al
je 0x10004dca4
jmp 0x10004dcd9
lea rcx, [0x100349b80]
mov ebp, r14d
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea rcx, [0x1003477c0]
call fcn.100092e54
cmp eax, r12d
mov edi, eax
jge 0x10004dd16
mov rcx, qword [0x100331948]
cmp rcx, r15
je 0x10004dd16
test byte [rcx + 0x3c], 2
je 0x10004dd16
mov rcx, qword [rcx + 0x30]
lea r8, [0x100020f18]
mov edx, 0xa
mov r9d, eax
call fcn.100050618
cmp edi, r12d
jl 0x10004dfc5
mov ecx, 4
xor r9d, r9d
xor r8d, r8d
mov edx, 0x40000384
mov qword [rsp + 0x20], r12
call fcn.10004c308
lea r11, [0x10004e700]
lea r9, [0x100021890]
mov qword [rsp + 0x28], r11
lea r8, [0x100036948]
lea rdx, [0x100036980]
lea rcx, [0x100349bb0]
mov dword [rsp + 0x20], 0x21
call fcn.10004e514
cmp eax, r12d
mov edi, eax
jl 0x10004dfc5
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 [0x100349c28], rax
cmp rax, r12
je 0x10004ddc6
lea r8, [0x10004e6ec]
lea rcx, [0x100349c30]
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 0x10004de13
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r12d
jne 0x10004ddd5
mov edi, ebx
jmp 0x10004dde9
movzx edi, ax
or edi, 0x80070000
cmp eax, r12d
cmovle edi, eax
cmp edi, r12d
jge 0x10004de1c
mov rcx, qword [0x100331948]
cmp rcx, r15
je 0x10004de13
test byte [rcx + 0x3c], 2
je 0x10004de13
mov rcx, qword [rcx + 0x30]
lea r8, [0x100021560]
mov edx, 0x10
mov r9d, edi
call fcn.100050618
cmp edi, r12d
jl 0x10004dfc5
mov edi, r12d
call qword [sym.imp.KERNEL32.dll_CreateTimerQueue]
mov qword [0x100349c20], rax
cmp rax, r12
je 0x10004de5e
mov dword [rsp + 0x30], esi
lea r8, [0x10004e6f4]
lea rcx, [0x100349c18]
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 0x10004deab
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, r12d
jne 0x10004de6d
mov edi, ebx
jmp 0x10004de81
movzx edi, ax
or edi, 0x80070000
cmp eax, r12d
cmovle edi, eax
cmp edi, r12d
jge 0x10004deb4
mov rcx, qword [0x100331948]
cmp rcx, r15
je 0x10004deab
test byte [rcx + 0x3c], 2
je 0x10004deab
mov rcx, qword [rcx + 0x30]
lea r8, [0x100021560]
mov edx, 0xf
mov r9d, edi
call fcn.100050618
cmp edi, r12d
jl 0x10004dfc5
xor edx, edx
xor r8d, r8d
lea ecx, [rdx + 4]
call fcn.10004e1e4
cmp ebp, r12d
je 0x10004def6
lea rcx, [0x100349b80]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x10004dee0
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x100349b78]
lea ecx, [rax - 2]
lock cmpxchg dword [0x100349b78], ecx
jne 0x10004ded5
mov ebp, r12d
movdqu xmm0, xmmword [0x1003478d8]
mov rsi, r12
mov edi, r12d
movdqu xmmword [rsp + 0x50], xmm0
mov ebx, dword [rsp + 0x58]
cmp dword [0x100349bd8], r12d
je 0x10004df33
cmp ebx, r12d
jne 0x10004df33
lea rcx, [0x100349bb0]
lea rsi, [0x100349bb0]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ebx, r14d
cmp dword [0x100349be4], r12d
je 0x10004dfb1
cmp dword [0x100349be0], r12d
jne 0x10004dfb1
cmp ebx, r12d
je 0x10004df56
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 0x10004dfb1
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 0x10004dfb1
mov rcx, qword [0x100331948]
cmp rcx, r15
je 0x10004dfb1
test byte [rcx + 0x3c], 2
je 0x10004dfb1
mov rcx, qword [rcx + 0x30]
lea r8, [0x100021560]
mov edx, 0xc
mov r9d, edi
call fcn.100050618
cmp ebx, r12d
je 0x10004dfc5
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x10004dfc5
mov ebp, dword [rsp + 0x50]
cmp ebp, r12d
je 0x10004dffa
lea rcx, [0x100349b80]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x10004dfe4
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x100349b78]
lea ecx, [rax - 2]
lock cmpxchg dword [0x100349b78], ecx
jne 0x10004dfd9
mov ebp, r12d
cmp edi, r12d
jge 0x10004e035
lea rdx, [rsp + 0x98]
xor ecx, ecx
call fcn.10004d65c
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.10004c398
call fcn.10004e8e4
mov rcx, qword [0x100347a80]
mov dword [rsp + 0x90], edi
cmp rcx, r12
je 0x10004e090
lea rdx, [0x100036868]
call qword [0x100347a68]
cmp al, r12b
je 0x10004e090
mov rcx, qword [0x100347a80]
lea rax, [rsp + 0x90]
lea r9, [rsp + 0x40]
lea rdx, [0x100036868]
mov r8d, r14d
mov qword [rsp + 0x40], rax
mov dword [rsp + 0x48], 4
mov dword [rsp + 0x4c], r12d
call qword [0x100347a70]
cmp edi, r12d
jge 0x10004e0bf
mov rcx, qword [0x100331948]
cmp rcx, r15
je 0x10004e0bf
test byte [rcx + 0x3c], 2
je 0x10004e0bf
mov rcx, qword [rcx + 0x30]
lea r8, [0x100021560]
mov edx, 0x12
mov r9d, edi
call fcn.100050618
mov rax, qword [rsp + 0x98]
cmp rax, r12
je 0x10004e0e4
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 0x10004e116
lea rcx, [0x100349b80]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x10004e103
mov ecx, 0xa
call qword [sym.imp.KERNEL32.dll_Sleep]
mov eax, dword [0x100349b78]
lea ecx, [rax - 2]
lock cmpxchg dword [0x100349b78], ecx
jne 0x10004e0f8
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