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

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 0x18], r8
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x60
mov rdi, qword [rcx + 0x10]
mov r14, rcx
xor eax, eax
mov rcx, rdi
mov r12d, r9d
mov rbx, r8
mov rsi, rdx
mov ebp, eax
call fcn.180074380
test byte [rsi + 0x46], 0x20
mov r13d, dword [rsp + 0xc8]
mov r15d, eax
mov dword [rsp + 0xa0], eax
mov ecx, 0x21
mov eax, 0x1e
cmove eax, ecx
mov dword [rsp + 0xa8], eax
cmp byte [rsp + 0xe8], bpl
jne 0x180051c7b
movsx ecx, word [rsp + 0xd0]
movzx edx, al
mov r9d, r15d
mov dword [rsp + 0x28], ecx
mov rcx, rdi
mov r8d, r12d
mov dword [rsp + 0x20], r13d
call fcn.18006b740
mov rax, qword [r14]
test dword [rax + 0x2c], 0x80000
je 0x180051cad
mov rcx, qword [rsi + 0x68]
mov rdx, qword [rsi]
lea r8, [rsp + 0x50]
add rcx, 0x50
call fcn.180023430
test rax, rax
je 0x180051ca7
cmp qword [rax + 0x10], rbp
jne 0x180051cb6
cmp qword [rsi + 0x20], rbp
jne 0x180051cb6
test rbx, rbx
je 0x180051eef
xor edx, edx
cmp qword [rsp + 0xb0], rdx
je 0x180051d0e
movzx r15d, byte [rsp + 0xe0]
nop dword [rax + rax]
cmp byte [rbx + 0x10], 0x6d
jne 0x180051d05
test byte [rbx + 0x11], 3
je 0x180051d05
mov rcx, qword [rbx + 0x20]
xor edx, edx
call fcn.180018720
test eax, eax
je 0x180051d05
movzx r9d, r15b
mov r8, rsi
mov rdx, rbx
mov rcx, r14
call fcn.1800293d0
test rax, rax
je 0x180051d05
or ebp, dword [rax + 0x1c]
mov rbx, qword [rbx + 0x40]
test rbx, rbx
jne 0x180051cd0
mov rdx, rsi
mov rcx, r14
call fcn.18004fb60
mov edx, dword [r14 + 0x58]
movsx ecx, word [rsi + 0x3e]
inc ecx
mov r15d, eax
or r15d, ebp
lea ebp, [rdx + 1]
add edx, ecx
mov dword [r14 + 0x58], edx
mov rcx, qword [rdi + 0x30]
movsxd rdx, dword [rdi + 0x3c]
cmp dword [rcx + 0x64], edx
jg 0x180051d5a
xor eax, eax
mov r9d, ebp
mov r8d, r13d
lea edx, [rax + 0x53]
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.1800296a0
xor edx, edx
jmp 0x180051d87
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
xor edx, edx
mov dword [rdi + 0x3c], eax
mov rax, qword [rdi + 8]
mov word [rax + rcx*8], 0x53
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r13d
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], edx
mov qword [rax + rcx*8 + 0x10], rdx
mov ebx, edx
cmp dx, word [rsi + 0x3e]
jge 0x180051dc5
nop
cmp r15d, 0xffffffff
je 0x180051da1
cmp ebx, 0x1f
jg 0x180051dbb
bt r15d, ebx
jae 0x180051dbb
lea eax, [rbp + 1]
mov r9d, ebx
mov r8d, r12d
add eax, ebx
mov rdx, rsi
mov rcx, rdi
mov dword [rsp + 0x20], eax
call fcn.180049dd0
movsx eax, word [rsi + 0x3e]
inc ebx
cmp ebx, eax
jl 0x180051d90
movzx eax, byte [rsp + 0xe0]
mov r15d, dword [rsp + 0xa0]
mov rdx, qword [rsp + 0xb0]
mov ebx, dword [rdi + 0x3c]
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x38], eax
xor r9d, r9d
mov dword [rsp + 0x30], ebp
mov rcx, r14
lea r8d, [r9 + 0x6d]
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], 1
call fcn.180042d20
movsxd r8, dword [rdi + 0x3c]
cmp ebx, r8d
jge 0x180051ecf
mov rax, qword [rdi + 0x30]
movzx edx, byte [rsp + 0xa8]
cmp dword [rax + 0x64], r8d
jg 0x180051e40
mov r9d, r15d
mov r8d, r12d
mov rcx, rdi
mov dword [rsp + 0x20], r13d
call fcn.1800296a0
mov r8d, eax
jmp 0x180051e71
lea rcx, [r8 + r8*2]
lea eax, [r8 + 1]
mov dword [rdi + 0x3c], eax
mov rax, qword [rdi + 8]
mov byte [rax + rcx*8], dl
xor edx, edx
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r12d
mov dword [rax + rcx*8 + 8], r15d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], rdx
mov byte [rax + rcx*8 + 1], dl
mov rcx, qword [rdi]
movsx r10, word [rsp + 0xd0]
cmp byte [rcx + 0x55], 0
je 0x180051e92
mov r8, r10
mov edx, 0xfffffff2
call fcn.1800264a0
jmp 0x180051ecf
test r8d, r8d
jns 0x180051e9e
mov r8d, dword [rdi + 0x3c]
dec r8d
movsxd rax, r8d
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x180051ec7
mov r9d, 0xfffffff2
mov r8, r10
mov rcx, rdi
call fcn.1800816e0
jmp 0x180051ecf
mov dword [rdx + 0x10], r10d
mov byte [rdx + 1], 0xf2
xor r13d, r13d
xor r9d, r9d
mov r8d, ebp
mov rdx, rsi
mov rcx, r14
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
call fcn.18004eb50
jmp 0x180051ef2
xor r13d, r13d
cmp qword [rsi + 0x18], 0
jne 0x18005207c
mov ebx, dword [rsp + 0xf0]
mov r9d, dword [rsp + 0xc0]
mov r8d, r12d
mov rdx, rsi
mov rcx, r14
mov dword [rsp + 0x28], ebx
mov qword [rsp + 0x20], r13
call fcn.180052170
cmp byte [rsp + 0xd8], 0
mov rax, qword [rdi + 0x30]
movsxd rcx, dword [rdi + 0x3c]
mov edx, r13d
setne dl
cmp dword [rax + 0x64], ecx
jg 0x180051f58
mov r9d, edx
mov r8d, r12d
mov rcx, rdi
mov edx, 0x74
mov dword [rsp + 0x20], r13d
call fcn.1800296a0
jmp 0x180051f84
lea eax, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov dword [rdi + 0x3c], eax
mov rax, qword [rdi + 8]
mov word [rax + rcx*8], 0x74
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], r12d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], r13
mov rcx, qword [rdi]
cmp byte [rcx + 0x55], 0
je 0x180051f9c
mov r8, rsi
mov edx, 0xffffffec
call fcn.1800264a0
jmp 0x180051fd1
mov eax, dword [rdi + 0x3c]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
cmp byte [rax + rcx*8 + 1], 0
lea rdx, [rax + rcx*8]
je 0x180051fc9
mov r9d, 0xffffffec
mov r8, rsi
mov rcx, rdi
call fcn.1800816e0
jmp 0x180051fd1
mov qword [rdx + 0x10], rsi
mov byte [rdx + 1], 0xec
movzx r12d, byte [rsp + 0xe8]
test r12b, r12b
je 0x180051ff9
mov rax, qword [rdi]
cmp byte [rax + 0x55], 0
jne 0x180051ff9
movsxd rax, dword [rdi + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov byte [rax + rcx*8 - 0x15], 4
test ebx, ebx
js 0x18005204e
mov rax, qword [rdi + 0x30]
movsxd rcx, dword [rdi + 0x3c]
cmp dword [rax + 0x64], ecx
jg 0x180052023
xor r9d, r9d
mov r8d, ebx
mov rcx, rdi
lea edx, [r9 + 0x74]
mov dword [rsp + 0x20], r13d
call fcn.1800296a0
jmp 0x18005204e
lea eax, [rcx + 1]
lea rcx, [rcx + rcx*2]
mov dword [rdi + 0x3c], eax
mov rax, qword [rdi + 8]
mov word [rax + rcx*8], 0x74
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], ebx
mov qword [rax + rcx*8 + 8], 0
mov qword [rax + rcx*8 + 0x10], r13
xor al, al
cmp r12b, 2
mov r12d, 2
movzx edx, al
mov rax, qword [rdi]
cmove edx, r12d
cmp byte [rax + 0x55], 0
jne 0x180052082
movsxd rax, dword [rdi + 0x3c]
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 8]
mov byte [rax + rcx*8 - 0x15], dl
jmp 0x180052082
mov r12d, 2
mov rax, qword [r14]
test dword [rax + 0x2c], 0x80000
je 0x1800520ee
mov rcx, qword [rsi + 0x68]
mov rdx, qword [rsi]
lea r8, [rsp + 0xe8]
add rcx, 0x50
call fcn.180023430
test rax, rax
je 0x1800520ee
mov rbx, qword [rax + 0x10]
test rbx, rbx
je 0x1800520ee
xor r9d, r9d
mov r8, rbx
mov rdx, rsi
mov rcx, r14
call fcn.180023670
test rax, rax
je 0x1800520e5
mov r9d, ebp
mov r8, rsi
mov rdx, rax
mov rcx, r14
mov dword [rsp + 0x28], r13d
mov dword [rsp + 0x20], r12d
call fcn.180042df0
mov rbx, qword [rbx + 0x18]
test rbx, rbx
jne 0x1800520b4
movzx eax, byte [rsp + 0xe0]
mov rdx, qword [rsp + 0xb0]
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x38], eax
xor r9d, r9d
mov dword [rsp + 0x30], ebp
lea r8d, [r9 + 0x6d]
mov rcx, r14
mov qword [rsp + 0x28], rsi
mov dword [rsp + 0x20], r12d
call fcn.180042d20
mov rdx, qword [rdi + 0x30]
mov rcx, qword [rdx + 0x88]
test rcx, rcx
je 0x180052147
movsxd rax, r15d
lea rax, [rax*4 + 4]
sub rcx, rax
mov eax, dword [rdi + 0x3c]
mov dword [rcx], eax
mov eax, dword [rdi + 0x3c]
mov rbx, qword [rsp + 0xb8]
dec eax
mov dword [rdx + 0x6c], eax
add rsp, 0x60
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret