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

Disassembly:
mov qword [rsp + 8], rcx
push rbx
sub rsp, 0xc0
mov rbx, rcx
test rcx, rcx
jne 0x180051e71
lea eax, [rcx + 0x14]
add rsp, 0xc0
pop rbx
ret
mov eax, edx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov dword [rsp + 0x3c], eax
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
mov dword [rsp + 0x38], eax
test ecx, ecx
jne 0x180051e96
test eax, eax
je 0x1800522b9
mov rcx, rbx
call fcn.180052380
cmp eax, 2
jne 0x180051ebb
cmp word [rbx], 0
je 0x1800522b9
mov eax, 6
add rsp, 0xc0
pop rbx
ret
mov rdx, qword [rbx + 8]
xor r9d, r9d
mov qword [rsp + 0xa8], r12
mov r12d, r9d
movsxd r8, eax
mov qword [rsp + 0x98], r14
mov r14d, r9d
mov qword [rsp + 0x78], rdx
mov dword [rsp + 0x4c], r9d
mov dword [rsp + 0x58], r9d
mov qword [rsp + 0x68], r8
cmp r9w, word [rbx]
jge 0x1800522a9
mov qword [rsp + 0xd8], rbp
mov r8d, r9d
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xa0], r13
mov qword [rsp + 0x90], r15
mov qword [rsp + 0x80], r9
nop dword [rax]
mov rax, qword [rbx + 0x18]
mov ecx, r9d
mov r11d, r9d
mov dword [rsp + 0x48], r9d
mov dword [rsp + 0xe8], ecx
mov r13d, r12d
mov qword [rsp + 0x60], 0
movsx r10d, word [r8 + rax]
mov r8d, r9d
mov dword [rsp + 0x54], r10d
mov eax, 0xffffffff
mov dword [rsp + 0x44], eax
mov ebp, r10d
mov qword [rsp + 0x28], 0
cmp r12d, r10d
je 0x180052250
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x60]
movsxd r15, r12d
mov qword [rsp + 0x70], r15
nop
mov dword [rsp + 0x50], r11d
mov r11d, eax
mov dword [rsp + 0x24], eax
mov r9d, eax
cmp ebp, eax
je 0x180052240
movsxd r14, ebp
cmp r13d, eax
je 0x180051ffe
mov eax, dword [rdx + r15*8]
lea rcx, [rsp + 0x30]
sub eax, dword [rdx + r14*8]
mov dword [rsp + 0x30], eax
mov eax, dword [rdx + r15*8 + 4]
sub eax, dword [rdx + r14*8 + 4]
mov dword [rsp + 0x34], eax
call fcn.1800547d0
mov ecx, dword [rsp + 0xe8]
mov dword [rsp + 0x40], eax
test eax, eax
je 0x180052206
mov r9d, dword [rsp + 0x24]
mov r11d, r9d
mov rbx, qword [rsp + 0x30]
mov eax, dword [rsp + 0x44]
mov r8d, dword [rsp + 0x2c]
jmp 0x18005200e
mov edx, dword [rsp + 0x48]
mov rbx, rsi
mov qword [rsp + 0x30], rbx
mov dword [rsp + 0x40], edx
test ecx, ecx
je 0x1800521f0
test eax, eax
mov r12, rbx
mov eax, ebp
cmovs rsi, rdi
test r9d, r9d
mov qword [rsp + 0x88], rsi
cmovns eax, r9d
mov qword [rsp + 0x60], rsi
mov dword [rsp + 0x44], eax
test r11d, r11d
mov eax, ecx
mov ecx, r8d
cmovns eax, dword [rsp + 0x50]
shr r12, 0x20
mov edx, r12d
mov dword [rsp + 0x48], eax
call fcn.180051580
mov edx, dword [rsp + 0x30]
mov edi, eax
mov ecx, dword [rsp + 0x28]
call fcn.180051580
add edi, eax
cmp edi, 0xffff1000
jle 0x18005217f
mov r9, qword [rsp + 0x68]
add edi, 0x10000
mov edx, dword [rsp + 0x30]
mov ecx, r12d
add edx, dword [rsp + 0x28]
mov r8d, dword [rsp + 0x2c]
mov eax, edx
neg eax
add r8d, r12d
test r9, r9
cmovne edx, eax
mov eax, r8d
neg eax
mov dword [rsp + 0x5c], edx
mov edx, dword [rsp + 0x28]
test r9, r9
cmovne eax, r8d
mov dword [rsp + 0x50], eax
call fcn.180051580
mov edx, dword [rsp + 0x2c]
mov r12d, eax
mov ecx, dword [rsp + 0x30]
call fcn.180051580
mov edx, dword [rsp + 0x40]
mov ecx, eax
sub ecx, r12d
sub r12d, eax
cmp qword [rsp + 0x68], 0
mov eax, edx
cmovne r12d, ecx
cmp dword [rsp + 0xe8], edx
mov edx, edi
mov dword [rsp + 0x20], r12d
cmovl eax, dword [rsp + 0xe8]
mov ecx, eax
mov dword [rsp + 0x24], eax
call fcn.180051580
mov ecx, dword [rsp + 0x3c]
mov edx, r12d
mov dword [rsp + 0xe8], eax
call fcn.180051580
cmp eax, dword [rsp + 0xe8]
jg 0x180052126
mov edx, dword [rsp + 0x3c]
mov r12d, edi
jmp 0x18005212a
mov edx, dword [rsp + 0x24]
mov ecx, dword [rsp + 0x50]
mov r8d, r12d
call fcn.180051370
mov edx, dword [rsp + 0x20]
mov r12d, eax
mov ecx, dword [rsp + 0x38]
call fcn.180051580
cmp eax, dword [rsp + 0xe8]
jg 0x180052165
mov eax, dword [rsp + 0x38]
mov r8d, edi
mov ecx, dword [rsp + 0x5c]
mov edx, eax
call fcn.180051370
mov edx, eax
jmp 0x180052184
mov eax, dword [rsp + 0x24]
mov edx, eax
mov edi, dword [rsp + 0x20]
mov r8d, edi
mov ecx, dword [rsp + 0x5c]
call fcn.180051370
mov edx, eax
jmp 0x180052184
xor edx, edx
xor r12d, r12d
cmp r14, r15
je 0x1800521e9
movsxd rcx, dword [rsp + 0x54]
mov r8d, dword [rsp + 0x4c]
mov ebx, dword [rsp + 0x38]
mov r9, qword [rsp + 0x78]
mov esi, dword [rsp + 0x3c]
mov r10, qword [rsp + 0x70]
nop word [rax + rax]
lea eax, [r12 + rsi]
add dword [r9 + r14*8], eax
lea eax, [rdx + rbx]
add dword [r9 + r14*8 + 4], eax
lea rax, [r14 + 1]
cmp r14, rcx
cmovge rax, r10
inc ebp
cmp r14, rcx
mov r14, rax
cmovge ebp, r8d
cmp rax, r15
jne 0x1800521b0
mov rbx, qword [rsp + 0x30]
mov rsi, qword [rsp + 0x88]
mov r12d, dword [rsp + 0x4c]
jmp 0x1800521f3
mov ebp, r13d
mov ecx, dword [rsp + 0x40]
mov rdi, rbx
mov dword [rsp + 0xe8], ecx
mov qword [rsp + 0x28], rbx
mov r10d, dword [rsp + 0x54]
inc r15
mov rdx, qword [rsp + 0x78]
cmp r13d, r10d
mov r8d, dword [rsp + 0x2c]
mov eax, r13d
cmovge r15, qword [rsp + 0x70]
inc r13d
mov r11d, dword [rsp + 0x48]
cmp eax, r10d
mov eax, dword [rsp + 0x44]
cmovge r13d, r12d
cmp r13d, ebp
jne 0x180051f90
mov rbx, qword [rsp + 0xd0]
xor r9d, r9d
mov r14d, dword [rsp + 0x58]
mov r8, qword [rsp + 0x80]
lea r12d, [r10 + 1]
movsx eax, word [rbx]
add r8, 2
inc r14d
mov dword [rsp + 0x4c], r12d
mov dword [rsp + 0x58], r14d
mov qword [rsp + 0x80], r8
cmp r14d, eax
jl 0x180051f30
mov r15, qword [rsp + 0x90]
mov r13, qword [rsp + 0xa0]
mov rdi, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0xb8]
mov rbp, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xa8]
mov r14, qword [rsp + 0x98]
xor eax, eax
add rsp, 0xc0
pop rbx
ret