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

Disassembly:
mov qword [rsp + 0x18], r8
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xe8
mov r14, qword [rcx]
mov r13, rcx
movzx eax, byte [r8 + 0x40]
mov rcx, qword [r8 + 0x38]
mov r15, qword [r8 + 0x60]
lea r8, str.RIGHT_JOIN__s
mov rsi, qword [r14 + 0x10]
imul r9, rax, 0x68
mov rax, qword [r13 + 8]
mov qword [rsp + 0x58], rcx
movsxd rbx, edx
xor edx, edx
mov edi, edx
mov qword [rsp + 0x68], r14
lea rcx, [rax + 8]
mov qword [rsp + 0x60], rsi
add rcx, r9
mov r12d, edx
mov r9, qword [r9 + rax + 0x28]
mov eax, 1
mov qword [rsp + 0x50], rcx
mov edx, eax
mov rcx, r14
mov dword [rsp + 0x138], eax
mov r9, qword [r9]
call fcn.1400e7d60
lea rax, [rsi + 0x90]
mov rbp, rbx
mov qword [rsp + 0x48], rax
test ebx, ebx
jle 0x14015d9b3
lea rbx, [r13 + 0x364]
nop dword [rax]
nop dword [rax + rax]
mov rax, qword [rbx + 0x5c]
movsxd rcx, dword [rsi + 0x90]
mov edx, dword [rbx]
or r12, qword [rax + 8]
cmp dword [rsi + 0x94], ecx
jg 0x14015d922
mov r8d, edx
mov dword [rsp + 0x20], edi
mov edx, 0x88
xor r9d, r9d
mov rcx, rsi
call fcn.1400e7510
jmp 0x14015d94b
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x88
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 8], rdi
mov qword [rax + rcx*8 + 0x10], rdi
mov edx, dword [rbx + 4]
test edx, edx
je 0x14015d9a3
movsxd rcx, dword [rsi + 0x90]
cmp dword [rsi + 0x94], ecx
jg 0x14015d97a
mov r8d, edx
mov dword [rsp + 0x20], edi
mov edx, 0x88
xor r9d, r9d
mov rcx, rsi
call fcn.1400e7510
jmp 0x14015d9a3
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x88
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 8], rdi
mov qword [rax + rcx*8 + 0x10], rdi
add rbx, 0x70
sub rbp, 1
jne 0x14015d8f0
jmp 0x14015d9b8
mov qword [rsp + 0x48], rax
mov rbx, qword [rsp + 0x50]
test byte [rbx + 0x3c], 0x40
jne 0x14015dc45
or r12, qword [r15 + 8]
xor r8d, r8d
mov rax, qword [rsp + 0x130]
mov r13d, r8d
mov qword [rsp + 0x40], r12
cmp dword [rax + 0x84], r8d
jle 0x14015dc45
xor ebx, ebx
mov edx, 0x2000
mov esi, ebx
mov r8d, 0x8002
nop word [rax + rax]
mov rcx, qword [rax + 0x90]
add rcx, rsi
test word [rcx + 0x12], r8w
je 0x14015da1b
cmp word [rcx + 0x14], dx
jne 0x14015dc3b
mov rax, r12
not rax
test qword [rcx + 0x30], rax
jne 0x14015dc19
mov rdx, qword [rcx]
test byte [rdx + 4], 3
jne 0x14015dc14
test rdx, rdx
je 0x14015da50
mov rcx, qword [r14]
xor r9d, r9d
xor r8d, r8d
call fcn.140103c20
mov rbp, rax
jmp 0x14015da53
mov rbp, rbx
mov r12, qword [r14]
test rdi, rdi
jne 0x14015da63
mov rdi, rbp
jmp 0x14015dc0f
test rbp, rbp
je 0x14015dc0f
mov eax, dword [rdi + 4]
lea r15, [rbp + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x14015da92
mov eax, dword [r15]
and eax, 0x20000001
cmp eax, 0x20000000
jne 0x14015db95
cmp byte [r14 + 0x11c], 2
jae 0x14015db95
test r12, r12
je 0x14015dab4
mov edx, 0x18
mov rcx, r12
call fcn.1400b9520
jmp 0x14015dabe
mov ecx, 0x18
call fcn.1400b8ca0
mov rcx, rax
test rax, rax
je 0x14015dae8
mov rax, qword [r14 + 0xb0]
mov qword [rcx], rax
lea rax, [fcn.140103970]
mov qword [r14 + 0xb0], rcx
mov qword [rcx + 0x10], rax
mov qword [rcx + 8], rdi
jmp 0x14015daf3
mov rcx, qword [r14]
mov rdx, rdi
call fcn.1401038c0
mov rdx, rbp
mov rcx, r14
call fcn.1401039b0
lea rdx, [rsp + 0x148]
mov dword [rsp + 0x148], ebx
lea rcx, [0x14063998c]
call fcn.1400be7f0
test eax, eax
mov rcx, r12
mov eax, 2
cmove ebx, eax
mov edx, ebx
add rdx, 0x48
call fcn.1400b9520
mov rdi, rax
test rax, rax
je 0x14015dc0d
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rdi], xmm0
movups xmmword [rdi + 0x10], xmm0
movups xmmword [rdi + 0x20], xmm0
movups xmmword [rdi + 0x30], xmm0
mov qword [rdi + 0x40], rax
mov eax, 0xffffffff
mov word [rdi + 0x2e], ax
mov byte [rdi], 0x9b
test ebx, ebx
jne 0x14015db86
mov eax, dword [rsp + 0x148]
mov ecx, 0x20800800
test eax, eax
mov dword [rdi + 8], eax
mov edx, 0x10800800
cmovne ecx, edx
or dword [rdi + 4], ecx
jmp 0x14015dc0d
lea rax, [rdi + 0x48]
mov qword [rdi + 8], rax
mov word [rax], 0x30
jmp 0x14015dc0d
mov edx, 0x48
mov rcx, r12
call fcn.1400b9520
mov rbx, rax
test rax, rax
je 0x14015dbf4
xor eax, eax
xorps xmm0, xmm0
movups xmmword [rbx], xmm0
movups xmmword [rbx + 0x10], xmm0
movups xmmword [rbx + 0x20], xmm0
movups xmmword [rbx + 0x30], xmm0
mov qword [rbx + 0x40], rax
mov eax, 0xffffffff
mov word [rbx + 0x2e], ax
mov byte [rbx], 0x2c
mov qword [rbx + 0x18], rbp
mov ecx, dword [r15]
and ecx, 0x400208
mov qword [rbx + 0x10], rdi
or ecx, dword [rbx + 4]
mov dword [rbx + 4], ecx
mov eax, dword [rdi + 4]
and eax, 0x400208
or eax, ecx
mov dword [rbx + 4], eax
jmp 0x14015dc0a
mov rcx, qword [r14]
mov rdx, rdi
call fcn.1401038c0
mov rcx, qword [r14]
mov rdx, rbp
call fcn.1401038c0
mov rdi, rbx
xor ebx, ebx
mov r12, qword [rsp + 0x40]
mov edx, 0x2000
mov rax, qword [rsp + 0x130]
inc r13d
add rsi, 0x38
mov r8d, 0x8002
cmp r13d, dword [rax + 0x84]
jl 0x14015da00
mov rsi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x50]
mov eax, 1
lea rdx, [rsp + 0x70]
mov dword [rsp + 0x70], eax
xor r12d, r12d
mov dword [rsp + 0x74], eax
xor r9d, r9d
movups xmm0, xmmword [rbx]
mov dword [rsp + 0x38], r12d
mov eax, 0x1000
mov word [rsp + 0x30], ax
mov r8, rdi
movups xmmword [rsp + 0x78], xmm0
mov qword [rsp + 0x28], r12
mov rcx, r14
movups xmm1, xmmword [rbx + 0x10]
mov qword [rsp + 0x20], r12
movups xmmword [rsp + 0x88], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rsp + 0x98], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rsp + 0xa8], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rsp + 0xb8], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rsp + 0xc8], xmm1
movsd xmm0, qword [rbx + 0x60]
movsd qword [rsp + 0xd8], xmm0
mov byte [rsp + 0xb4], 0
inc byte [r14 + 0x26]
call fcn.14016a860
mov qword [rsp + 0x50], rax
mov r15, rax
lea rbp, [0x14099b880]
test rax, rax
je 0x14015dfac
mov rax, qword [rsp + 0x140]
mov r12d, dword [r14 + 0x38]
inc r12d
mov dword [rsp + 0x148], r12d
mov edx, dword [rax + 4]
mov dword [r14 + 0x38], r12d
mov r13, qword [rbx + 0x20]
mov eax, dword [r15 + 0x30]
mov dword [rsp + 0x130], eax
test byte [r13 + 0x30], 0x80
jne 0x14015dd8d
movsxd rcx, dword [rsi + 0x90]
xor r8d, r8d
cmp dword [rsi + 0x94], ecx
jg 0x14015dd5a
mov dword [rsp + 0x20], r8d
mov r9d, r12d
mov r8d, edx
mov rcx, rsi
mov edx, 0x87
call fcn.1400e7510
jmp 0x14015de10
lea eax, [rcx + 1]
mov dword [rsi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x87
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r12d
mov dword [rax + rcx*8 + 0xc], r8d
mov qword [rax + rcx*8 + 0x10], r8
jmp 0x14015de10
mov rbx, qword [r13 + 0x10]
test rbx, rbx
je 0x14015dda8
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x14015dda8
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x14015dd96
movzx ecx, word [rbx + 0x5e]
mov dword [rsp + 0x138], ecx
lea eax, [rcx - 1]
add eax, r12d
mov dword [r14 + 0x38], eax
test ecx, ecx
je 0x14015de10
xor r8d, r8d
mov r15d, r12d
mov ebp, r8d
mov r14d, ecx
mov r12d, edx
mov rax, qword [rbx + 8]
mov r8d, r12d
mov rdx, r13
mov dword [rsp + 0x20], r15d
mov rcx, rsi
movsx r9d, word [rax + rbp*2]
call fcn.1401090b0
inc r15d
inc rbp
cmp rbp, r14
jl 0x14015ddd0
mov r14, qword [rsp + 0x68]
lea rbp, [0x14099b880]
mov r12d, dword [rsp + 0x148]
mov r15, qword [rsp + 0x50]
mov r10, qword [rsp + 0x48]
mov r11, qword [rsp + 0x58]
movsxd rdx, dword [r10]
mov r8d, dword [r11 + 4]
cmp dword [rsi + 0x94], edx
jg 0x14015de4b
xor r9d, r9d
mov dword [rsp + 0x20], r12d
mov rcx, rsi
lea edx, [r9 + 0x40]
call fcn.1400e7510
mov r10, qword [rsp + 0x48]
mov edx, eax
mov r11, qword [rsp + 0x58]
jmp 0x14015de7a
lea rcx, [rdx + rdx*2]
xor r9d, r9d
lea eax, [rdx + 1]
mov dword [r10], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0x40
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r9
mov rax, qword [rsi]
mov r13d, dword [rsp + 0x138]
movsxd rbx, edx
cmp byte [rax + 0x67], 0
jne 0x14015dea3
mov rax, qword [rsi + 0x88]
lea rcx, [rbx + rbx*2]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], r13d
movsxd rdx, dword [r10]
mov r8d, dword [r11]
mov r9d, dword [rsp + 0x130]
cmp dword [rsi + 0x94], edx
jg 0x14015dedc
mov edx, 0x1d
mov dword [rsp + 0x20], r12d
mov rcx, rsi
call fcn.1400e7510
mov r10, qword [rsp + 0x48]
mov edx, eax
mov r11, qword [rsp + 0x58]
xor r12d, r12d
jmp 0x14015df0b
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [r10], eax
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8 + 0xc], r12d
xor r12d, r12d
mov qword [rax + rcx*8 + 0x10], r12
mov dword [rax + rcx*8], 0x1d
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r9d
mov rax, qword [rsi]
cmp byte [rax + 0x67], 0
jne 0x14015df2c
movsxd rax, edx
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 0x88]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], r13d
mov rax, qword [rsi]
mov edx, dword [r10]
cmp byte [rax + 0x67], 0
je 0x14015df3d
mov rax, rbp
jmp 0x14015df4c
mov rax, qword [rsi + 0x88]
lea rcx, [rbx + rbx*2]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
movsxd rcx, dword [r10]
mov edx, dword [r11 + 0xc]
mov r8d, dword [r11 + 8]
cmp dword [rsi + 0x94], ecx
jg 0x14015df79
mov r9d, edx
mov dword [rsp + 0x20], r12d
mov edx, 0xa
mov rcx, rsi
call fcn.1400e7510
jmp 0x14015dfa4
lea eax, [rcx + 1]
mov dword [r10], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rsi + 0x88]
mov dword [rax + rcx*8], 0xa
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], r12d
mov qword [rax + rcx*8 + 0x10], r12
mov rcx, r15
call fcn.14016bbb0
test rdi, rdi
je 0x14015dfbc
mov rcx, qword [r14]
mov rdx, rdi
call fcn.1401038c0
movsxd rcx, dword [r14 + 0x128]
test ecx, ecx
jne 0x14015dfd0
mov dword [r14 + 0x128], r12d
jmp 0x14015dff6
mov rdx, qword [r14 + 0x10]
mov rax, qword [rdx]
cmp byte [rax + 0x67], 0
jne 0x14015dfec
mov rax, qword [rdx + 0x88]
lea rcx, [rcx + rcx*2]
lea rbp, [rax + rcx*8]
mov eax, dword [rbp + 8]
mov dword [r14 + 0x128], eax
dec byte [r14 + 0x26]
add rsp, 0xe8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret