Function at 0x1402871c0
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 [0x14041da10]
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 0x1402872a7
lea rax, [r11 + 0x58]
cmp dword [rax], r9d
je 0x1402873d6
inc rcx
inc edx
add rax, 4
cmp rcx, r8
jl 0x140287290
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 0x1402872da
test byte [r11 + 0x32], 0x20
mov dword [rsp + 0x60], edi
je 0x1402872de
mov dword [rsp + 0x60], ebp
mov rcx, r12
call fcn.14023b570
mov rcx, r12
mov edi, eax
mov dword [rsp + 0x58], eax
mov dword [r14 + 0x10], eax
mov dword [r14 + 0xc], eax
call fcn.14023b570
mov dword [rsp + 0x90], eax
mov dword [r14 + 0x18], eax
cmp byte [r14 + 0x24], bpl
jbe 0x140287335
test byte [r13 + 0x3c], 8
je 0x140287335
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.14023b2f0
mov ecx, dword [r13 + 0x40]
mov qword [rsp + 0xd8], 0xa
test cl, 4
je 0x1402873e3
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.14023b2f0
mov r9d, edi
mov r8d, ebx
mov edx, 0x16
mov rcx, r12
mov dword [rsp + 0x20], ebp
call fcn.14023b2f0
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 0x140288634
mov r13d, dword [rsp + 0x90]
test byte [rbx + 0x1c], 6
jne 0x140288619
mov rax, qword [rbx + 0x30]
test qword [r14 + 0x48], rax
je 0x1402885f5
mov byte [r15 + 0x36], 1
jmp 0x140288619
mov ecx, edx
mov rax, rdi
shl rax, cl
jmp 0x1402872aa
mov edx, dword [r15 + 0x28]
bt edx, 0xa
jae 0x14028767f
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 0x140287420
lea eax, [r8 + rdx]
sub ecx, r8d
mov dword [rsi + 0x4c], eax
mov dword [rsi + 0x48], ecx
jmp 0x140287430
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 0x1402874ad
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 0x14028749b
test byte [rdx + 0x1a], 1
mov rcx, rsi
je 0x14028748b
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.1402864a0
mov r12d, dword [r14 + 0x10]
jmp 0x14028749b
mov rdx, qword [rdx]
lea r8d, [r15 + rbx]
mov rdx, qword [rdx + 0x18]
call fcn.140252050
inc ebx
add rdi, 8
cmp ebx, r13d
jl 0x140287450
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.14023b2f0
mov rcx, qword [rsp + 0x50]
lea r9d, [rbx + 1]
mov r8d, r13d
mov edx, 0x19
mov dword [rsp + 0x20], ebp
call fcn.14023b2f0
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.14023b2f0
mov r9d, edi
mov r8, rbx
mov rcx, r12
mov edx, eax
call fcn.14023bb10
mov byte [r15 + 0x1c], 0
mov r10d, ebp
test r13d, r13d
jle 0x1402875b7
nop word [rax + rax]
cmp r10d, 0x10
jge 0x1402875b7
movzx eax, word [r15 + 0x1e]
movzx ecx, r10w
shr ax, cl
test al, 1
je 0x1402875af
mov rax, qword [r15 + 0x30]
movsxd rcx, r10d
mov rcx, qword [rax + rcx*8]
test rcx, rcx
je 0x1402875af
movzx edx, byte [rcx + 0x1c]
test dl, 4
jne 0x1402875af
cmp dword [r14], 0
je 0x14028757e
mov rax, qword [rcx]
test byte [rax + 4], 1
je 0x1402875af
mov rax, qword [rcx + 0x30]
test qword [r14 + 0x48], rax
jne 0x1402875af
movsxd rax, dword [rcx + 8]
or dl, 4
mov byte [rcx + 0x1c], dl
test eax, eax
js 0x1402875af
mov rcx, qword [rcx + 0x20]
imul rdx, rax, 0x38
add rdx, qword [rcx + 0x20]
dec byte [rdx + 0x1d]
jne 0x1402875af
mov rcx, r14
call fcn.140286380
inc r10d
cmp r10d, r13d
jl 0x140287540
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 0x14028761d
cmp edx, r9d
jg 0x14028761d
cmp byte [rcx - 6], 0
je 0x14028761b
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x140287613
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 0x1402875f0
cmp r10d, dword [rsi + 0x48]
jle 0x140287633
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 0x14028766c
mov eax, dword [rsi + 0x74]
cmp dword [rcx - 4], eax
jle 0x14028766c
cmp byte [rcx - 6], 0
je 0x14028766a
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x140287666
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 0x140287640
mov r15, qword [rsp + 0x68]
jmp 0x140287396
mov eax, edx
and eax, 0x100
je 0x140287738
test dl, 5
je 0x140287738
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.1402864a0
mov edi, eax
cmp eax, ebx
je 0x1402876d0
mov edx, ebx
mov rcx, rsi
call fcn.1402534f0
mov ebx, dword [r14 + 0x10]
mov r8d, edi
mov edx, 0x26
mov rcx, r12
mov r9d, ebx
mov dword [rsp + 0x20], ebp
call fcn.14023b2f0
mov r13d, dword [rsp + 0x40]
mov r9d, ebx
mov edx, 0x43
mov rcx, r12
mov r8d, r13d
mov dword [rsp + 0x20], edi
call fcn.14023b2f0
mov r8d, 1
mov edx, edi
mov rcx, rsi
call fcn.140250670
mov r9d, edi
or r8d, 0xffffffff
mov edx, r13d
mov rcx, rsi
call fcn.140250500
mov r15, qword [rsp + 0x68]
mov byte [r14 + 0x25], 0x9b
jmp 0x140287396
test eax, eax
je 0x14028791c
test dl, 2
je 0x14028791c
mov r8, qword [rsp + 0x70]
mov r15d, 0x9b
mov eax, ebp
mov r12, rbp
mov r13, rbp
test dl, 0x20
je 0x14028776d
mov rax, qword [r8 + 0x30]
mov r13, qword [rax]
mov eax, 1
test dl, 0x10
je 0x14028777d
movsxd rcx, eax
mov rax, qword [r8 + 0x30]
mov r12, qword [rax + rcx*8]
test ebx, ebx
je 0x14028778a
mov rax, r13
mov r13, r12
mov r12, rax
test r13, r13
je 0x1402877fb
mov rbx, qword [r13]
lea r8, [rsp + 0x60]
mov rcx, rsi
mov rdx, qword [rbx + 0x18]
mov dword [rsp + 0x44], 0x3d3b3c3e
call fcn.140251ef0
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.14023b2f0
mov r8d, 1
mov edx, edi
mov rcx, rsi
call fcn.140250670
mov edx, dword [rsp + 0x60]
mov rcx, rsi
call fcn.1402534f0
mov rdx, r13
mov rcx, r14
call fcn.140286380
mov edi, dword [rsp + 0x58]
jmp 0x140287820
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.14023b2f0
test r12, r12
je 0x140287876
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.140252050
movzx eax, byte [rbx]
sub al, 0x50
test al, 0xfd
je 0x140287853
mov eax, 0x52
lea r15d, [rax - 2]
jmp 0x14028785e
mov eax, 0x51
mov r15d, 0x53
cmp dword [rsp + 0x80], ebp
mov rdx, r12
mov rcx, r14
cmovne r15d, eax
call fcn.140286380
jmp 0x140287879
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 0x1402885e8
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.14023b2f0
mov edx, dword [rsp + 0x40]
mov r9d, ebx
or r8d, 0xffffffff
mov rcx, rsi
call fcn.140250500
mov r9d, edi
mov r8d, r13d
mov edx, r15d
mov rcx, r12
mov dword [rsp + 0x20], ebx
call fcn.14023b2f0
mov rdx, qword [r12 + 8]
mov r15, qword [rsp + 0x68]
mov r13d, dword [rsp + 0x40]
test rdx, rdx
je 0x140287396
movsxd rax, dword [r12 + 0x3c]
lea rcx, [rax + rax*2]
mov byte [rdx + rcx*8 - 0x15], 0x6b
jmp 0x140287396
mov eax, 0x200
test eax, edx
je 0x140287fc8
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 0x140287991
cmp byte [rax + 0x34], dil
je 0x140287991
mov r11d, 1
cmp word [r10 + 0x5e], bx
jbe 0x140287997
movzx r15d, r11b
mov r9d, r11d
jmp 0x140287997
mov r11d, 1
movzx r12d, bx
mov r8d, r12d
test dl, 0x20
je 0x1402879b9
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 0x140287a05
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 0x140287a05
mov rax, qword [r10 + 8]
movzx ecx, bx
movsx rdx, word [rax + rcx*2]
test edx, edx
js 0x140287a05
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.140286700
mov r9d, eax
mov dword [rsp + 0x78], eax
mov rax, qword [rsp + 0xb8]
test rax, rax
je 0x140287a44
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 0x140287a7c
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 0x140287a8e
jmp 0x140287a84
mov rax, qword [rsp + 0x80]
test eax, eax
je 0x140287ab6
cmp r8w, bx
jne 0x140287ab6
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 0x140287abe
mov rcx, qword [rsp + 0x88]
test rdi, rdi
je 0x140287ad7
test byte [rdi + 0x1a], 0x28
jne 0x140287ad7
mov dword [rsp + 0xa0], ebp
mov eax, 1
jmp 0x140287ae3
mov eax, 1
mov dword [rsp + 0xa0], eax
test rcx, rcx
je 0x140287af2
test byte [rcx + 0x1a], 0x28
mov dword [rsp + 0x5c], ebp
je 0x140287af6
mov dword [rsp + 0x5c], eax
test rdi, rdi
jne 0x140287cc8
test bx, bx
jne 0x140287cc8
mov dword [rsp + 0x7c], ebp
mov edi, r12d
test r15b, r15b
je 0x140287b3d
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
add r9d, r12d
lea edx, [r8 + 0x1c]
mov dword [rsp + 0x20], ebp
call fcn.14023b2f0
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.1402863e0
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 + 0x3320e8]
call fcn.14023b4d0
mov rdi, qword [rsp + 0x88]
test rdi, rdi
je 0x140287d62
mov rax, qword [rdi]
add r15d, r12d
mov r8d, 1
mov rbx, qword [rax + 0x18]
mov edx, r15d
mov rcx, rsi
call fcn.140250670
mov r8d, r15d
mov rdx, rbx
mov rcx, rsi
call fcn.140252050
mov rcx, rbx
call fcn.14024f1c0
test eax, eax
je 0x140287c09
mov r9d, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x50]
mov r8d, r15d
mov edx, 0x4c
mov dword [rsp + 0x20], ebp
call fcn.14023b2f0
movzx edx, byte [rsp + 0x48]
mov rcx, rbx
call fcn.14024d5d0
cmp al, 0x62
je 0x140287cb7
movzx edx, byte [rsp + 0x48]
mov rcx, rbx
call fcn.14024f1f0
test eax, eax
jne 0x140287cb7
mov rcx, qword [rsi + 0x10]
lea rdi, [rsp + 0x48]
lea ebx, [rax + 1]
mov qword [rsp + 0xa0], rcx
cmp byte [rdi], 0x62
jne 0x140287c58
dec ebx
inc r15d
inc rdi
test ebx, ebx
jg 0x140287c47
movsxd rax, ebx
cmp rax, 1
jle 0x140287c73
cmp byte [rdi + rax - 1], 0x62
jne 0x140287c73
dec rax
dec ebx
cmp rax, 1
jg 0x140287c61
test ebx, ebx
jle 0x140287caf
mov r9d, ebx
mov r8d, r15d
mov edx, 0x2f
mov dword [rsp + 0x20], ebp
call fcn.14023b2f0
mov rcx, qword [rsp + 0xa0]
mov r9d, ebx
mov r8, rdi
or edx, 0xffffffff
call fcn.14023bb10
mov r8d, ebx
mov edx, r15d
mov rcx, rsi
call fcn.140250670
mov rdi, qword [rsp + 0x88]
mov r15d, dword [rsp + 0x78]
lea rbx, [0x140000000]
jmp 0x140287d86
mov dword [rsp + 0x7c], eax
mov rax, qword [rsp + 0x98]
mov edi, r12d
test rax, rax
je 0x140287b0f
mov rax, qword [rax]
lea r8d, [r12 + r9]
mov rcx, rsi
mov r13, qword [rax + 0x18]
mov rdx, r13
call fcn.140252050
mov rcx, r13
call fcn.14024f1c0
test eax, eax
je 0x140287d22
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.14023b2f0
mov rcx, qword [rsp + 0xb8]
test rcx, rcx
je 0x140287d58
movzx ebx, bx
add rbx, rcx
mov rcx, r13
movzx edx, byte [rbx]
call fcn.14024d5d0
cmp al, 0x62
jne 0x140287d46
mov byte [rbx], al
movzx edx, byte [rbx]
mov rcx, r13
call fcn.14024f1f0
test eax, eax
je 0x140287d58
mov byte [rbx], 0x62
mov r13, qword [rsp + 0x70]
jmp 0x140287b3b
cmp byte [rsp + 0x49], bpl
je 0x140287d89
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
lea r9d, [r12 + r15]
lea edx, [r8 + 0x1c]
mov dword [rsp + 0x20], ebp
call fcn.14023b2f0
mov dword [rsp + 0x5c], ebp
inc r12d
mov rdx, qword [rsp + 0xb8]
mov rcx, qword [rsp + 0xb0]
call fcn.14021b8a0
mov r10, qword [rsp + 0x50]
mov eax, dword [r10 + 0x3c]
mov dword [r14 + 0x2c], eax
test r12d, r12d
je 0x140287def
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 + 0x32db4c]
mov r8d, r12d
mov rcx, r10
mov dword [rsp + 0x20], r15d
call fcn.14023b4d0
mov r10, qword [rsp + 0x50]
jmp 0x140287df4
mov r12d, dword [rsp + 0x58]
mov rdx, qword [rsp + 0x98]
mov rcx, r14
call fcn.140286380
mov rdx, rdi
mov rcx, r14
call fcn.140286380
cmp dword [rsp + 0x60], ebp
jne 0x140287f79
mov rbx, qword [rsp + 0xc0]
mov rbx, qword [rbx + 0x18]
test byte [rbx + 0x48], 0x20
jne 0x140287e78
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.14023b2f0
mov edx, dword [rsp + 0x40]
mov r9d, ebx
or r8d, 0xffffffff
mov rcx, rsi
call fcn.140250500
mov r8d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x50]
mov edx, 0x3f
mov dword [rsp + 0x20], ebp
call fcn.14023b2f0
jmp 0x140287f79
mov rbx, qword [rbx + 0x10]
test rbx, rbx
je 0x140287e93
mov eax, dword [rbx + 0x64]
and al, 3
cmp al, 2
je 0x140287e93
mov rbx, qword [rbx + 0x28]
test rbx, rbx
jne 0x140287e81
movzx ecx, word [rbx + 0x5e]
mov edx, dword [rsi + 0x48]
mov r15d, dword [rsi + 0x4c]
cmp ecx, edx
jg 0x140287eb0
lea eax, [rcx + r15]
sub edx, ecx
mov dword [rsi + 0x4c], eax
mov dword [rsi + 0x48], edx
jmp 0x140287ebc
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 0x140287f50
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 0x140287f11
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 0x140287f15
inc edx
cmp edx, r8d
jl 0x140287f00
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.14023b2f0
movzx eax, word [rbx + 0x5e]
inc edi
cmp edi, eax
jl 0x140287ee0
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.14023b4d0
test dword [r13 + 0x28], 0x1000
je 0x140287f8a
mov byte [r14 + 0x25], 0x9b
jmp 0x140287f9a
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 0x140287396
mov byte [r14 + 0x27], 1
jmp 0x140287396
bt edx, 0xd
jae 0x140288586
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.14023b570
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 0x14028846c
movzx ebx, cl
mov rcx, qword [rsp + 0xb0]
sub ebx, dword [rsp + 0x78]
dec ebx
imul edx, ebx, 0x78
sub edx, 0xffffff80
call fcn.14021bb70
mov rdx, rax
mov qword [rsp + 0x98], rax
test rax, rax
jne 0x140288081
mov rax, qword [rsp + 0xd0]
jmp 0x14028887f
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 0x140288157
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 0x1402880f0
mov ebx, dword [rsp + 0x58]
test byte [r15 + 0x32], 8
jne 0x140288190
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.14023b2f0
mov rcx, qword [rsp + 0x50]
xor r8d, r8d
mov r9d, ebx
lea edx, [r8 + 0x19]
mov dword [rsp + 0x20], ebp
call fcn.14023b2f0
mov ecx, dword [r15 + 0x16c]
or r15d, 0xffffffff
mov dword [rsp + 0x80], eax
cmp ecx, 1
jle 0x1402882ee
mov ebx, ebp
test ecx, ecx
jle 0x1402882ee
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 0x140288246
test byte [r10 + 4], 1
jne 0x140288246
test byte [rdi + rdx + 0x1c], 0x12
jne 0x140288246
test word [rdi + rdx + 0x1a], r8w
je 0x140288246
xor r9d, r9d
xor r8d, r8d
mov rdx, r10
mov rcx, rsi
call fcn.14024e500
mov rdx, r13
mov rcx, rsi
mov r8, rax
call fcn.14024df60
mov r8d, 0xfff
mov r13, rax
inc ebx
add rdi, 0x38
cmp ebx, dword [r12 + 0x14]
jl 0x1402881f0
mov rsi, qword [rsp + 0xc8]
mov r14, qword [rsp + 0xe0]
mov r12, rbp
test r13, r13
je 0x1402882ea
mov rcx, qword [rsi]
mov edx, 0x48
call fcn.14021bb70
mov rbx, rax
test rax, rax
je 0x1402882b5
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.14024dcd0
test rbx, rbx
je 0x1402882e7
mov rax, qword [rsi]
mov r8d, dword [rax + 0x74]
cmp dword [rbx + 0x28], r8d
jle 0x1402882e7
lea rdx, str.Expression_tree_is_too_large__maximum_depth__d_
mov rcx, rsi
call fcn.14021e490
mov r13, rbx
mov edi, dword [rsp + 0x44]
mov rax, qword [rsp + 0xc0]
mov r15d, ebp
cmp dword [rax + 0x14], ebp
jle 0x1402884b5
mov ecx, dword [rsp + 0x40]
mov r12, rbp
mov edx, 0xf0
nop
mov rax, qword [rax + 0x20]
cmp dword [r12 + rax + 0xc], ecx
je 0x14028832d
mov r8d, 0x200
test word [r12 + rax + 0x1a], r8w
je 0x140288493
mov r8, qword [r12 + rax]
test r13, r13
je 0x140288344
test byte [r8 + 4], 1
jne 0x140288344
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.14028b600
mov rdi, rax
test rax, rax
je 0x14028848a
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.140286e80
mov rax, qword [rsp + 0x68]
test byte [rax + 0x32], 8
jne 0x14028840f
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.1402508b0
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.14023b4d0
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.14023b2f0
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 0x14028847d
test r15d, r15d
je 0x140288461
mov rcx, qword [rsp + 0x70]
cmp qword [rax + 0x20], rcx
jne 0x14028847d
mov rbx, qword [rax + 0x20]
mov qword [rsp + 0x70], rbx
jmp 0x140288482
mov rax, qword [r15 + 8]
mov qword [rsp + 0x98], rax
jmp 0x14028815b
mov qword [rsp + 0x70], rbp
mov rcx, rdi
call fcn.14028bf90
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 0x140288310
mov r12, qword [rsp + 0x70]
mov qword [r14 + 0x30], r12
test r12, r12
je 0x1402884c6
mov eax, dword [rsp + 0x44]
mov dword [r14 + 8], eax
mov rbx, qword [rsp + 0xb0]
test r13, r13
je 0x1402884e2
mov rdx, r13
mov rcx, rbx
mov qword [r13 + 0x10], rbp
call fcn.14024e370
mov r12, qword [rsp + 0x50]
mov eax, dword [rsp + 0x80]
mov edx, dword [r12 + 0x3c]
cmp edx, eax
jbe 0x140288504
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.14023b2f0
mov r8, qword [r12 + 0x30]
or eax, 0xffffffff
sub eax, dword [rsp + 0x7c]
js 0x140288540
mov rdx, qword [r8 + 0x80]
test rdx, rdx
je 0x140288540
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 0x140288567
mov rdx, qword [rsp + 0x98]
mov rcx, rbx
call fcn.14021b8a0
cmp dword [rsp + 0x5c], ebp
jne 0x140287391
mov rdx, qword [rsp + 0x88]
mov rcx, r14
call fcn.140286380
jmp 0x140287391
mov r13d, dword [rsp + 0x40]
test cl, 8
je 0x14028859f
mov r15, qword [rsp + 0x68]
mov byte [r14 + 0x25], 0x9b
jmp 0x140287396
lea rdx, [0x140000000]
movsxd rcx, ebx
mov r9d, edi
movzx eax, byte [rcx + rdx + 0x32d7d4]
movzx edx, byte [rcx + rdx + 0x32dbe4]
mov r8d, r13d
mov rcx, r12
mov dword [r14 + 0x28], r13d
mov dword [rsp + 0x20], ebp
mov byte [r14 + 0x25], al
call fcn.14023b2f0
mov r15, qword [rsp + 0x68]
inc eax
mov byte [r14 + 0x27], 1
mov dword [r14 + 0x2c], eax
jmp 0x140287396
mov r15, qword [rsp + 0x68]
mov r13d, eax
jmp 0x140287396
cmp dword [r14], 0
mov rdx, qword [rbx]
je 0x140288604
test byte [rdx + 4], 1
je 0x140288619
mov r9d, 8
mov r8d, r13d
mov rcx, rsi
call fcn.1402528e0
or byte [rbx + 0x1c], 4
dec edi
add rbx, 0x38
test edi, edi
jg 0x1402873b4
mov r13d, dword [rsp + 0x40]
mov rax, qword [rsp + 0xa8]
mov r12d, dword [rax + 0x14]
mov r15, qword [rax + 0x20]
test r12d, r12d
jle 0x14028878b
mov ecx, 0x402
nop word [rax + rax]
test byte [r15 + 0x1c], 6
jne 0x140288776
cmp word [r15 + 0x1a], cx
jne 0x140288776
cmp dword [r15 + 0xc], r13d
jne 0x140288776
cmp dword [r14], 0
jne 0x140288776
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.140283bc0
mov rbx, rax
test rax, rax
je 0x1402886e5
nop
mov rax, qword [rbx + 0x28]
test qword [rsp + 0xd0], rax
jne 0x1402886d0
test rax, rax
jne 0x1402886c9
test byte [rbx + 0x1a], 2
jne 0x1402886e8
test rdi, rdi
cmove rdi, rbx
lea rcx, [rsp + 0xf0]
call fcn.1402838e0
mov rbx, rax
test rax, rax
jne 0x1402886b0
mov rbx, rdi
test rbx, rbx
je 0x140288769
test byte [rbx + 0x1c], 4
jne 0x140288769
mov rcx, qword [rsp + 0xb0]
mov edx, 0x48
call fcn.14021bb70
mov rdi, rax
test rax, rax
je 0x140288769
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.1402528e0
mov rcx, qword [rsp + 0xb0]
mov rdx, rdi
call fcn.14021b8a0
mov rax, qword [rsp + 0xa8]
mov ecx, 0x402
mov r13d, dword [rsp + 0x40]
dec r12d
add r15, 0x38
test r12d, r12d
jg 0x140288650
mov ebx, dword [r14]
test ebx, ebx
je 0x14028887b
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 0x1402887bc
mov rcx, r15
call fcn.14023b240
test eax, eax
jne 0x1402887e8
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 0x140288820
cmp byte [rcx - 6], 0
je 0x140288816
movzx eax, byte [rsi + 0x1f]
cmp al, 8
jae 0x140288812
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 0x1402887f4
mov rdi, qword [rsp + 0xa8]
cmp dword [rdi + 0x14], 0
mov rbx, qword [rdi + 0x20]
jle 0x14028887b
test byte [rbx + 0x1c], 6
jne 0x140288870
mov rax, qword [rbx + 0x30]
test qword [r14 + 0x48], rax
jne 0x140288870
mov r8d, dword [rsp + 0x90]
mov rdx, qword [rbx]
mov r9d, 8
mov rcx, rsi
call fcn.1402528e0
or byte [rbx + 0x1c], 4
inc ebp
add rbx, 0x38
cmp ebp, dword [rdi + 0x14]
jl 0x140288843
mov rax, qword [r14 + 0x48]
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.1402bcad0
mov rbx, qword [rsp + 0x1d0]
add rsp, 0x180
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret