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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x38
mov rax, qword [rdx + 0x140]
mov rsi, rdx
mov qword [rcx + 0xb0], rax
mov rbx, rcx
movsxd r13, dword [rdx + 0x34]
mov edi, dword [rdx + 0x38]
mov eax, dword [rdx + 0x88]
add edi, r13d
movsx rbp, word [rdx + 0x128]
mov qword [rdx + 0x140], 0
mov r14, qword [rcx]
mov dword [rsp + 0x90], r13d
mov dword [rsp + 0x88], eax
test r13d, r13d
jne 0x14015f6a5
test edi, edi
jle 0x14015f6a5
inc edi
mov eax, dword [rcx + 0x90]
lea ecx, [rax + rax*2]
mov eax, dword [rdx + 0x3c]
shl ecx, 3
lea rdx, [rsp + 0x88]
sub eax, ecx
movsxd r12, ecx
add r12, qword [rbx + 0x88]
mov rcx, rbx
movsxd r15, eax
and r15, 0xfffffffffffffff8
call fcn.140111f70
cmp byte [rsi + 0x20], 0
je 0x14015f6ed
cmp byte [rsi + 0x21], 0
je 0x14015f6ed
mov eax, 0x20
xor r8d, r8d
jmp 0x14015f6f3
xor r8d, r8d
mov eax, r8d
mov edx, dword [rbx + 0xc8]
and edx, 0xffffffdf
or edx, eax
mov dword [rbx + 0xc8], edx
movzx eax, byte [rsi + 0x12b]
test al, al
je 0x14015f741
mov ecx, 0xa
cmp edi, ecx
cmovl edi, ecx
shl eax, 2
xor eax, edx
and eax, 0xc
xor eax, edx
mov ecx, eax
mov edx, eax
shr ecx, 2
mov eax, 3
and cx, 3
sub ax, cx
shl ax, 2
mov word [rbx + 0xc0], ax
and edx, 0xfffffffc
movsxd rax, edi
mov dword [rbx + 0xc8], edx
imul rdx, rax, 0x38
mov rax, r8
mov qword [rsp + 0x98], rdx
cmp rdx, r15
jg 0x14015f76a
mov rax, r12
sub rax, rdx
add rax, r15
mov rcx, r15
mov qword [rbx + 0x68], rax
sub rcx, rdx
mov rsi, r8
cmp rdx, r15
cmovg rsi, rdx
cmovg rcx, r15
imul rax, rbp, 0x38
mov rdx, r8
mov qword [rsp + 0x20], rax
cmp rax, rcx
jg 0x14015f79c
sub rcx, rax
lea rdx, [rcx + r12]
jmp 0x14015f79f
add rsi, rax
movsxd r15, dword [rsp + 0x88]
mov rax, r8
shl r15, 3
mov qword [rbx + 0x80], rdx
cmp r15, rcx
jg 0x14015f7c5
mov rax, r12
sub rax, r15
add rax, rcx
jmp 0x14015f7c8
add rsi, r15
mov rdx, rcx
mov qword [rbx + 0x70], rax
sub rdx, r15
mov rax, r8
cmp r15, rcx
cmovg rdx, rcx
shl r13, 3
cmp r13, rdx
jg 0x14015f7f0
mov rax, rdx
sub rax, r13
add rax, r12
jmp 0x14015f7f3
add rsi, r13
mov qword [rbx + 0x78], rax
test rsi, rsi
je 0x14015f898
mov rdx, rsi
mov rcx, r14
call fcn.140125140
mov qword [rbx + 0x100], rax
mov rcx, rax
cmp byte [r14 + 0x67], 0
jne 0x14015f895
mov rdx, qword [rbx + 0x68]
test rdx, rdx
jne 0x14015f839
mov rax, qword [rsp + 0x98]
cmp rax, rsi
jg 0x14015f839
sub rsi, rax
lea rdx, [rsi + rcx]
mov rax, qword [rbx + 0x80]
mov qword [rbx + 0x68], rdx
test rax, rax
jne 0x14015f85a
mov rdx, qword [rsp + 0x20]
cmp rdx, rsi
jg 0x14015f85a
sub rsi, rdx
lea rax, [rsi + rcx]
mov qword [rbx + 0x80], rax
mov rax, qword [rbx + 0x70]
test rax, rax
jne 0x14015f876
cmp r15, rsi
jg 0x14015f876
sub rsi, r15
lea rax, [rsi + rcx]
mov qword [rbx + 0x70], rax
mov rax, qword [rbx + 0x78]
test rax, rax
jne 0x14015f891
cmp r13, rsi
jg 0x14015f891
mov rax, rcx
sub rax, r13
add rax, rsi
mov qword [rbx + 0x78], rax
xor r8d, r8d
cmp byte [r14 + 0x67], 0
mov esi, 1
je 0x14015f8b3
mov word [rbx + 0x20], r8w
mov qword [rbx + 0x24], 0
jmp 0x14015f927
mov eax, dword [rsp + 0x90]
mov dword [rbx + 0x28], eax
mov rax, qword [rbx + 0x80]
mov word [rbx + 0x20], bp
test ebp, ebp
jle 0x14015f8e5
add rax, 0x18
dec ebp
mov word [rax - 4], si
mov qword [rax], r14
mov dword [rax + 8], r8d
lea rax, [rax + 0x38]
test ebp, ebp
jg 0x14015f8d0
mov rax, qword [rbx + 0x68]
mov dword [rbx + 0x24], edi
test edi, edi
jle 0x14015f916
add rax, 0x18
nop dword [rax]
nop dword [rax + rax]
dec edi
mov word [rax - 4], r8w
mov qword [rax], r14
mov dword [rax + 8], r8d
lea rax, [rax + 0x38]
test edi, edi
jg 0x14015f900
mov rcx, qword [rbx + 0x78]
mov r8, r13
xor edx, edx
call fcn.1401b9730
xor r8d, r8d
mov byte [rbx + 0xc7], sil
mov dword [rbx + 0x30], 0xffffffff
mov dword [rbx + 0x34], r8d
mov word [rbx + 0xc4], 0xff02
mov qword [rbx + 0x38], r8
mov dword [rbx + 0x2c], esi
mov dword [rbx + 0x40], r8d
mov qword [rbx + 0x50], r8
add rsp, 0x38
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret