Function at 0x617ef0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x168
mov rax, qword [rcx + 0x4f0]
test rax, rax
mov r14, rcx
mov qword [rsp + 0x90], rax
je 0x617f5f
lea rdx, [rax + 8]
mov rsi, rax
mov eax, dword [rsi + 8]
test eax, eax
je 0x617f33
mov ecx, eax
inc ecx
lock cmpxchg dword [rsi + 8], ecx
jne 0x617f24
test eax, eax
je 0x617f5f
mov r13, qword [r14 + 0x4e8]
test r13, r13
je 0x617f4d
test byte [r13 + 0x5b0], 1
je 0x617f73
mov eax, 0xffffffff
lock xadd dword [rdx], eax
cmp eax, 1
je 0x618a2a
add rsp, 0x168
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
movabs r8, 0x28f5c28f5c28f5c3
mov edx, dword [r14 + 0x24]
mov rcx, qword [r14 + 0x110]
add edx, dword [r14 + 0x3c]
add edx, dword [r14 + 0x84]
add edx, dword [r14 + 0x9c]
add edx, dword [r14 + 0xb4]
movsxd rax, dword [rcx + 0x158]
movsxd rdx, edx
imul rdx, rax
shr rdx, 2
mov rax, rdx
mul r8
mov eax, dword [rcx + 0x150]
mov dword [rsp + 0x84], eax
shr rdx, 2
cmp edx, eax
jge 0x618460
mov rsi, qword [r14 + 0x508]
cmp qword [r14 + 0x510], rsi
je 0x618430
mov eax, dword [r14 + 0x674]
add eax, dword [r14 + 0x4c8]
cmp dword [rsp + 0x84], eax
jle 0x618430
lea rax, [rsp + 0x130]
mov qword [rsp + 0x70], rax
lea rax, [r14 + 8]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x100]
mov qword [rsp + 0x58], rax
lea rax, [rsp + 0xa0]
mov qword [rsp + 0x48], rax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0xe0]
mov qword [rsp + 0x40], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x78], rax
lea rax, [rsp + 0xc8]
mov qword [rsp + 0x98], rax
nop dword [rax + rax]
mov rcx, r14
call fcn.00617d70
movzx r15d, byte [r13 + 0x56c]
mov r12, rax
sar rax, 0x20
mov qword [rsp + 0x38], rax
shr r15b, 2
and r15d, 1
je 0x618490
mov ecx, dword [rsi]
mov rdx, qword [r13 + 0x460]
lea eax, [rcx + 7]
test ecx, ecx
cmovns eax, ecx
and ecx, 7
sar eax, 3
cdqe
movzx edx, byte [rdx + rax]
mov eax, pe_nt_image_headers64
sar eax, cl
test edx, eax
jne 0x618490
mov ebp, 1
mov qword [rsp + 0xc0], r14
mov rbx, qword [rsp + 0x60]
mov eax, ebp
lock xadd dword [rbx], eax
lea rax, [0x00611e80]
mov r9, qword [rsp + 0x48]
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xb0], rax
mov rax, qword [rsi]
mov r8, qword [rsp + 0x78]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xa0], rax
mov eax, dword [rsi + 8]
mov dword [rsp + 0xa8], eax
call fcn.006121e0
mov rbx, qword [rsp + 0x110]
mov r12, qword [rsp + 0x100]
mov rdi, qword [rsp + 0x108]
test rbx, rbx
je 0x6188c0
mov eax, ebp
lock xadd dword [rbx + 8], eax
mov eax, dword [rsp + 0x118]
mov qword [rsp + 0xe0], 0
mov edx, eax
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x11c]
mov ecx, eax
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x120]
mov r10d, eax
mov dword [rsp + 0x80], eax
mov eax, ebp
lock xadd dword [rbx + 8], eax
mov eax, ebp
lock xadd dword [rbx + 8], eax
mov qword [rsp + 0x130], r12
mov eax, ebp
mov qword [rsp + 0x138], rdi
mov qword [rsp + 0x140], rbx
lock xadd dword [rbx + 8], eax
mov dword [rsp + 0x14c], ecx
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x148], edx
mov rdi, qword [rsp + 0x140]
mov dword [rsp + 0x150], r10d
call fcn.006f9bc0
test al, al
jne 0x6187a0
mov rax, qword [rsp + 0x138]
test rdi, rdi
mov r12, qword [rsp + 0x130]
mov qword [rsp + 0x88], rax
je 0x61822d
mov r10d, ebp
lock xadd dword [rdi + 8], r10d
mov eax, dword [rsp + 0x148]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x14c]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x80], eax
mov ecx, 0x28
call fcn.007da0a0
mov rdx, qword [rsp + 0x88]
test rdi, rdi
mov qword [rax], r12
mov qword [rax + 0x10], rdi
mov qword [rax + 8], rdx
je 0x618a05
mov edx, 1
lock xadd dword [rdi + 8], edx
mov edx, dword [rsp + 0x68]
mov qword [rsp + 0xe8], rax
mov dword [rax + 0x18], edx
mov edx, dword [rsp + 0x6c]
mov dword [rax + 0x1c], edx
mov edx, dword [rsp + 0x80]
mov dword [rax + 0x20], edx
mov eax, 0xffffffff
lock xadd dword [rdi + 8], eax
cmp eax, 1
je 0x6189d0
mov rdi, qword [rsp + 0x140]
test rdi, rdi
je 0x6182b0
mov eax, 0xffffffff
lock xadd dword [rdi + 8], eax
cmp eax, 1
je 0x618844
test rbx, rbx
je 0x6182cc
lea rdi, [rbx + 8]
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
je 0x618942
lea rax, [0x0084ab50]
test r15b, r15b
jne 0x6182da
xor eax, eax
mov qword [rsp + 0xe0], rax
lea rdi, [rbx + 8]
test rbx, rbx
je 0x61830f
mov eax, 0xffffffff
lock xadd dword [rdi], eax
cmp eax, 1
je 0x618880
mov eax, 0xffffffff
lock xadd dword [rdi], eax
cmp eax, 1
je 0x618870
mov rcx, r13
call fcn.0054f290
mov r9d, dword [rsp + 0x38]
mov rdx, rsi
mov rcx, rax
mov r8, qword [rsp + 0x40]
call fcn.00544970
mov rax, qword [rsp + 0xe0]
test rax, rax
je 0x61835d
test al, 1
jne 0x61835d
and rax, 0xfffffffffffffffe
mov rax, qword [rax]
test rax, rax
je 0x61835d
mov rdi, qword [rsp + 0x40]
mov r8d, 2
lea rcx, [rdi + 8]
mov rdx, rcx
call rax
mov rcx, qword [rsp + 0x110]
test rcx, rcx
je 0x61837d
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
je 0x618970
mov rcx, qword [rsp + 0xc0]
test rcx, rcx
je 0x61839d
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
je 0x6189a0
mov edx, dword [rsi]
mov rcx, r13
call fcn.0054c0e0
mov eax, dword [rsi + 8]
mov rsi, qword [r14 + 0x508]
add dword [r14 + 0x674], eax
mov rax, qword [r14 + 0x510]
lea rdx, [rsi + 0xc]
cmp rax, rdx
je 0x6183ec
movabs r9, 0xaaaaaaaaaaaaaaab
mov r8, rax
sub r8, rdx
mov rcx, r8
sar rcx, 2
imul rcx, r9
test rcx, rcx
jne 0x618784
sub rax, 0xc
cmp rax, rsi
mov qword [r14 + 0x510], rax
je 0x618417
mov eax, dword [r14 + 0x4c8]
add eax, dword [r14 + 0x674]
cmp eax, dword [rsp + 0x84]
jl 0x618070
cmp byte [r13 + 0x5b0], 0
jns 0x618430
mov rcx, r13
call fcn.0056c7a0
nop dword [rax]
mov eax, 0xffffffff
mov rsi, qword [rsp + 0x90]
lock xadd dword [rsi + 8], eax
cmp eax, 1
jne 0x617f5f
mov rcx, qword [rsp + 0x90]
call fcn.00611d10
jmp 0x617f5f
cmp dword [rcx + 0x154], edx
mov eax, edx
mov rsi, qword [r14 + 0x508]
cmovle eax, dword [rcx + 0x154]
cmp qword [r14 + 0x510], rsi
mov dword [rsp + 0x84], eax
jne 0x617fe6
jmp 0x618430
mov r15d, 1
mov qword [rsp + 0xe0], r14
mov rdi, qword [rsp + 0x60]
mov eax, r15d
lock xadd dword [rdi], eax
lea rax, [0x00611e80]
mov r9, qword [rsp + 0x48]
mov qword [rsp + 0xb8], 0
mov qword [rsp + 0xb0], rax
mov rax, qword [rsi]
mov r8, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x58]
mov qword [rsp + 0xa0], rax
mov eax, dword [rsi + 8]
mov dword [rsp + 0xa8], eax
call fcn.006121e0
mov rbx, qword [rsp + 0x110]
mov rdi, qword [rsp + 0x100]
mov rbp, qword [rsp + 0x108]
test rbx, rbx
je 0x6187c0
mov eax, r15d
lock xadd dword [rbx + 8], eax
mov eax, dword [rsp + 0x118]
mov qword [rsp + 0xc0], 0
mov edx, eax
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x11c]
mov ecx, eax
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x120]
mov r11d, eax
mov dword [rsp + 0x80], eax
mov eax, r15d
lock xadd dword [rbx + 8], eax
mov eax, r15d
lock xadd dword [rbx + 8], eax
mov qword [rsp + 0x130], rdi
mov eax, r15d
mov qword [rsp + 0x138], rbp
mov qword [rsp + 0x140], rbx
lock xadd dword [rbx + 8], eax
mov dword [rsp + 0x14c], ecx
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x148], edx
mov rdi, qword [rsp + 0x140]
mov dword [rsp + 0x150], r11d
call fcn.006f9bc0
test al, al
jne 0x6187b0
mov rax, qword [rsp + 0x130]
test rdi, rdi
mov rbp, qword [rsp + 0x138]
mov qword [rsp + 0x88], rax
je 0x6185fd
mov r10d, r15d
lock xadd dword [rdi + 8], r10d
mov eax, dword [rsp + 0x148]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x14c]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x80], eax
mov ecx, 0x28
call fcn.007da0a0
mov rdx, qword [rsp + 0x88]
test rdi, rdi
mov qword [rax + 8], rbp
mov qword [rax + 0x10], rdi
mov qword [rax], rdx
je 0x6189e0
mov edx, 1
lock xadd dword [rdi + 8], edx
mov edx, dword [rsp + 0x6c]
mov qword [rsp + 0xc8], rax
mov dword [rax + 0x18], edx
mov edx, dword [rsp + 0x68]
mov dword [rax + 0x1c], edx
mov edx, dword [rsp + 0x80]
mov dword [rax + 0x20], edx
mov eax, 0xffffffff
lock xadd dword [rdi + 8], eax
cmp eax, 1
je 0x6189c0
mov rdi, qword [rsp + 0x140]
mov ebp, 1
test rdi, rdi
je 0x618685
mov eax, 0xffffffff
lock xadd dword [rdi + 8], eax
cmp eax, 1
je 0x618890
test rbx, rbx
je 0x6188a2
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
je 0x618980
lea rax, [0x0084ab50]
test bpl, bpl
mov edx, 0
cmove rax, rdx
mov qword [rsp + 0xc0], rax
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
je 0x618860
mov eax, 0xffffffff
lock xadd dword [rbx + 8], eax
cmp eax, 1
je 0x618852
mov rcx, r13
call fcn.0054f290
mov ebx, dword [rsp + 0x38]
mov r9d, r12d
mov rdx, rsi
mov rcx, rax
mov r8, qword [rsp + 0x78]
mov dword [rsp + 0x20], ebx
call fcn.00544c10
mov rax, qword [rsp + 0xc0]
test rax, rax
je 0x618735
test al, 1
jne 0x618735
and rax, 0xfffffffffffffffe
mov rax, qword [rax]
test rax, rax
je 0x618735
mov rcx, qword [rsp + 0x98]
mov r8d, 2
mov rdx, rcx
call rax
mov rcx, qword [rsp + 0x110]
test rcx, rcx
je 0x618755
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
je 0x618990
mov rcx, qword [rsp + 0xe0]
test rcx, rcx
je 0x6183a7
mov eax, 0xffffffff
lock xadd dword [rcx + 8], eax
cmp eax, 1
jne 0x6183a7
mov rax, qword [rcx]
call qword [rax + 0x18]
jmp 0x6183a7
mov rcx, rsi
call sub.msvcrt.dll_memmove
mov rsi, qword [r14 + 0x508]
mov rax, qword [r14 + 0x510]
jmp 0x6183ec
xor r15d, r15d
jmp 0x618298
xor ebp, ebp
jmp 0x61866d
mov ecx, dword [rsp + 0x120]
mov qword [rsp + 0xc0], 0
mov eax, dword [rsp + 0x118]
mov qword [rsp + 0x130], rdi
mov edx, dword [rsp + 0x11c]
mov qword [rsp + 0x138], rbp
mov qword [rsp + 0x140], 0
mov dword [rsp + 0x80], ecx
mov dword [rsp + 0x150], ecx
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x6c], eax
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x148], eax
mov dword [rsp + 0x14c], edx
call fcn.006f9bc0
test al, al
je 0x6189b0
mov qword [rsp + 0xc0], 0
jmp 0x6186e2
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
jmp 0x6182b0
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
jmp 0x6186e2
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
jmp 0x6186cf
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
jmp 0x61830f
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
jmp 0x6182fd
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
test rbx, rbx
jne 0x61868e
test bpl, bpl
je 0x618833
lea rax, [0x0084ab50]
mov qword [rsp + 0xc0], rax
jmp 0x6186e2
mov ecx, dword [rsp + 0x120]
mov qword [rsp + 0xe0], 0
mov eax, dword [rsp + 0x118]
mov qword [rsp + 0x130], r12
mov edx, dword [rsp + 0x11c]
mov qword [rsp + 0x138], rdi
mov qword [rsp + 0x140], 0
mov dword [rsp + 0x80], ecx
mov dword [rsp + 0x150], ecx
mov rcx, qword [rsp + 0x70]
mov dword [rsp + 0x68], eax
mov dword [rsp + 0x6c], edx
mov dword [rsp + 0x148], eax
mov dword [rsp + 0x14c], edx
call fcn.006f9bc0
test al, al
jne 0x6182d8
mov qword [rsp + 0x88], rdi
xor edi, edi
jmp 0x61822d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
test r15b, r15b
je 0x6182d8
lea rax, [0x0084ab50]
mov qword [rsp + 0xe0], rax
jmp 0x6182eb
mov rax, qword [rcx]
call qword [rax + 0x18]
jmp 0x61837d
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x18]
jmp 0x6186a1
mov rax, qword [rcx]
call qword [rax + 0x18]
jmp 0x618755
mov rax, qword [rcx]
call qword [rax + 0x18]
jmp 0x61839d
mov qword [rsp + 0x88], rdi
xor edi, edi
jmp 0x6185fd
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
jmp 0x618660
mov rax, qword [rdi]
mov rcx, rdi
call qword [rax + 0x18]
jmp 0x618290
mov edi, dword [rsp + 0x6c]
mov qword [rsp + 0xc8], rax
mov dword [rax + 0x18], edi
mov edi, dword [rsp + 0x68]
mov dword [rax + 0x1c], edi
mov edi, dword [rsp + 0x80]
mov dword [rax + 0x20], edi
jmp 0x618660
mov edi, dword [rsp + 0x68]
mov qword [rsp + 0xe8], rax
mov dword [rax + 0x18], edi
mov edi, dword [rsp + 0x6c]
mov dword [rax + 0x1c], edi
mov edi, dword [rsp + 0x80]
mov dword [rax + 0x20], edi
jmp 0x618290
mov rcx, qword [rsp + 0x90]
call fcn.00611d10
jmp 0x617f5f