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

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x180
mov rax, qword [0x140418a10]
xor rax, rsp
mov qword [rsp + 0x170], rax
mov rsi, qword [rcx]
lea rax, [rcx + 0x158]
mov r11, rcx
mov r13, qword [r11 + 8]
mov r12, qword [rsi + 0x10]
movsxd r10, edx
xor ebp, ebp
lea r14, [rcx + 0x340]
mov qword [rsp + 0xa8], rax
mov rax, qword [rsi]
mov qword [rsp + 0x68], rcx
add r13, 8
mov rbx, r8
movsxd r8, dword [r11 + 0x54]
lea r9, [r10 + r10*4]
shl r9, 4
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0xd0], rbx
add r14, r9
mov dword [rsp + 0x78], r10d
mov qword [rsp + 0xc8], rsi
movzx eax, byte [r14 + 0x24]
mov r15, qword [r14 + 0x40]
mov qword [rsp + 0x50], r12
imul rcx, rax, 0x78
add r13, rcx
mov qword [rsp + 0xe0], r14
mov r9d, dword [r13 + 0x48]
mov qword [rsp + 0x70], r15
mov edx, ebp
mov qword [rsp + 0xb8], r13
mov ecx, ebp
lea edi, [rbp + 1]
mov dword [rsp + 0x40], r9d
test r8, r8
jle 0x140283c67
lea rax, [r11 + 0x58]
cmp dword [rax], r9d
je 0x140283d96
inc rcx
inc edx
add rax, 4
cmp rcx, r8
jl 0x140283c50
mov rax, rbp
not rax
mov ecx, r10d
and rax, rbx
mov qword [r14 + 0x48], rax
mov rbx, qword [r11 + 0x28]
shr rbx, cl
and ebx, edi
test byte [r15 + 0x28], 0x40
mov qword [rsp + 0x80], rbx
je 0x140283c9a
test byte [r11 + 0x32], 0x20
mov dword [rsp + 0x60], edi
je 0x140283c9e
mov dword [rsp + 0x60], ebp
mov rcx, r12
call fcn.140237f30
mov rcx, r12
mov edi, eax
mov dword [rsp + 0x58], eax
mov dword [r14 + 0x10], eax
mov dword [r14 + 0xc], eax
call fcn.140237f30
mov dword [rsp + 0x90], eax
mov dword [r14 + 0x18], eax
cmp byte [r14 + 0x24], bpl
jbe 0x140283cf5
test byte [r13 + 0x3c], 8
je 0x140283cf5
mov r9d, dword [rsi + 0x58]
xor r8d, r8d
mov rcx, r12
inc r9d
lea edx, [r8 + 0x19]
mov dword [rsp + 0x20], ebp
mov dword [rsi + 0x58], r9d
mov dword [r14], r9d
call fcn.140237cb0
mov ecx, dword [r13 + 0x40]
mov qword [rsp + 0xd8], 0xa
test cl, 4
je 0x140283da3
mov ebx, dword [r13 + 0x34]
mov eax, dword [r13 + 0x30]
xor r9d, r9d
lea edx, [r9 + 0x14]
mov rcx, r12
mov r8d, ebx
mov dword [rsp + 0x20], eax
call fcn.140237cb0
mov r9d, edi
mov r8d, ebx
mov edx, 0x16
mov rcx, r12
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov r15, qword [rsp + 0x68]
mov dword [r14 + 0x2c], eax
mov byte [r14 + 0x25], 0x10
mov r13d, dword [rsp + 0x40]
lea rax, [r15 + 0x158]
mov edi, dword [rax + 0x14]
mov rbx, qword [rax + 0x20]
test edi, edi
jle 0x140284ff4
mov r13d, dword [rsp + 0x90]
test byte [rbx + 0x1c], 6
jne 0x140284fd9
mov rax, qword [rbx + 0x30]
test qword [r14 + 0x48], rax
je 0x140284fb5
mov byte [r15 + 0x36], 1
jmp 0x140284fd9
mov ecx, edx
mov rax, rdi
shl rax, cl
jmp 0x140283c6a
mov edx, dword [r15 + 0x28]
bt edx, 0xa
jae 0x14028403f
movzx r13d, word [r15 + 0x2c]
mov ecx, dword [rsi + 0x48]
mov edx, dword [rsi + 0x4c]
inc dword [rsi + 0x74]
lea r8d, [r13 + 2]
mov dword [rsp + 0x44], edx
mov dword [rsp + 0x60], r8d
cmp r8d, ecx
jg 0x140283de0
lea eax, [r8 + rdx]
sub ecx, r8d
mov dword [rsi + 0x4c], eax
mov dword [rsi + 0x48], ecx
jmp 0x140283df0
mov eax, dword [rsi + 0x58]
lea edx, [rax + 1]
add eax, r8d
mov dword [rsp + 0x44], edx
mov dword [rsi + 0x58], eax
mov r12d, dword [r14 + 0xc]
mov ebx, ebp
test r13d, r13d
jle 0x140283e6d
mov rdi, rbp
mov rbp, qword [rsp + 0x70]
lea r15d, [rdx + 2]
nop word [rax + rax]
mov rax, qword [rbp + 0x30]
mov rdx, qword [rdi + rax]
test rdx, rdx
je 0x140283e5b
test byte [rdx + 0x1a], 1
mov rcx, rsi
je 0x140283e4b
lea eax, [r15 + rbx]
mov r9d, ebx
mov r8, r14
mov dword [rsp + 0x28], eax
mov rax, qword [rsp + 0x80]
mov dword [rsp + 0x20], eax
call fcn.140282e60
mov r12d, dword [r14 + 0x10]
jmp 0x140283e5b
mov rdx, qword [rdx]
lea r8d, [r15 + rbx]
mov rdx, qword [rdx + 0x18]
call fcn.14024ea10
inc ebx
add rdi, 8
cmp ebx, r13d
jl 0x140283e10
mov r15, qword [rsp + 0x70]
xor ebp, ebp
mov ebx, dword [rsp + 0x44]
mov r8d, dword [r15 + 0x18]
mov rcx, qword [rsp + 0x50]
mov r9d, ebx
mov edx, 0x19
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov rcx, qword [rsp + 0x50]
lea r9d, [rbx + 1]
mov r8d, r13d
mov edx, 0x19
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
cmp byte [r15 + 0x1c], 0
mov r8d, dword [rsp + 0x40]
mov rbx, qword [r15 + 0x20]
mov eax, 0xfffffff5
mov r9d, r12d
mov r12, qword [rsp + 0x50]
mov edi, 0xfffffffe
mov edx, 0xe
cmovne edi, eax
mov eax, dword [rsp + 0x44]
mov rcx, r12
mov dword [rsp + 0x20], eax
call fcn.140237cb0
mov r9d, edi
mov r8, rbx
mov rcx, r12
mov edx, eax
call fcn.1402384d0
mov byte [r15 + 0x1c], 0
mov r10d, ebp
test r13d, r13d
jle 0x140283f77
nop word [rax + rax]
cmp r10d, 0x10
jge 0x140283f77
movzx eax, word [r15 + 0x1e]
movzx ecx, r10w
shr ax, cl
test al, 1
je 0x140283f6f
mov rax, qword [r15 + 0x30]
movsxd rcx, r10d
mov rcx, qword [rax + rcx*8]
test rcx, rcx
je 0x140283f6f
movzx edx, byte [rcx + 0x1c]
test dl, 4
jne 0x140283f6f
cmp dword [r14], 0
je 0x140283f3e
mov rax, qword [rcx]
test byte [rax + 4], 1
je 0x140283f6f
mov rax, qword [rcx + 0x30]
test qword [r14 + 0x48], rax
jne 0x140283f6f
movsxd rax, dword [rcx + 8]
or dl, 4
mov byte [rcx + 0x1c], dl
test eax, eax
js 0x140283f6f
mov rcx, qword [rcx + 0x20]
imul rdx, rax, 0x38
add rdx, qword [rcx + 0x20]
dec byte [rdx + 0x1d]
jne 0x140283f6f
mov rcx, r14
call fcn.140282d40
inc r10d
cmp r10d, r13d
jl 0x140283f00
mov r13d, dword [rsp + 0x40]
mov r10d, dword [rsp + 0x60]
mov byte [r14 + 0x25], 0x96
mov dword [r14 + 0x28], r13d
mov eax, dword [r12 + 0x3c]
mov r11d, 0xa
mov dword [r14 + 0x2c], eax
mov eax, dword [rsp + 0x44]
lea rcx, [rsi + 0x94]
lea r9d, [rax - 1]
mov r8d, r11d
add r9d, r10d
nop
mov edx, dword [rcx]
cmp edx, eax
jl 0x140283fdd
cmp edx, r9d
jg 0x140283fdd
cmp byte [rcx - 6], 0
je 0x140283fdb
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x140283fd3
movzx eax, al
mov dword [rsi + rax*4 + 0x28], edx
inc byte [rsi + 0x1f]
mov eax, dword [rsp + 0x44]
mov byte [rcx - 6], 0
mov dword [rcx], ebp
add rcx, 0x14
dec r8
jne 0x140283fb0
cmp r10d, dword [rsi + 0x48]
jle 0x140283ff3
mov dword [rsi + 0x48], r10d
mov dword [rsi + 0x4c], eax
dec dword [rsi + 0x74]
lea rcx, [rsi + 0x94]
mov r8, r11
mov edx, dword [rcx]
test edx, edx
je 0x14028402c
mov eax, dword [rsi + 0x74]
cmp dword [rcx - 4], eax
jle 0x14028402c
cmp byte [rcx - 6], 0
je 0x14028402a
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x140284026
movzx eax, al
mov dword [rsi + rax*4 + 0x28], edx
inc byte [rsi + 0x1f]
mov byte [rcx - 6], 0
mov dword [rcx], ebp
add rcx, 0x14
dec r8
jne 0x140284000
mov r15, qword [rsp + 0x68]
jmp 0x140283d56
mov eax, edx
and eax, 0x100
je 0x1402840f8
test dl, 5
je 0x1402840f8
mov rax, qword [r15 + 0x30]
xor r9d, r9d
mov r8, r14
mov rdx, qword [rax]
inc dword [rsi + 0x58]
mov ebx, dword [rsi + 0x58]
mov rax, qword [rsp + 0x80]
mov rcx, rsi
mov dword [rsp + 0x28], ebx
mov dword [rsp + 0x20], eax
call fcn.140282e60
mov edi, eax
cmp eax, ebx
je 0x140284090
mov edx, ebx
mov rcx, rsi
call fcn.14024feb0
mov ebx, dword [r14 + 0x10]
mov r8d, edi
mov edx, 0x26
mov rcx, r12
mov r9d, ebx
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov r13d, dword [rsp + 0x40]
mov r9d, ebx
mov edx, 0x43
mov rcx, r12
mov r8d, r13d
mov dword [rsp + 0x20], edi
call fcn.140237cb0
mov r8d, 1
mov edx, edi
mov rcx, rsi
call fcn.14024d030
mov r9d, edi
or r8d, 0xffffffff
mov edx, r13d
mov rcx, rsi
call fcn.14024cec0
mov r15, qword [rsp + 0x68]
mov byte [r14 + 0x25], 0x9b
jmp 0x140283d56
test eax, eax
je 0x1402842dc
test dl, 2
je 0x1402842dc
mov r8, qword [rsp + 0x70]
mov r15d, 0x9b
mov eax, ebp
mov r12, rbp
mov r13, rbp
test dl, 0x20
je 0x14028412d
mov rax, qword [r8 + 0x30]
mov r13, qword [rax]
mov eax, 1
test dl, 0x10
je 0x14028413d
movsxd rcx, eax
mov rax, qword [r8 + 0x30]
mov r12, qword [rax + rcx*8]
test ebx, ebx
je 0x14028414a
mov rax, r13
mov r13, r12
mov r12, rax
test r13, r13
je 0x1402841bb
mov rbx, qword [r13]
lea r8, [rsp + 0x60]
mov rcx, rsi
mov rdx, qword [rbx + 0x18]
mov dword [rsp + 0x44], 0x3d3b3c3e
call fcn.14024e8b0
movzx ecx, byte [rbx]
mov r9d, dword [rsp + 0x58]
movzx edx, byte [rsp + rcx - 0xc]
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
mov edi, eax
mov dword [rsp + 0x20], eax
call fcn.140237cb0
mov r8d, 1
mov edx, edi
mov rcx, rsi
call fcn.14024d030
mov edx, dword [rsp + 0x60]
mov rcx, rsi
call fcn.14024feb0
mov rdx, r13
mov rcx, r14
call fcn.140282d40
mov edi, dword [rsp + 0x58]
jmp 0x1402841e0
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
mov edx, 0x69
mov eax, 0x66
test ebx, ebx
mov r9d, edi
cmovne edx, eax
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
test r12, r12
je 0x140284236
mov rbx, qword [r12]
inc dword [rsi + 0x58]
mov r13d, dword [rsi + 0x58]
mov rdx, qword [rbx + 0x18]
mov r8d, r13d
mov rcx, rsi
call fcn.14024ea10
movzx eax, byte [rbx]
sub al, 0x50
test al, 0xfd
je 0x140284213
mov eax, 0x52
lea r15d, [rax - 2]
jmp 0x14028421e
mov eax, 0x51
mov r15d, 0x53
cmp dword [rsp + 0x80], ebp
mov rdx, r12
mov rcx, r14
cmovne r15d, eax
call fcn.140282d40
jmp 0x140284239
mov r13d, ebp
cmp dword [rsp + 0x80], ebp
mov r12, qword [rsp + 0x50]
mov ecx, dword [r12 + 0x3c]
sete al
add al, 8
mov dword [r14 + 0x2c], ecx
mov byte [r14 + 0x25], al
mov eax, dword [rsp + 0x40]
mov dword [r14 + 0x28], eax
cmp r15d, 0x9b
je 0x140284fa8
inc dword [rsi + 0x58]
mov ebx, dword [rsi + 0x58]
mov r8d, eax
mov edx, 0x64
mov rcx, r12
mov r9d, ebx
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov edx, dword [rsp + 0x40]
mov r9d, ebx
or r8d, 0xffffffff
mov rcx, rsi
call fcn.14024cec0
mov r9d, edi
mov r8d, r13d
mov edx, r15d
mov rcx, r12
mov dword [rsp + 0x20], ebx
call fcn.140237cb0
mov rdx, qword [r12 + 8]
mov r15, qword [rsp + 0x68]
mov r13d, dword [rsp + 0x40]
test rdx, rdx
je 0x140283d56
movsxd rax, dword [r12 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x6b
jmp 0x140283d56
mov eax, 0x200
test eax, edx
je 0x140284988
mov eax, dword [r14 + 8]
mov r13, qword [rsp + 0x70]
movzx ebx, word [r15 + 0x18]
mov r10, qword [r13 + 0x20]
mov rdi, rbp
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x68]
xor r15b, r15b
mov qword [rsp + 0x98], rbp
test byte [rax + 0x32], 1
mov qword [rsp + 0x88], rbp
mov r9d, ebp
mov byte [rsp + 0x48], dil
mov byte [rsp + 0x49], dil
mov qword [rsp + 0xc0], r10
je 0x140284351
cmp byte [rax + 0x34], dil
je 0x140284351
mov r11d, 1
cmp word [r10 + 0x5e], bx
jbe 0x140284357
movzx r15d, r11b
mov r9d, r11d
jmp 0x140284357
mov r11d, 1
movzx r12d, bx
mov r8d, r12d
test dl, 0x20
je 0x140284379
mov rax, qword [r13 + 0x30]
inc r8d
mov r9d, r11d
mov rdi, qword [rax + r12*8]
mov qword [rsp + 0x98], rdi
test dl, 0x10
je 0x1402843c5
mov rax, qword [r13 + 0x30]
movsxd rcx, r8d
mov r9d, r11d
mov rax, qword [rax + rcx*8]
mov qword [rsp + 0x88], rax
test rdi, rdi
jne 0x1402843c5
mov rax, qword [r10 + 8]
movzx ecx, bx
movsx rdx, word [rax + rcx*2]
test edx, edx
js 0x1402843c5
mov rax, qword [r10 + 0x18]
lea rdx, [rdx + rdx*2]
movzx r15d, r15b
mov rcx, qword [rax + 8]
add rdx, rdx
cmp byte [rcx + rdx*8 + 0x28], bpl
cmove r15d, r11d
mov r8d, dword [rsp + 0x80]
lea rax, [rsp + 0xb8]
mov rdx, r14
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.1402830c0
mov r9d, eax
mov dword [rsp + 0x78], eax
mov rax, qword [rsp + 0xb8]
test rax, rax
je 0x140284404
movzx ecx, bx
movzx edx, byte [rcx + rax]
mov byte [rsp + 0x48], dl
mov eax, dword [r14 + 0x10]
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0xc0]
movzx r8d, word [rax + 0x5e]
cmp bx, r8w
jae 0x14028443c
mov rax, qword [rax + 0x38]
mov edx, ebp
movzx ecx, bx
cmp byte [rcx + rax], dl
mov rax, qword [rsp + 0x80]
sete dl
cmp eax, edx
je 0x14028444e
jmp 0x140284444
mov rax, qword [rsp + 0x80]
test eax, eax
je 0x140284476
cmp r8w, bx
jne 0x140284476
mov rax, qword [rsp + 0x88]
mov rcx, rdi
mov byte [rsp + 0x49], r15b
mov qword [rsp + 0x88], rcx
xor r15b, r15b
mov rdi, rax
mov qword [rsp + 0x98], rax
jmp 0x14028447e
mov rcx, qword [rsp + 0x88]
test rdi, rdi
je 0x140284497
test byte [rdi + 0x1a], 0x28
jne 0x140284497
mov dword [rsp + 0xa0], ebp
mov eax, 1
jmp 0x1402844a3
mov eax, 1
mov dword [rsp + 0xa0], eax
test rcx, rcx
je 0x1402844b2
test byte [rcx + 0x1a], 0x28
mov dword [rsp + 0x5c], ebp
je 0x1402844b6
mov dword [rsp + 0x5c], eax
test rdi, rdi
jne 0x140284688
test bx, bx
jne 0x140284688
mov dword [rsp + 0x7c], ebp
mov edi, r12d
test r15b, r15b
je 0x1402844fd
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
add r9d, r12d
lea edx, [r8 + 0x1c]
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov dword [rsp + 0xa0], ebp
mov dword [rsp + 0x7c], 1
inc edi
mov r9, qword [rsp + 0xb8]
movzx eax, r15b
mov r15d, dword [rsp + 0x78]
mov r8d, edi
mov rcx, rsi
mov edx, r15d
sub r8d, eax
call fcn.140282da0
movsxd rdx, dword [rsp + 0x80]
movsxd rax, dword [rsp + 0xa0]
movsxd rcx, dword [rsp + 0x7c]
mov r9d, dword [rsp + 0x44]
mov r8d, dword [rsp + 0x58]
lea rcx, [rax + rcx*2]
lea rbx, [0x140000000]
mov dword [rsp + 0x28], edi
lea rax, [rdx + rcx*2]
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x20], r15d
movzx edx, byte [rax + rbx + 0x32c998]
call fcn.140237e90
mov rdi, qword [rsp + 0x88]
test rdi, rdi
je 0x140284722
mov rax, qword [rdi]
add r15d, r12d
mov r8d, 1
mov rbx, qword [rax + 0x18]
mov edx, r15d
mov rcx, rsi
call fcn.14024d030
mov r8d, r15d
mov rdx, rbx
mov rcx, rsi
call fcn.14024ea10
mov rcx, rbx
call fcn.14024bb80
test eax, eax
je 0x1402845c9
mov r9d, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x50]
mov r8d, r15d
mov edx, 0x4c
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
movzx edx, byte [rsp + 0x48]
mov rcx, rbx
call fcn.140249f90
cmp al, 0x62
je 0x140284677
movzx edx, byte [rsp + 0x48]
mov rcx, rbx
call fcn.14024bbb0
test eax, eax
jne 0x140284677
mov rcx, qword [rsi + 0x10]
lea rdi, [rsp + 0x48]
lea ebx, [rax + 1]
mov qword [rsp + 0xa0], rcx
cmp byte [rdi], 0x62
jne 0x140284618
dec ebx
inc r15d
inc rdi
test ebx, ebx
jg 0x140284607
movsxd rax, ebx
cmp rax, 1
jle 0x140284633
cmp byte [rdi + rax - 1], 0x62
jne 0x140284633
dec rax
dec ebx
cmp rax, 1
jg 0x140284621
test ebx, ebx
jle 0x14028466f
mov r9d, ebx
mov r8d, r15d
mov edx, 0x2f
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov rcx, qword [rsp + 0xa0]
mov r9d, ebx
mov r8, rdi
or edx, 0xffffffff
call fcn.1402384d0
mov r8d, ebx
mov edx, r15d
mov rcx, rsi
call fcn.14024d030
mov rdi, qword [rsp + 0x88]
mov r15d, dword [rsp + 0x78]
lea rbx, [0x140000000]
jmp 0x140284746
mov dword [rsp + 0x7c], eax
mov rax, qword [rsp + 0x98]
mov edi, r12d
test rax, rax
je 0x1402844cf
mov rax, qword [rax]
lea r8d, [r12 + r9]
mov rcx, rsi
mov r13, qword [rax + 0x18]
mov rdx, r13
call fcn.14024ea10
mov rcx, r13
call fcn.14024bb80
test eax, eax
je 0x1402846e2
mov r8d, dword [rsp + 0x78]
mov r9d, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x50]
add r8d, r12d
mov edx, 0x4c
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
je 0x140284718
movzx ebx, bx
add rbx, rcx
mov rcx, r13
movzx edx, byte [rbx]
call fcn.140249f90
cmp al, 0x62
jne 0x140284706
mov byte [rbx], al
movzx edx, byte [rbx]
mov rcx, r13
call fcn.14024bbb0
test eax, eax
je 0x140284718
mov byte [rbx], 0x62
mov r13, qword [rsp + 0x70]
jmp 0x1402844fb
cmp byte [rsp + 0x49], bpl
je 0x140284749
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
lea r9d, [r12 + r15]
lea edx, [r8 + 0x1c]
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov dword [rsp + 0x5c], ebp
inc r12d
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xb0]
call fcn.140218260
mov r10, qword [rsp + 0x50]
mov eax, dword [r10 + 0x3c]
mov dword [r14 + 0x2c], eax
test r12d, r12d
je 0x1402847af
movsxd rax, dword [rsp + 0x5c]
movsxd rcx, dword [rsp + 0x80]
mov r9d, dword [rsp + 0x44]
lea rcx, [rax + rcx*2]
mov dword [rsp + 0x28], r12d
mov r12d, dword [rsp + 0x58]
movzx edx, byte [rcx + rbx + 0x329b84]
mov r8d, r12d
mov rcx, r10
mov dword [rsp + 0x20], r15d
call fcn.140237e90
mov r10, qword [rsp + 0x50]
jmp 0x1402847b4
mov r12d, dword [rsp + 0x58]
mov rdx, qword [rsp + 0x98]
mov rcx, r14
call fcn.140282d40
mov rdx, rdi
mov rcx, r14
call fcn.140282d40
cmp dword [rsp + 0x60], ebp
jne 0x140284939
mov rbx, qword [rsp + 0xc0]
mov rbx, qword [rbx + 0x18]
test byte [rbx + 0x48], 0x20
jne 0x140284838
inc dword [rsi + 0x58]
mov ebx, dword [rsi + 0x58]
mov r8d, r12d
mov edx, 0x6d
mov rcx, r10
mov r9d, ebx
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov edx, dword [rsp + 0x40]
mov r9d, ebx
or r8d, 0xffffffff
mov rcx, rsi
call fcn.14024cec0
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
mov edx, 0x3f
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
jmp 0x140284939
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x140284853
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x140284853
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x140284841
movzx ecx, word [rbx + 0x5e]
mov edx, dword [rsi + 0x48]
mov r15d, dword [rsi + 0x4c]
cmp ecx, edx
jg 0x140284870
lea eax, [rcx + r15]
sub edx, ecx
mov dword [rsi + 0x4c], eax
mov dword [rsi + 0x48], edx
jmp 0x14028487c
mov eax, dword [rsi + 0x58]
lea r15d, [rax + 1]
add eax, ecx
mov dword [rsi + 0x58], eax
mov edi, ebp
cmp bp, word [rbx + 0x5e]
jae 0x140284910
mov r13, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0x50]
or r14d, 0xffffffff
nop dword [rax]
movzx r8d, word [r13 + 0x60]
mov edx, ebp
test r8d, r8d
jle 0x1402848d1
mov rax, qword [rbx + 8]
mov r9, qword [r13 + 8]
movsxd rcx, edi
movzx r10d, word [rax + rcx*2]
nop dword [rax]
movsxd rax, edx
cmp r10w, word [r9 + rax*2]
je 0x1402848d5
inc edx
cmp edx, r8d
jl 0x1402848c0
movzx edx, r14w
lea eax, [r15 + rdi]
movsx r9d, dx
mov r8d, r12d
mov edx, 0x2e
mov rcx, rsi
mov dword [rsp + 0x20], eax
call fcn.140237cb0
movzx eax, word [rbx + 0x5e]
inc edi
cmp edi, eax
jl 0x1402848a0
mov rsi, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xe0]
mov r13, qword [rsp + 0x70]
movzx eax, word [rbx + 0x5e]
mov r9d, dword [rsp + 0x90]
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
mov dword [rsp + 0x28], eax
mov edx, 0x41
mov dword [rsp + 0x20], r15d
call fcn.140237e90
test dword [r13 + 0x28], 0x1000
je 0x14028494a
mov byte [r14 + 0x25], 0x9b
jmp 0x14028495a
cmp dword [rsp + 0x80], ebp
sete al
add al, 8
mov byte [r14 + 0x25], al
mov r15, qword [rsp + 0x68]
mov dword [r14 + 0x28], r12d
movzx eax, byte [r13 + 0x2a]
and al, 1
mov byte [r14 + 0x26], al
test byte [r13 + 0x28], 0xf
mov r13d, dword [rsp + 0x40]
jne 0x140283d56
mov byte [r14 + 0x27], 1
jmp 0x140283d56
bt edx, 0xd
jae 0x140284f46
mov edi, dword [rsi + 0x54]
inc dword [rsi + 0x58]
mov ebx, dword [rsi + 0x58]
mov rcx, qword [rsp + 0x50]
lea eax, [rdi + 1]
mov r12, rbp
mov qword [rsp + 0x70], rbp
mov dword [rsp + 0x44], edi
mov dword [rsp + 0x58], ebx
mov dword [rsi + 0x54], eax
mov dword [rsp + 0xa0], ebp
mov dword [rsp + 0x60], ebp
call fcn.140237f30
mov rcx, qword [r15 + 0x30]
mov r15, qword [rsp + 0x68]
mov dword [rsp + 0x7c], eax
mov rax, qword [rcx]
mov dword [rsp + 0x5c], ebp
mov rcx, qword [rax + 0x10]
mov byte [r14 + 0x25], 0x12
mov dword [r14 + 0x28], ebx
mov qword [rsp + 0xc0], rcx
movzx ecx, byte [r15 + 0x38]
mov r13, rbp
mov qword [rsp + 0x88], rax
cmp cl, 1
jbe 0x140284e2c
movzx ebx, cl
mov rcx, qword [rsp + 0xb0]
sub ebx, dword [rsp + 0x78]
dec ebx
imul edx, ebx, 0x78
sub edx, 0xffffff80
call fcn.140218530
mov rdx, rax
mov qword [rsp + 0x98], rax
test rax, rax
jne 0x140284a41
mov rax, qword [rsp + 0xd0]
jmp 0x14028523f
lea eax, [rbx + 1]
movzx ecx, al
mov rax, qword [rsp + 0xb8]
mov dword [rdx + 4], ecx
mov dword [rdx], ecx
movups xmm0, xmmword [rax]
movups xmmword [rdx + 8], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rdx + 0x18], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rdx + 0x28], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rdx + 0x38], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rdx + 0x48], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rdx + 0x58], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rdx + 0x68], xmm0
movsd xmm1, qword [rax + 0x70]
movsd qword [rdx + 0x78], xmm1
mov r10, qword [r15 + 8]
cmp ebx, 1
jl 0x140284b17
sub rdx, 0xffffffffffffff80
lea r8, [r14 + 0x74]
mov r9d, ebx
nop dword [rax]
movzx eax, byte [r8]
lea rdx, [rdx + 0x78]
lea r8, [r8 + 0x50]
imul rcx, rax, 0x78
movups xmm0, xmmword [rcx + r10 + 8]
movups xmmword [rdx - 0x78], xmm0
movups xmm1, xmmword [rcx + r10 + 0x18]
movups xmmword [rdx - 0x68], xmm1
movups xmm0, xmmword [rcx + r10 + 0x28]
movups xmmword [rdx - 0x58], xmm0
movups xmm1, xmmword [rcx + r10 + 0x38]
movups xmmword [rdx - 0x48], xmm1
movups xmm0, xmmword [rcx + r10 + 0x48]
movups xmmword [rdx - 0x38], xmm0
movups xmm1, xmmword [rcx + r10 + 0x58]
movups xmmword [rdx - 0x28], xmm1
movups xmm0, xmmword [rcx + r10 + 0x68]
movups xmmword [rdx - 0x18], xmm0
movsd xmm1, qword [rcx + r10 + 0x78]
movsd qword [rdx - 8], xmm1
dec r9
jne 0x140284ab0
mov ebx, dword [rsp + 0x58]
test byte [r15 + 0x32], 8
jne 0x140284b50
mov eax, dword [rsi + 0x58]
xor r8d, r8d
mov dword [rsp + 0x20], ebp
inc eax
lea edx, [r8 + 0x1c]
lea ecx, [rax + 1]
mov r9d, eax
mov dword [rsp + 0xa0], eax
mov dword [rsp + 0x60], ecx
mov dword [rsi + 0x58], ecx
mov rcx, qword [rsp + 0x50]
call fcn.140237cb0
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
mov r9d, ebx
lea edx, [r8 + 0x19]
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov ecx, dword [r15 + 0x16c]
or r15d, 0xffffffff
mov dword [rsp + 0x80], eax
cmp ecx, 1
jle 0x140284cae
mov ebx, ebp
test ecx, ecx
jle 0x140284cae
mov r14, qword [rsp + 0x88]
mov r12, qword [rsp + 0xa8]
mov rsi, qword [rsp + 0xb0]
mov rdi, rbp
mov r8d, 0xfff
nop
mov rdx, qword [r12 + 0x20]
movsxd rax, ebx
mov r10, qword [rdi + rdx]
imul rcx, rax, 0x38
add rcx, rdx
cmp rcx, r14
je 0x140284c06
test byte [r10 + 4], 1
jne 0x140284c06
test byte [rdi + rdx + 0x1c], 0x12
jne 0x140284c06
test word [rdi + rdx + 0x1a], r8w
je 0x140284c06
xor r9d, r9d
xor r8d, r8d
mov rdx, r10
mov rcx, rsi
call fcn.14024aec0
mov rdx, r13
mov rcx, rsi
mov r8, rax
call fcn.14024a920
mov r8d, 0xfff
mov r13, rax
inc ebx
add rdi, 0x38
cmp ebx, dword [r12 + 0x14]
jl 0x140284bb0
mov rsi, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xe0]
mov r12, rbp
test r13, r13
je 0x140284caa
mov rcx, qword [rsi]
mov edx, 0x48
call fcn.140218530
mov rbx, rax
test rax, rax
je 0x140284c75
xor eax, eax
mov qword [rbx], rax
mov qword [rbx + 8], rax
mov qword [rbx + 0x10], rax
mov qword [rbx + 0x18], rax
mov qword [rbx + 0x20], rax
mov qword [rbx + 0x28], rax
mov qword [rbx + 0x30], rax
mov qword [rbx + 0x38], rax
mov qword [rbx + 0x40], rax
mov eax, 1
mov byte [rbx], 0x48
mov word [rbx + 0x32], r15w
mov dword [rbx + 0x28], eax
mov rcx, qword [rsi]
mov r9, r13
xor r8d, r8d
mov rdx, rbx
call fcn.14024a690
test rbx, rbx
je 0x140284ca7
mov rax, qword [rsi]
mov r8d, dword [rax + 0x74]
cmp dword [rbx + 0x28], r8d
jle 0x140284ca7
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, rsi
call fcn.14021ae50
mov r13, rbx
mov edi, dword [rsp + 0x44]
mov rax, qword [rsp + 0xc0]
mov r15d, ebp
cmp dword [rax + 0x14], ebp
jle 0x140284e75
mov ecx, dword [rsp + 0x40]
mov r12, rbp
mov edx, 0xf0
nop
mov rax, qword [rax + 0x20]
cmp dword [r12 + rax + 0xc], ecx
je 0x140284ced
mov r8d, 0x200
test word [r12 + rax + 0x1a], r8w
je 0x140284e53
mov r8, qword [r12 + rax]
test r13, r13
je 0x140284d04
test byte [r8 + 4], 1
jne 0x140284d04
mov qword [r13 + 0x10], r8
mov r8, r13
mov rbx, qword [rsp + 0x98]
mov dword [rsp + 0x30], edi
mov word [rsp + 0x28], dx
xor r9d, r9d
mov rcx, rsi
mov rdx, rbx
mov qword [rsp + 0x20], rbp
call fcn.140287fc0
mov rdi, rax
test rax, rax
je 0x140284e4a
movzx ecx, byte [r14 + 0x24]
mov r9d, dword [rsp + 0x78]
lea r8, [rax + 0x340]
mov word [rsp + 0x28], bp
mov dword [rsp + 0x20], ecx
mov rdx, rbx
mov rcx, rsi
call fcn.140283840
mov rax, qword [rsp + 0x68]
test byte [rax + 0x32], 8
jne 0x140284dcf
mov rcx, qword [rsp + 0xc0]
mov r9d, dword [rsp + 0x40]
mov ebx, r15d
mov eax, dword [rcx + 0x14]
mov ecx, dword [rsp + 0x60]
mov byte [rsp + 0x28], bpl
dec eax
mov dword [rsp + 0x20], ecx
mov rcx, rsi
cmp r15d, eax
mov eax, 0xffffffff
cmove ebx, eax
mov r8d, eax
mov rax, qword [rsp + 0xb8]
mov rdx, qword [rax + 0x20]
call fcn.14024d270
mov rcx, qword [rsp + 0x50]
mov r8d, dword [rsp + 0xa0]
mov r9d, dword [rcx + 0x3c]
mov edx, 0x7e
mov dword [rsp + 0x28], ebx
add r9d, 2
mov dword [rsp + 0x20], eax
call fcn.140237e90
mov r9d, dword [rsp + 0x7c]
mov r8d, dword [rsp + 0x58]
mov rcx, qword [rsp + 0x50]
mov edx, 0x11
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov eax, dword [rsp + 0x5c]
cmp byte [rdi + 0x36], bpl
mov ecx, 1
cmovne eax, ecx
mov ecx, 0x200
mov dword [rsp + 0x5c], eax
mov rax, qword [rdi + 0x380]
test dword [rax + 0x28], ecx
je 0x140284e3d
test r15d, r15d
je 0x140284e21
mov rcx, qword [rsp + 0x70]
cmp qword [rax + 0x20], rcx
jne 0x140284e3d
mov rbx, qword [rax + 0x20]
mov qword [rsp + 0x70], rbx
jmp 0x140284e42
mov rax, qword [r15 + 8]
mov qword [rsp + 0x98], rax
jmp 0x140284b1b
mov qword [rsp + 0x70], rbp
mov rcx, rdi
call fcn.140288950
mov ecx, dword [rsp + 0x40]
mov edx, 0xf0
mov rax, qword [rsp + 0xc0]
mov edi, dword [rsp + 0x44]
inc r15d
add r12, 0x38
cmp r15d, dword [rax + 0x14]
jl 0x140284cd0
mov r12, qword [rsp + 0x70]
mov qword [r14 + 0x30], r12
test r12, r12
je 0x140284e86
mov eax, dword [rsp + 0x44]
mov dword [r14 + 8], eax
mov rbx, qword [rsp + 0xb0]
test r13, r13
je 0x140284ea2
mov rdx, r13
mov rcx, rbx
mov qword [r13 + 0x10], rbp
call fcn.14024ad30
mov r12, qword [rsp + 0x50]
mov eax, dword [rsp + 0x80]
mov edx, dword [r12 + 0x3c]
cmp edx, eax
jbe 0x140284ec4
lea rcx, [rax + rax*2]
mov rax, qword [r12 + 8]
mov dword [rax + rcx*8 + 4], edx
mov r9d, dword [r14 + 0xc]
xor r8d, r8d
mov rcx, r12
lea edx, [r8 + 0x10]
mov dword [rsp + 0x20], ebp
call fcn.140237cb0
mov r8, qword [r12 + 0x30]
or eax, 0xffffffff
sub eax, dword [rsp + 0x7c]
js 0x140284f00
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x140284f00
movsxd rcx, eax
mov eax, dword [r12 + 0x3c]
mov dword [rdx + rcx*4], eax
mov eax, dword [r12 + 0x3c]
mov r15, qword [rsp + 0x68]
dec eax
mov dword [r8 + 0x68], eax
cmp byte [r15 + 0x38], 1
jbe 0x140284f27
mov rdx, qword [rsp + 0x98]
mov rcx, rbx
call fcn.140218260
cmp dword [rsp + 0x5c], ebp
jne 0x140283d51
mov rdx, qword [rsp + 0x88]
mov rcx, r14
call fcn.140282d40
jmp 0x140283d51
mov r13d, dword [rsp + 0x40]
test cl, 8
je 0x140284f5f
mov r15, qword [rsp + 0x68]
mov byte [r14 + 0x25], 0x9b
jmp 0x140283d56
lea rdx, [0x140000000]
movsxd rcx, ebx
mov r9d, edi
movzx eax, byte [rcx + rdx + 0x32974c]
movzx edx, byte [rcx + rdx + 0x329b5c]
mov r8d, r13d
mov rcx, r12
mov dword [r14 + 0x28], r13d
mov dword [rsp + 0x20], ebp
mov byte [r14 + 0x25], al
call fcn.140237cb0
mov r15, qword [rsp + 0x68]
inc eax
mov byte [r14 + 0x27], 1
mov dword [r14 + 0x2c], eax
jmp 0x140283d56
mov r15, qword [rsp + 0x68]
mov r13d, eax
jmp 0x140283d56
cmp dword [r14], 0
mov rdx, qword [rbx]
je 0x140284fc4
test byte [rdx + 4], 1
je 0x140284fd9
mov r9d, 8
mov r8d, r13d
mov rcx, rsi
call fcn.14024f2a0
or byte [rbx + 0x1c], 4
dec edi
add rbx, 0x38
test edi, edi
jg 0x140283d74
mov r13d, dword [rsp + 0x40]
mov rax, qword [rsp + 0xa8]
mov r12d, dword [rax + 0x14]
mov r15, qword [rax + 0x20]
test r12d, r12d
jle 0x14028514b
mov ecx, 0x402
nop word [rax + rax]
test byte [r15 + 0x1c], 6
jne 0x140285136
cmp word [r15 + 0x1a], cx
jne 0x140285136
cmp dword [r15 + 0xc], r13d
jne 0x140285136
cmp dword [r14], 0
jne 0x140285136
mov r9d, dword [r15 + 0x10]
mov r8d, dword [rsp + 0x40]
mov r13, qword [r15]
lea rcx, [rsp + 0xf0]
mov rdx, rax
mov qword [rsp + 0x28], rbp
mov rdi, rbp
mov dword [rsp + 0x20], 3
call fcn.140280580
mov rbx, rax
test rax, rax
je 0x1402850a5
nop
mov rax, qword [rbx + 0x28]
test qword [rsp + 0xd0], rax
jne 0x140285090
test rax, rax
jne 0x140285089
test byte [rbx + 0x1a], 2
jne 0x1402850a8
test rdi, rdi
cmove rdi, rbx
lea rcx, [rsp + 0xf0]
call fcn.1402802a0
mov rbx, rax
test rax, rax
jne 0x140285070
mov rbx, rdi
test rbx, rbx
je 0x140285129
test byte [rbx + 0x1c], 4
jne 0x140285129
mov rcx, qword [rsp + 0xb0]
mov edx, 0x48
call fcn.140218530
mov rdi, rax
test rax, rax
je 0x140285129
mov rcx, qword [rbx]
mov r8d, dword [rsp + 0x90]
mov r9d, 8
mov rdx, rdi
movups xmm0, xmmword [rcx]
movups xmmword [rax], xmm0
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rax + 0x20], xmm0
movups xmm1, xmmword [rcx + 0x30]
movups xmmword [rax + 0x30], xmm1
movsd xmm0, qword [rcx + 0x40]
mov rcx, rsi
movsd qword [rax + 0x40], xmm0
mov rax, qword [r13 + 0x10]
mov qword [rdi + 0x10], rax
call fcn.14024f2a0
mov rcx, qword [rsp + 0xb0]
mov rdx, rdi
call fcn.140218260
mov rax, qword [rsp + 0xa8]
mov ecx, 0x402
mov r13d, dword [rsp + 0x40]
dec r12d
add r15, 0x38
test r12d, r12d
jg 0x140285010
mov ebx, dword [r14]
test ebx, ebx
je 0x14028523b
mov r15, qword [rsp + 0x50]
mov eax, dword [r15 + 0x3c]
mov dword [r14 + 0x1c], eax
mov rax, qword [r15 + 0x30]
movsxd rdi, dword [r15 + 0x3c]
cmp dword [rax + 0x64], edi
jg 0x14028517c
mov rcx, r15
call fcn.140237c00
test eax, eax
jne 0x1402851a8
mov rax, qword [r15 + 8]
inc dword [r15 + 0x3c]
lea rcx, [rdi + rdi*2]
mov word [rax + rcx*8], 0x19
mov byte [rax + rcx*8 + 3], 0
mov dword [rax + rcx*8 + 4], 1
mov dword [rax + rcx*8 + 8], ebx
mov dword [rax + rcx*8 + 0xc], ebp
mov qword [rax + rcx*8 + 0x10], rbp
lea rcx, [rsi + 0x94]
mov eax, 0xa
mov edx, dword [rcx]
test edx, edx
je 0x1402851e0
cmp byte [rcx - 6], 0
je 0x1402851d6
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x1402851d2
movzx eax, al
mov dword [rsi + rax*4 + 0x28], edx
inc byte [rsi + 0x1f]
mov byte [rcx - 6], 0
mov rax, qword [rsp + 0xd8]
mov dword [rcx], ebp
add rcx, 0x14
dec rax
mov qword [rsp + 0xd8], rax
jne 0x1402851b4
mov rdi, qword [rsp + 0xa8]
cmp dword [rdi + 0x14], 0
mov rbx, qword [rdi + 0x20]
jle 0x14028523b
test byte [rbx + 0x1c], 6
jne 0x140285230
mov rax, qword [rbx + 0x30]
test qword [r14 + 0x48], rax
jne 0x140285230
mov r8d, dword [rsp + 0x90]
mov rdx, qword [rbx]
mov r9d, 8
mov rcx, rsi
call fcn.14024f2a0
or byte [rbx + 0x1c], 4
inc ebp
add rbx, 0x38
cmp ebp, dword [rdi + 0x14]
jl 0x140285203
mov rax, qword [r14 + 0x48]
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.1402b9610
mov rbx, qword [rsp + 0x1d0]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret