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

Disassembly:
mov qword [rsp + 8], rcx
push rbx
sub rsp, 0xb0
mov rbx, rcx
test rcx, rcx
jne 0x18015c703
mov eax, 0x14
add rsp, 0xb0
pop rbx
ret
mov eax, edx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
mov dword [rsp + 0x34], eax
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
mov dword [rsp + 0x30], eax
test ecx, ecx
jne 0x18015c728
test eax, eax
je 0x18015cafd
mov rcx, rbx
call fcn.18015cbc0
mov dword [rsp + 0x44], eax
cmp eax, 2
jne 0x18015c751
cmp word [rbx], 0
je 0x18015cafd
mov eax, 6
add rsp, 0xb0
pop rbx
ret
mov r8, qword [rbx + 8]
mov qword [rsp + 0xa0], rdi
xor edi, edi
mov edx, edi
mov qword [rsp + 0x88], r14
mov r14d, edi
mov dword [rsp + 0x40], edx
mov qword [rsp + 0x70], r8
mov dword [rsp + 0x50], edi
cmp di, word [rbx]
jge 0x18015caed
mov qword [rsp + 0xc8], rbp
mov r9d, edi
mov qword [rsp + 0xa8], rsi
mov qword [rsp + 0x98], r12
mov qword [rsp + 0x90], r13
mov qword [rsp + 0x80], r15
mov qword [rsp + 0x78], rdi
mov rax, qword [rbx + 0x18]
mov ecx, edi
mov r11d, edi
mov dword [rsp + 0x3c], edi
mov dword [rsp + 0xd8], ecx
mov r13d, edx
mov qword [rsp + 0x60], 0
mov r12d, 0xffffffff
movsx r10d, word [r9 + rax]
mov r9d, edi
mov dword [rsp + 0x4c], r10d
mov ebp, r10d
mov qword [rsp + 0x20], 0
cmp edx, r10d
je 0x18015ca9b
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x60]
movsxd r15, edx
mov qword [rsp + 0x68], r15
nop dword [rax]
cmp ebp, r12d
je 0x18015ca8c
movsxd r14, ebp
cmp r13d, r12d
je 0x18015c869
mov eax, dword [r8 + r15*8]
lea rcx, [rsp + 0x28]
sub eax, dword [r8 + r14*8]
mov dword [rsp + 0x28], eax
mov eax, dword [r8 + r15*8 + 4]
sub eax, dword [r8 + r14*8 + 4]
mov dword [rsp + 0x2c], eax
call fcn.18015ee80
mov ecx, dword [rsp + 0xd8]
mov dword [rsp + 0x38], eax
test eax, eax
je 0x18015ca54
mov rbx, qword [rsp + 0x28]
mov r9d, dword [rsp + 0x24]
mov r11d, dword [rsp + 0x3c]
jmp 0x18015c876
mov rbx, rsi
mov dword [rsp + 0x38], r11d
mov qword [rsp + 0x28], rbx
test ecx, ecx
je 0x18015ca3e
test r12d, r12d
mov eax, ebp
cmovns eax, r12d
cmovs rsi, rdi
mov dword [rsp + 0x5c], eax
mov r12, rbx
mov eax, ecx
mov qword [rsp + 0x60], rsi
cmovns eax, r11d
mov ecx, r9d
shr r12, 0x20
mov edx, r12d
mov dword [rsp + 0x3c], eax
call fcn.18015b620
mov edx, dword [rsp + 0x28]
mov edi, eax
mov ecx, dword [rsp + 0x20]
call fcn.18015b620
add edi, eax
cmp edi, 0xffff1000
jle 0x18015c9d8
mov r9d, dword [rsp + 0x44]
add edi, 0x10000
mov edx, dword [rsp + 0x28]
mov ecx, r12d
add edx, dword [rsp + 0x20]
mov r8d, dword [rsp + 0x24]
mov eax, edx
neg eax
add r8d, r12d
test r9d, r9d
cmovne edx, eax
mov eax, r8d
neg eax
mov dword [rsp + 0x58], edx
mov edx, dword [rsp + 0x20]
test r9d, r9d
cmovne eax, r8d
mov dword [rsp + 0x54], eax
call fcn.18015b620
mov edx, dword [rsp + 0x24]
mov r12d, eax
mov ecx, dword [rsp + 0x28]
call fcn.18015b620
mov edx, dword [rsp + 0x38]
mov ecx, eax
sub ecx, r12d
sub r12d, eax
cmp dword [rsp + 0x44], 0
mov eax, edx
cmovne r12d, ecx
cmp dword [rsp + 0xd8], edx
mov edx, edi
mov dword [rsp + 0x48], r12d
cmovl eax, dword [rsp + 0xd8]
mov ecx, eax
mov dword [rsp + 0x20], eax
call fcn.18015b620
mov ecx, dword [rsp + 0x34]
mov edx, r12d
mov dword [rsp + 0xd8], eax
call fcn.18015b620
cmp eax, dword [rsp + 0xd8]
jg 0x18015c97f
mov edx, dword [rsp + 0x34]
mov r12d, edi
jmp 0x18015c983
mov edx, dword [rsp + 0x20]
mov ecx, dword [rsp + 0x54]
mov r8d, r12d
call fcn.18015b410
mov edx, dword [rsp + 0x48]
mov r12d, eax
mov ecx, dword [rsp + 0x30]
call fcn.18015b620
cmp eax, dword [rsp + 0xd8]
jg 0x18015c9be
mov eax, dword [rsp + 0x30]
mov r8d, edi
mov ecx, dword [rsp + 0x58]
mov edx, eax
call fcn.18015b410
mov edx, eax
jmp 0x18015c9dd
mov eax, dword [rsp + 0x20]
mov edx, eax
mov edi, dword [rsp + 0x48]
mov r8d, edi
mov ecx, dword [rsp + 0x58]
call fcn.18015b410
mov edx, eax
jmp 0x18015c9dd
xor edx, edx
xor r12d, r12d
cmp r14, r15
je 0x18015ca37
movsxd rcx, dword [rsp + 0x4c]
mov r8d, dword [rsp + 0x40]
mov ebx, dword [rsp + 0x30]
mov r9, qword [rsp + 0x70]
mov r10d, dword [rsp + 0x34]
mov r11, qword [rsp + 0x68]
nop
mov eax, dword [r9 + r14*8]
add eax, r12d
add eax, r10d
mov 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, r11
inc ebp
cmp r14, rcx
mov r14, rax
cmovge ebp, r8d
cmp rax, r15
jne 0x18015ca00
mov rbx, qword [rsp + 0x28]
mov r12d, dword [rsp + 0x5c]
jmp 0x18015ca41
mov ebp, r13d
mov ecx, dword [rsp + 0x38]
mov rdi, rbx
mov dword [rsp + 0xd8], ecx
mov qword [rsp + 0x20], rbx
mov r10d, dword [rsp + 0x4c]
inc r15
mov r8, qword [rsp + 0x70]
cmp r13d, r10d
mov r9d, dword [rsp + 0x24]
mov eax, r13d
cmovge r15, qword [rsp + 0x68]
inc r13d
mov r11d, dword [rsp + 0x3c]
cmp eax, r10d
cmovge r13d, dword [rsp + 0x40]
cmp r13d, ebp
jne 0x18015c810
mov rbx, qword [rsp + 0xc0]
xor edi, edi
mov r14d, dword [rsp + 0x50]
mov r9, qword [rsp + 0x78]
lea edx, [r10 + 1]
movsx eax, word [rbx]
add r9, 2
inc r14d
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x50], r14d
mov qword [rsp + 0x78], r9
cmp r14d, eax
jl 0x18015c7b2
mov r15, qword [rsp + 0x80]
mov r13, qword [rsp + 0x90]
mov r12, qword [rsp + 0x98]
mov rsi, qword [rsp + 0xa8]
mov rbp, qword [rsp + 0xc8]
mov rdi, qword [rsp + 0xa0]
mov r14, qword [rsp + 0x88]
xor eax, eax
add rsp, 0xb0
pop rbx
ret