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

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x110
mov rax, qword [0x140156040]
xor rax, rsp
mov qword [rsp + 0x100], rax
mov r14, qword [rcx]
xor ebp, ebp
movzx eax, byte [r8 + 0x40]
mov esi, ebp
mov r12, qword [r8 + 0x60]
mov r13d, ebp
movsxd rbx, edx
mov rdx, rcx
mov rdi, qword [r14 + 0x10]
mov qword [rsp + 0x50], rcx
mov rcx, qword [r8 + 0x38]
mov qword [rsp + 0x60], rcx
imul rcx, rax, 0x68
mov rax, qword [rdx + 8]
mov qword [rsp + 0x70], r8
lea r8, str.RIGHT_JOIN__s
mov qword [rsp + 0x78], r14
mov qword [rsp + 0x68], rdi
mov r9, qword [rcx + rax + 0x28]
lea rdx, [rax + 8]
add rdx, rcx
mov eax, 1
mov qword [rsp + 0x58], rdx
mov rcx, r14
mov edx, eax
mov dword [rsp + 0x40], eax
mov r9, qword [r9]
call fcn.140032200
mov r15, rbx
test ebx, ebx
jle 0x1400aa3b1
mov rbx, qword [rsp + 0x50]
add rbx, 0x374
mov rax, qword [rbx + 0x5c]
movsxd rcx, dword [rdi + 0x90]
mov edx, dword [rbx]
or r13, qword [rax + 8]
cmp dword [rdi + 0x94], ecx
jg 0x1400aa322
mov r8d, edx
mov dword [rsp + 0x20], ebp
mov edx, 0x88
xor r9d, r9d
mov rcx, rdi
call fcn.140031c00
jmp 0x1400aa34b
lea eax, [rcx + 1]
mov dword [rdi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 0x88
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 8], rbp
mov qword [rax + rcx*8 + 0x10], rbp
mov edx, dword [rbx + 4]
test edx, edx
je 0x1400aa3a3
movsxd rcx, dword [rdi + 0x90]
cmp dword [rdi + 0x94], ecx
jg 0x1400aa37a
mov r8d, edx
mov dword [rsp + 0x20], ebp
mov edx, 0x88
xor r9d, r9d
mov rcx, rdi
call fcn.140031c00
jmp 0x1400aa3a3
lea eax, [rcx + 1]
mov dword [rdi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 0x88
mov dword [rax + rcx*8 + 4], edx
mov qword [rax + rcx*8 + 8], rbp
mov qword [rax + rcx*8 + 0x10], rbp
add rbx, 0x70
sub r15, 1
jne 0x1400aa2f0
mov rbx, qword [rsp + 0x58]
test byte [rbx + 0x3c], 0x40
jne 0x1400aa62c
or r13, qword [r12 + 8]
mov r12d, ebp
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x48], r13
cmp dword [rax + 0x94], ebp
jle 0x1400aa62c
mov rdi, qword [rsp + 0x48]
mov r13, rbp
mov edx, 0x2000
mov r9d, 0x8002
mov r8d, 0x48
nop word [rax + rax]
mov rcx, qword [rax + 0xa0]
add rcx, r13
test word [rcx + 0x12], r9w
je 0x1400aa41b
cmp word [rcx + 0x14], dx
jne 0x1400aa622
mov rax, rdi
not rax
test qword [rcx + 0x30], rax
jne 0x1400aa609
mov rdx, qword [rcx]
test byte [rdx + 4], 3
jne 0x1400aa604
test rdx, rdx
je 0x1400aa456
mov rcx, qword [r14]
xor r9d, r9d
xor r8d, r8d
call fcn.14004c0d0
mov rbx, rax
mov r8d, 0x48
jmp 0x1400aa459
mov rbx, rbp
mov r15, qword [r14]
test rsi, rsi
jne 0x1400aa469
mov rsi, rbx
jmp 0x1400aa5f8
test rbx, rbx
je 0x1400aa5f8
mov eax, dword [rsi + 4]
and eax, 0x20000001
cmp eax, 0x20000000
je 0x1400aa494
mov eax, dword [rbx + 4]
and eax, 0x20000001
cmp eax, 0x20000000
jne 0x1400aa555
cmp byte [r14 + 0x124], 2
jae 0x1400aa555
mov rdx, rsi
mov rcx, r14
call fcn.14004beb0
mov rdx, rbx
mov rcx, r14
call fcn.14004beb0
lea rdx, [rsp + 0x48]
mov dword [rsp + 0x48], ebp
lea rcx, [0x1401331e4]
call fcn.14000b180
test eax, eax
mov ebx, eax
mov eax, 0x48
mov edx, 0x4a
cmovne edx, eax
mov rcx, r15
call fcn.140007000
mov rsi, rax
test rax, rax
je 0x1400aa5f8
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rsi], xmm0
movups xmmword [rsi + 0x10], xmm0
movups xmmword [rsi + 0x20], xmm0
movups xmmword [rsi + 0x30], xmm0
mov qword [rsi + 0x40], rax
mov byte [rsi], 0x9b
mov word [rsi + 0x32], 0xffff
test ebx, ebx
je 0x1400aa53c
mov eax, dword [rsp + 0x48]
mov ecx, 0x20800800
test eax, eax
mov dword [rsi + 8], eax
mov edx, 0x10800800
mov dword [rsi + 0x28], 1
cmovne ecx, edx
or dword [rsi + 4], ecx
jmp 0x1400aa5f8
lea rax, [rsi + 0x48]
mov qword [rsi + 8], rax
mov word [rax], 0x30
mov dword [rsi + 0x28], 1
jmp 0x1400aa5f8
mov rdx, r8
mov rcx, r15
call fcn.140007000
mov r15, rax
test rax, rax
je 0x1400aa5df
xor eax, eax
xorps xmm0, xmm0
movups xmmword [r15], xmm0
movups xmmword [r15 + 0x10], xmm0
movups xmmword [r15 + 0x20], xmm0
movups xmmword [r15 + 0x30], xmm0
mov qword [r15 + 0x40], rax
mov byte [r15], 0x2c
mov word [r15 + 0x32], 0xffff
mov qword [r15 + 0x18], rbx
mov ecx, dword [rbx + 4]
and ecx, 0x400208
mov qword [r15 + 0x10], rsi
or ecx, dword [r15 + 4]
mov dword [r15 + 4], ecx
mov eax, dword [rsi + 4]
and eax, 0x400208
or eax, ecx
mov rcx, r15
mov dword [r15 + 4], eax
call fcn.14004afd0
mov rax, qword [r14]
mov r8d, dword [rax + 0x94]
cmp dword [r15 + 0x28], r8d
jle 0x1400aa5f5
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, r14
call fcn.14000a730
jmp 0x1400aa5f5
mov rcx, qword [r14]
mov rdx, rsi
call fcn.14004bde0
mov rcx, qword [r14]
mov rdx, rbx
call fcn.14004bde0
mov rsi, r15
mov r8d, 0x48
mov r9d, 0x8002
mov edx, 0x2000
mov rax, qword [rsp + 0x50]
inc r12d
add r13, 0x38
cmp r12d, dword [rax + 0x94]
jl 0x1400aa400
mov rdi, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x58]
mov eax, 1
mov dword [rsp + 0x38], ebp
mov dword [rsp + 0x90], eax
lea rdx, [rsp + 0x90]
mov dword [rsp + 0x94], eax
xor r9d, r9d
movups xmm0, xmmword [rbx]
mov word [rsp + 0x30], 0x1000
mov r8, rsi
mov qword [rsp + 0x28], rbp
mov rcx, r14
movups xmmword [rsp + 0x98], xmm0
mov qword [rsp + 0x20], rbp
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rsp + 0xa8], xmm1
movups xmm0, xmmword [rbx + 0x20]
movups xmmword [rsp + 0xb8], xmm0
movups xmm1, xmmword [rbx + 0x30]
movups xmmword [rsp + 0xc8], xmm1
movups xmm0, xmmword [rbx + 0x40]
movups xmmword [rsp + 0xd8], xmm0
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rsp + 0xe8], xmm1
movsd xmm0, qword [rbx + 0x60]
movsd qword [rsp + 0xf8], xmm0
mov byte [rsp + 0xd4], bpl
inc byte [r14 + 0x26]
call fcn.1400b65c0
mov qword [rsp + 0x80], rax
mov r12, rax
lea r15, [0x14015c600]
test rax, rax
je 0x1400aa993
mov rdx, qword [rsp + 0x70]
mov edx, dword [rdx + 4]
inc dword [r14 + 0x38]
mov rbx, qword [rbx + 0x20]
mov r13d, dword [r14 + 0x38]
mov eax, dword [rax + 0x38]
mov dword [rsp + 0x50], r13d
test byte [rbx + 0x30], 0x80
mov dword [rsp + 0x48], eax
mov qword [rsp + 0x70], rbx
jne 0x1400aa76e
movsxd rcx, dword [rdi + 0x90]
cmp dword [rdi + 0x94], ecx
jg 0x1400aa73c
mov r8d, edx
mov dword [rsp + 0x20], ebp
mov edx, 0x87
mov r9d, r13d
mov rcx, rdi
call fcn.140031c00
jmp 0x1400aa7f2
lea eax, [rcx + 1]
mov dword [rdi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 0x87
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], r13d
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
jmp 0x1400aa7f2
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x1400aa789
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x1400aa789
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x1400aa777
movzx ecx, word [rbx + 0x5e]
lea eax, [r13 - 1]
add eax, ecx
mov dword [rsp + 0x40], ecx
mov dword [r14 + 0x38], eax
test ecx, ecx
je 0x1400aa7f2
mov r14, qword [rsp + 0x70]
mov r15, rbp
mov r12d, r13d
mov ebp, edx
mov r13d, ecx
nop
mov rax, qword [rbx + 8]
mov r8d, ebp
mov rdx, r14
mov dword [rsp + 0x20], r12d
mov rcx, rdi
movsx r9d, word [rax + r15*2]
call fcn.140051340
inc r12d
inc r15
cmp r15, r13
jl 0x1400aa7b0
mov r14, qword [rsp + 0x78]
lea r15, [0x14015c600]
mov r13d, dword [rsp + 0x50]
xor ebp, ebp
mov r12, qword [rsp + 0x80]
mov r10, qword [rsp + 0x60]
movsxd rbx, dword [rdi + 0x90]
mov edx, dword [r10 + 4]
cmp dword [rdi + 0x94], ebx
jg 0x1400aa82b
mov r8d, edx
mov dword [rsp + 0x20], r13d
mov edx, 0x3f
xor r9d, r9d
mov rcx, rdi
call fcn.140031c00
mov r10, qword [rsp + 0x60]
mov ebx, eax
jmp 0x1400aa858
lea rcx, [rbx + rbx*2]
lea eax, [rbx + 1]
mov dword [rdi + 0x90], eax
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 0x3f
mov dword [rax + rcx*8 + 4], edx
mov dword [rax + rcx*8 + 8], ebp
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], rbp
mov rax, qword [rdi]
cmp byte [rax + 0x67], 0
jne 0x1400aa87c
mov edx, dword [rsp + 0x40]
movsxd rax, ebx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], edx
movsxd rdx, dword [rdi + 0x90]
mov r8d, dword [r10]
mov r9d, dword [rsp + 0x48]
cmp dword [rdi + 0x94], edx
jg 0x1400aa8ae
mov edx, 0x1c
mov dword [rsp + 0x20], r13d
mov rcx, rdi
call fcn.140031c00
mov r10, qword [rsp + 0x60]
mov edx, eax
jmp 0x1400aa8dd
lea rcx, [rdx + rdx*2]
lea eax, [rdx + 1]
mov dword [rdi + 0x90], eax
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 0x1c
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], r9d
mov dword [rax + rcx*8 + 0xc], r13d
mov qword [rax + rcx*8 + 0x10], rbp
mov rax, qword [rdi]
cmp byte [rax + 0x67], 0
jne 0x1400aa901
movsxd rax, edx
mov edx, dword [rsp + 0x40]
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
mov byte [rax + rcx*8 + 1], 0xfd
mov dword [rax + rcx*8 + 0x10], edx
mov edx, dword [rdi + 0x90]
test ebx, ebx
jns 0x1400aa90e
lea ebx, [rdx - 1]
mov rax, qword [rdi]
cmp byte [rax + 0x67], 0
je 0x1400aa91c
mov rax, r15
jmp 0x1400aa92e
movsxd rax, ebx
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x88]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
movsxd rcx, dword [rdi + 0x90]
mov edx, dword [r10 + 0xc]
mov r8d, dword [r10 + 8]
cmp dword [rdi + 0x94], ecx
jg 0x1400aa95e
mov r9d, edx
mov dword [rsp + 0x20], ebp
mov edx, 9
mov rcx, rdi
call fcn.140031c00
jmp 0x1400aa98b
lea eax, [rcx + 1]
mov dword [rdi + 0x90], eax
lea rcx, [rcx + rcx*2]
mov rax, qword [rdi + 0x88]
mov dword [rax + rcx*8], 9
mov dword [rax + rcx*8 + 4], r8d
mov dword [rax + rcx*8 + 8], edx
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
mov rcx, r12
call fcn.1400b76c0
test rsi, rsi
je 0x1400aa9a3
mov rcx, qword [r14]
mov rdx, rsi
call fcn.14004bde0
mov ecx, dword [r14 + 0x130]
test ecx, ecx
je 0x1400aa9db
mov rdx, qword [r14 + 0x10]
jns 0x1400aa9bc
mov ecx, dword [rdx + 0x90]
dec ecx
mov rax, qword [rdx]
cmp byte [rax + 0x67], 0
jne 0x1400aa9d7
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov rax, qword [rdx + 0x88]
lea r15, [rax + rcx*8]
mov ebp, dword [r15 + 8]
dec byte [r14 + 0x26]
mov dword [r14 + 0x130], ebp
mov rcx, qword [rsp + 0x100]
xor rcx, rsp
call fcn.1400fb0b0
mov rbx, qword [rsp + 0x158]
add rsp, 0x110
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret