Function at 0x140180404
Capabilities:
Encode data using xor
Encrypt data using speck

Disassembly:
mov rax, rsp
mov qword [rax + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rax - 0x148]
sub rsp, 0x208
mov rbx, qword [rcx]
xor r13d, r13d
mov rdi, qword [rcx + 0x90]
mov r14, rcx
mov r12, qword [rcx + 0x70]
mov rsi, rdi
movaps xmmword [rax - 0x58], xmm6
mov r15d, r13d
movaps xmmword [rax - 0x68], xmm7
mov al, byte [rbx + 0x64]
mov byte [rbp + 0x158], al
mov qword [rsp + 0x40], rdi
mov dword [rsp + 0x30], r13d
mov qword [rsp + 0x38], rbx
mov byte [rbp + 0x168], r13b
mov dword [rsp + 0x5c], r13d
mov qword [rbp - 8], r13
mov qword [rsp + 0x50], r12
call fcn.14017ad58
cmp qword [rbx + 0x208], r13
je 0x14018049d
mov eax, dword [r14 + 0xec]
xor edx, edx
mov ecx, dword [rbx + 0x218]
div ecx
sub ecx, edx
mov eax, ecx
mov qword [rbp - 0x68], rax
jmp 0x1401804a2
or qword [rbp - 0x68], 0xffffffffffffffff
cmp dword [r14 + 0x38], 7
mov r11d, 1
je 0x14018674e
mov dword [r14 + 0x38], r13d
mov qword [r14 + 0x50], r13
mov qword [r14 + 0xa8], r13
mov eax, dword [rbx + 0x198]
mov dword [rbx + 0x290], r13d
test eax, eax
jne 0x140186732
movsxd rax, dword [r14 + 0x34]
lea esi, [r11 + 3]
mov edx, 0x2400
lea r9d, [r11 + 1]
lea r10d, [r11 + 7]
xorps xmm7, xmm7
lea rcx, [rax + rax*2]
lea r13, [rdi + rcx*8]
lea ecx, [rsi + 0xc]
add qword [rbp - 8], r11
mov eax, 5
movzx r8d, byte [r13]
mov qword [rsp + 0x48], r13
cmp r8d, 0x59
ja 0x140182a94
je 0x140182961
cmp r8d, 0x2c
ja 0x140181ab4
je 0x14018193c
cmp r8d, 0x16
ja 0x1401812d0
je 0x140181290
cmp r8d, 0xb
ja 0x140180f98
je 0x1401823fb
cmp r8d, eax
ja 0x140180ae4
je 0x140180a7a
xor esi, esi
test r8d, r8d
je 0x140180718
sub r8d, 1
je 0x1401861dd
sub r8d, 1
je 0x1401805ad
sub r8d, 1
je 0x14018058c
cmp r8d, 1
je 0x140180a7c
jmp 0x140181fc2
movsxd rcx, dword [r13 + 4]
mov rax, qword [r14 + 0x80]
mov rbx, qword [rax + rcx*8]
mov rcx, qword [rsp + 0x38]
mov rdx, rbx
call fcn.1401897ac
jmp 0x140180a97
mov edx, dword [r13 + 8]
mov dword [rbp + 0x160], esi
test edx, edx
je 0x1401805d2
mov rax, qword [rbx + 0x30]
movabs rcx, 0x200100000
test rcx, rax
jne 0x140186107
movsxd rcx, dword [r13 + 4]
mov rax, qword [rbx + 0x20]
shl rcx, 5
mov rbx, qword [rcx + rax + 8]
test rbx, rbx
je 0x1401806a4
lea r8, [rbp + 0x160]
mov rcx, rbx
call fcn.14016f84c
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x140186126
test byte [r14 + 0xd0], 0x40
je 0x1401806ad
cmp dword [r13 + 8], esi
je 0x1401806ad
mov rdi, qword [rsp + 0x38]
lea eax, [r15 + 1]
cmp byte [rdi + 0x65], sil
je 0x14018063d
cmp dword [rdi + 0xdc], eax
jle 0x140180711
mov r8d, dword [r14 + 0x48]
test r8d, r8d
jne 0x14018065e
add dword [rdi + 0x2ec], eax
mov r8d, dword [rdi + 0x2ec]
add r8d, dword [rdi + 0x2e8]
mov dword [r14 + 0x48], r8d
dec r8d
xor edx, edx
mov rcx, rdi
call fcn.1401c14f4
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x140180689
mov edx, dword [r14 + 0x48]
mov rcx, rbx
call fcn.14017090c
mov r15d, eax
mov dword [rsp + 0x30], eax
mov rax, qword [rdi + 0x2f0]
mov qword [r14 + 0x60], rax
mov rax, qword [rdi + 0x2f8]
mov rdi, qword [rsp + 0x40]
mov qword [r14 + 0x68], rax
test r15d, r15d
jne 0x14018611a
mov rbx, qword [rsp + 0x38]
cmp word [r13 + 2], si
je 0x1401806e7
mov eax, dword [r13 + 0xc]
cmp dword [rbp + 0x160], eax
jne 0x140186167
mov rax, qword [rbx + 0x20]
movsxd rcx, dword [r13 + 4]
shl rcx, 5
mov rcx, qword [rcx + rax + 0x18]
mov eax, dword [r13 + 0x10]
cmp dword [rcx + 4], eax
jne 0x140186167
mov esi, 4
mov edx, 0x2400
mov r11d, 1
mov r9d, 2
mov r10d, 8
mov ecx, 0x10
add r13, 0x18
jmp 0x1401804fa
mov rdi, qword [rsp + 0x40]
jmp 0x1401806ad
mov esi, dword [r13 + 4]
xor eax, eax
mov rdi, qword [r13 + 0x10]
mov dword [rbp + 0x160], esi
test esi, esi
jne 0x1401807f5
cmp dword [rbx + 0xe0], eax
jg 0x140186306
mov rcx, rdi
call fcn.14015efc4
mov r8d, dword [rbx + 0x2ec]
xor edx, edx
add r8d, dword [rbx + 0x2e8]
mov rcx, rbx
movsxd rsi, eax
call fcn.1401c14f4
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
lea rdx, [rsi + 0x21]
mov rcx, rbx
call fcn.14015c7e4
mov rbx, rax
test rax, rax
je 0x1401858ae
lea rcx, [rax + 0x20]
mov rdx, rdi
lea r8d, [rsi + 1]
mov qword [rax], rcx
movsxd r8, r8d
call fcn.1404084f0
mov rcx, qword [rsp + 0x38]
xor esi, esi
cmp byte [rcx + 0x65], sil
je 0x1401807b3
mov byte [rcx + 0x65], sil
mov byte [rcx + 0x6d], 1
jmp 0x1401807c0
mov r11d, 1
add dword [rcx + 0x2e8], r11d
mov rax, qword [rcx + 0x2d8]
mov qword [rbx + 0x18], rax
mov rax, qword [rcx + 0x2f0]
mov qword [rcx + 0x2d8], rbx
mov qword [rbx + 8], rax
mov rax, qword [rcx + 0x2f8]
mov qword [rbx + 0x10], rax
mov rbx, rcx
mov rdi, qword [rsp + 0x40]
jmp 0x1401806e7
mov r15, qword [rbx + 0x2d8]
mov r13d, eax
mov r12d, 1
jmp 0x14018081d
mov rcx, qword [r15]
mov rdx, rdi
call fcn.14015f2c0
test eax, eax
je 0x140180839
mov r15, qword [r15 + 0x18]
add r13d, r12d
test r15, r15
jne 0x140180807
mov r8, rdi
lea rdx, [0x1404e2828]
mov rcx, r14
call fcn.140179ae8
jmp 0x1401862fe
xor edi, edi
mov rdx, r12
cmp dword [rbx + 0xe0], edi
jle 0x14018084f
cmp esi, r12d
je 0x140186312
cmp qword [r15 + 0x18], rdi
jne 0x1401808b3
cmp byte [rbx + 0x6d], dil
je 0x1401808b3
mov r12d, edx
cmp esi, edx
jne 0x1401808b6
mov rcx, r14
call fcn.14017c310
mov dword [rsp + 0x30], eax
mov r12d, 1
test eax, eax
jne 0x1401868e2
mov rcx, r14
mov byte [rbx + 0x65], r12b
call fcn.14017c360
lea ecx, [r12 + 4]
cmp eax, ecx
je 0x14018632c
mov eax, dword [r14 + 0x38]
mov dword [rsp + 0x30], eax
test eax, eax
je 0x1401808aa
mov byte [rbx + 0x65], dil
jmp 0x1401809ba
mov byte [rbx + 0x6d], dil
jmp 0x1401809ba
mov r12d, edi
mov eax, dword [rbx + 0x2e8]
mov ecx, 2
sub eax, r13d
mov r13d, eax
sub r13d, edx
cmp esi, ecx
jne 0x14018092c
mov r14d, dword [rbx + 0x2c]
mov esi, edi
and r14d, edx
cmp dword [rbx + 0x28], edi
jle 0x140180924
mov edi, r14d
xor edi, edx
xor eax, eax
mov ebx, eax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax + 0x20]
mov r8d, edi
mov edx, 0x204
mov rcx, qword [rcx + rbx + 8]
call fcn.140170738
mov dword [rsp + 0x30], eax
test eax, eax
jne 0x140186783
lea edx, [rax + 1]
add rbx, 0x20
mov rax, qword [rsp + 0x38]
add esi, edx
cmp esi, dword [rax + 0x28]
jl 0x1401808ea
mov rbx, rax
xor edi, edi
mov esi, dword [rbp + 0x160]
jmp 0x14018092f
mov r14d, edi
xor eax, eax
cmp dword [rbx + 0x28], eax
jle 0x14018097d
mov ebx, eax
mov rax, qword [rsp + 0x38]
mov r8d, r13d
mov edx, esi
mov rcx, qword [rax + 0x20]
mov rcx, qword [rcx + rbx + 8]
call fcn.14017097c
mov dword [rsp + 0x30], eax
test eax, eax
jne 0x140186783
mov rcx, qword [rsp + 0x38]
lea edx, [rax + 1]
add edi, edx
add rbx, 0x20
cmp edi, dword [rcx + 0x28]
jl 0x140180938
mov rbx, rcx
test r14d, r14d
je 0x1401809b3
mov rcx, qword [rbx + 8]
jmp 0x140180998
mov eax, dword [rsp + 0x30]
jmp 0x140180972
mov eax, dword [rcx + 0xd0]
and eax, 0xfffffffd
or eax, edx
mov dword [rcx + 0xd0], eax
mov rcx, qword [rcx + 0x10]
test rcx, rcx
jne 0x140180983
mov rcx, rbx
call fcn.14019a2cc
mov eax, dword [rsp + 0x30]
mov r11d, 1
or dword [rbx + 0x2c], r11d
mov r14, qword [rbp + 0x150]
test eax, eax
je 0x1401809e4
mov r15d, dword [rsp + 0x30]
jmp 0x14018611a
mov rax, qword [rcx + 0x18]
mov rdx, rcx
mov rcx, rbx
mov qword [rbx + 0x2d8], rax
call fcn.14015c4bc
dec dword [rbx + 0x2e8]
mov rcx, qword [rbx + 0x2d8]
cmp rcx, r15
jne 0x1401809c8
mov r11d, 1
cmp esi, r11d
jne 0x140180a22
mov rax, qword [r15 + 0x18]
mov rdx, r15
mov rcx, rbx
mov qword [rbx + 0x2d8], rax
call fcn.14015c518
test r12d, r12d
jne 0x140185899
dec dword [rbx + 0x2e8]
jmp 0x140180a4a
mov rax, qword [r15 + 8]
mov qword [rbx + 0x2f0], rax
mov rax, qword [r15 + 0x10]
mov qword [rbx + 0x2f8], rax
test r12d, r12d
je 0x140180a4a
mov eax, 2
cmp esi, eax
jne 0x140185892
mov r8d, r13d
mov edx, esi
mov rcx, rbx
call fcn.1401c14f4
mov rdi, qword [rsp + 0x40]
mov r15d, eax
mov dword [rsp + 0x30], eax
test eax, eax
jne 0x140186383
mov r13, qword [rsp + 0x48]
mov r12, qword [rsp + 0x50]
jmp 0x1401806e7
xor esi, esi
movsxd rcx, dword [r13 + 4]
mov rax, qword [r14 + 0x80]
mov edx, dword [r13 + 0xc]
mov rbx, qword [rax + rcx*8]
mov rcx, qword [rbx + 0x30]
call qword [r13 + 0x10]
mov dword [rsp + 0x30], eax
mov r15d, eax
mov dword [rbx + 0x20], esi
test eax, eax
jne 0x140180ac4
mov byte [rbx + 2], sil
lea r11d, [r15 + 1]
movzx eax, word [r13 + 2]
mov rbx, qword [rsp + 0x38]
add dword [r14 + rax*4 + 0xdc], r11d
jmp 0x1401823fb
cmp r15d, 0x65
jne 0x14018611a
mov r11d, 1
mov dword [rsp + 0x30], esi
mov byte [rbx + 2], r11b
mov r15d, esi
jmp 0x140185569
sub r8d, 6
je 0x140180ee4
sub r8d, 1
je 0x140180d52
sub r8d, 1
je 0x140180d13
sub r8d, 1
je 0x140180c38
cmp r8d, 1
jne 0x140180708
xor esi, esi
mov qword [rbp + 0x160], rsi
cmp byte [rbx + 0x67], sil
jne 0x140186749
mov rax, qword [r13 + 0x10]
mov rbx, qword [rax + 0x10]
test rbx, rbx
je 0x140186393
mov r10, qword [rbx]
test r10, r10
je 0x140186393
movsxd rdx, dword [r13 + 8]
cmp qword [r10 + 0x68], rsi
je 0x1401860d1
movsxd rax, dword [r13 + 0xc]
xor r11d, r11d
mov rsi, qword [rsp + 0x38]
mov r8, qword [r14 + 0x78]
imul rcx, rax, 0x38
mov dil, byte [rsi + 0x6c]
mov eax, r11d
add rcx, r12
test edx, edx
jle 0x140180b8a
lea r11d, [rax + 1]
mov qword [r8 + rax*8], rcx
add rcx, 0x38
add rax, r11
cmp rax, rdx
jl 0x140180b7a
mov al, byte [r13 + 2]
lea r9, [rbp + 0x160]
mov rcx, rbx
mov byte [rsi + 0x6c], al
call qword [r10 + 0x68]
mov rdx, rbx
mov byte [rsi + 0x6c], dil
mov rcx, r14
mov dword [rsp + 0x30], eax
mov r15d, eax
call fcn.14017de68
xor esi, esi
test r15d, r15d
jne 0x140180bd4
mov rbx, qword [rsp + 0x38]
cmp dword [r13 + 4], esi
je 0x140180c11
mov rax, qword [rbp + 0x160]
mov qword [rbx + 0x38], rax
jmp 0x140180c11
cmp r15b, 0x13
jne 0x140180c0c
mov rax, qword [r13 + 0x10]
cmp byte [rax + 0x1c], sil
je 0x140180c0c
mov rdi, qword [rsp + 0x40]
mov eax, 4
cmp word [r13 + 2], ax
jne 0x140186365
mov rbx, qword [rsp + 0x38]
mov r15d, esi
mov dword [rsp + 0x30], esi
mov esi, eax
jmp 0x1401806ec
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov r11d, 1
add qword [r14 + 0x40], r11
test r15d, r15d
jne 0x140186777
mov esi, 4
mov edx, 0x2400
jmp 0x1401806f7
movsxd rax, dword [r13 + 0xc]
movsxd rcx, dword [r13 + 4]
imul rdx, rax, 0x38
mov rax, qword [r14 + 0x80]
mov r13, qword [rax + rcx*8]
lea r11, [rdx + 0x38]
mov edx, dword [rdx + r12]
add r11, r12
mov r12, qword [rbp + 0x150]
xor eax, eax
mov r8d, eax
mov rdi, qword [r13 + 0x30]
movsxd r9, dword [r11]
mov rsi, qword [r12 + 0x78]
mov r15, qword [rdi]
mov r14, qword [r15]
test r9d, r9d
jle 0x140180ca4
lea r12d, [rax + 1]
mov r10d, r12d
movsxd rax, r10d
add r10d, r12d
imul rcx, rax, 0x38
add rcx, r11
mov qword [rsi + r8*8], rcx
add r8, r12
cmp r8, r9
jl 0x140180c84
mov r12, qword [rbp + 0x150]
mov qword [rsp + 0x20], rsi
mov rcx, rdi
mov rsi, qword [rsp + 0x48]
mov r8, qword [rsi + 0x10]
call qword [r14 + 0x40]
mov rdx, r15
mov rcx, r12
mov dword [rsp + 0x30], eax
call fcn.14017de68
mov r15d, dword [rsp + 0x30]
xor ebx, ebx
test r15d, r15d
jne 0x14018678d
mov rcx, rdi
call qword [r14 + 0x50]
mov r12, qword [rsp + 0x50]
xor esi, esi
mov byte [r13 + 2], sil
test eax, eax
mov r13, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
mov r11d, 1
jne 0x1401817f6
mov r14, qword [rbp + 0x150]
mov rbx, qword [rsp + 0x38]
jmp 0x140180c29
xor esi, esi
cmp dword [r13 + 8], esi
je 0x140180d28
movsxd rax, dword [r13 + 8]
imul r9, rax, 0x38
add r9, r12
jmp 0x140180d2b
mov r9, rsi
mov r8d, dword [r13 + 4]
lea rcx, [r14 + 0xb0]
mov rdx, rbx
call fcn.1401bfd3c
mov r15d, eax
mov dword [rsp + 0x30], eax
test eax, eax
jne 0x14018611a
jmp 0x1401806e7
mov rdx, r13
mov rcx, r14
call fcn.140180338
movsxd rdx, dword [r13 + 4]
mov r15, rax
mov rax, qword [rsp + 0x38]
mov ebx, dword [r13 + 0xc]
shl rdx, 5
mov rcx, qword [rax + 0x20]
mov r14, qword [rdx + rcx + 8]
mov rcx, r14
call fcn.140176808
mov rcx, rax
mov rsi, rax
call fcn.140169db4
cmp ebx, 0xffffffff
mov rcx, rsi
mov edi, eax
cmove ebx, eax
call fcn.140169dbc
test eax, eax
mov edx, 1
mov rcx, rsi
cmove ebx, edi
call fcn.140169aec
mov edx, 5
cmp ebx, edx
jne 0x140180e42
mov rcx, rax
call fcn.14015efc4
test eax, eax
je 0x140180dd6
mov rcx, rsi
call fcn.140169eb0
xor ecx, ecx
test eax, eax
jne 0x140180e46
mov ebx, edi
mov eax, dword [rsp + 0x30]
test eax, eax
je 0x140180de2
mov ebx, edi
mov edx, ebx
mov rcx, rsi
call fcn.140169c98
mov ecx, eax
mov word [r15 + 8], 0xa02
call fcn.1401ac668
mov rcx, rax
mov qword [r15 + 0x10], rax
call fcn.14015efc4
movzx edx, byte [rbp + 0x158]
mov rcx, r15
mov dword [r15 + 0xc], eax
mov byte [r15 + 0xa], 1
call fcn.140178444
mov r15d, dword [rsp + 0x30]
mov r14, qword [rbp + 0x150]
test r15d, r15d
mov rdi, qword [rsp + 0x40]
jne 0x140186383
mov rbx, qword [rsp + 0x38]
jmp 0x1401806e7
xor ecx, ecx
jmp 0x140180e4b
mov edx, 5
cmp ebx, edi
je 0x140180dd8
cmp edi, edx
je 0x140180e57
cmp ebx, edx
jne 0x140180dd8
mov rax, qword [rsp + 0x38]
cmp byte [rax + 0x65], cl
je 0x14018639e
mov r11d, 1
cmp dword [rax + 0xdc], r11d
jg 0x14018639e
cmp edi, edx
jne 0x140180ea1
mov rdx, rax
mov rcx, rsi
call fcn.140169fd0
mov dword [rsp + 0x30], eax
test eax, eax
jne 0x140180de0
mov edx, ebx
mov rcx, rsi
call fcn.140169c98
xor ecx, ecx
jmp 0x140180ec2
mov eax, 4
cmp edi, eax
jne 0x140180eb7
lea edx, [rax - 2]
mov rcx, rsi
call fcn.140169c98
xor ecx, ecx
cmp dword [rsp + 0x30], 0
jne 0x140180de0
mov edx, ecx
mov ecx, 5
cmp ebx, ecx
sete dl
lea eax, [rcx - 4]
mov rcx, r14
add edx, eax
call fcn.1401776e0
mov dword [rsp + 0x30], eax
jmp 0x140180ddc
mov r8d, dword [r13 + 8]
lea rax, [rbp + 8]
mov edx, dword [r13 + 4]
lea r9, [rbp + 4]
or dword [rbp + 8], 0xffffffff
xor esi, esi
or dword [rbp + 4], 0xffffffff
mov rcx, rbx
mov dword [rbp], esi
mov qword [rsp + 0x20], rax
call fcn.1401d8b88
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
je 0x140180f35
lea ecx, [rsi + 5]
cmp eax, ecx
jne 0x14018611a
lea r11d, [rsi + 1]
mov dword [rsp + 0x30], esi
mov dword [rbp], r11d
mov r15d, esi
jmp 0x140180f3b
mov r11d, 1
movsxd rax, dword [r13 + 0xc]
mov rdi, rsi
imul rbx, rax, 0x38
mov esi, 0x2400
add rbx, r12
movsxd rax, dword [rbp + rdi*4]
test word [rbx + 8], si
je 0x140180f6c
mov rdx, rax
mov rcx, rbx
call fcn.140178d94
mov r11d, 1
jmp 0x140180f75
mov qword [rbx], rax
mov word [rbx + 8], 4
add rdi, r11
add rbx, 0x38
cmp rdi, 3
jl 0x140180f4e
mov r14, qword [rbp + 0x150]
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
jmp 0x140180c29
cmp r8d, 0x11
ja 0x1401811a3
je 0x140181134
sub r8d, 0xc
je 0x140181107
sub r8d, 1
je 0x1401810d6
sub r8d, 1
je 0x14018109c
sub r8d, 1
je 0x140181026
cmp r8d, 1
jne 0x140180708
mov edx, dword [rsp + 0x5c]
test edx, edx
jns 0x140180ffe
mov eax, dword [r13 + 4]
sub eax, r11d
cdqe
lea rcx, [rax + rax*2]
lea r13, [rdi + rcx*8]
mov esi, 4
mov edx, 0x2400
jmp 0x140180703
mov esi, 4
mov edx, 0x2400
jne 0x140181020
mov eax, dword [r13 + 8]
sub eax, r11d
cdqe
lea rcx, [rax + rax*2]
lea r13, [rdi + rcx*8]
jmp 0x140180703
mov eax, dword [r13 + 0xc]
jmp 0x14018100e
movsxd rax, dword [r13 + 4]
imul rbx, rax, 0x38
add rbx, r12
movzx eax, word [rbx + 8]
test sil, al
jne 0x140181081
mov r8b, byte [rbp + 0x158]
mov dl, 0x43
mov rcx, rbx
call fcn.1401801b8
movzx eax, word [rbx + 8]
test sil, al
jne 0x14018106b
xor esi, esi
cmp dword [r13 + 8], esi
je 0x1401863d6
mov r11d, 1
jmp 0x1401817f6
mov ecx, 0x10
mov edx, 0x2400
lea r11d, [rcx - 0xf]
lea r9d, [rcx - 0xe]
lea r10d, [rcx - 8]
mov r8d, 0x3e40
and ax, r8w
or ax, si
mov word [rbx + 8], ax
mov rbx, qword [rsp + 0x38]
jmp 0x140180708
movsxd rax, dword [r13 + 4]
sub r13, rdi
imul rdx, rax, 0x38
sar r13, 3
movabs rax, 0xaaaaaaaaaaaaaaab
imul rax, r13
movsxd rcx, dword [rdx + r12]
cdqe
mov word [rdx + r12 + 8], si
mov qword [rdx + r12], rax
lea rcx, [rcx + rcx*2]
lea r13, [rdi + rcx*8]
jmp 0x140180ff4
movsxd rax, dword [r13 + 4]
imul rcx, rax, 0x38
mov eax, dword [r13 + 0xc]
sub eax, r11d
cdqe
mov word [rcx + r12 + 8], si
xor esi, esi
mov qword [rcx + r12], rax
cmp dword [r13 + 8], esi
jne 0x1401817f6
mov esi, 4
jmp 0x140180703
movsxd rax, dword [r13 + 4]
movabs rdx, 0xaaaaaaaaaaaaaaab
imul rcx, rax, 0x38
mov rax, r13
sub rax, rdi
sar rax, 3
imul rax, rdx
mov word [rcx + r12 + 8], si
cdqe
jmp 0x140181fad
mov rcx, qword [r14 + 0x110]
mov rdx, qword [r14 + 0x90]
test rcx, rcx
je 0x140181183
mov r8, qword [rcx + 0x30]
mov rax, r13
sub rax, rdx
movabs rdx, 0xaaaaaaaaaaaaaaab
sar rax, 3
imul rax, rdx
mov edx, eax
and eax, 7
shr rdx, 3
movzx ecx, byte [rdx + r8]
bt ecx, eax
jb 0x1401817f6
bts ecx, eax
mov byte [rdx + r8], cl
jmp 0x140181190
mov eax, dword [r13 + 4]
cmp dword [rdx + 4], eax
je 0x1401817f6
mov rax, qword [r14 + 0x90]
mov ecx, dword [rax + 4]
mov dword [r13 + 4], ecx
jmp 0x140180ff4
sub r8d, 0x12
je 0x140181269
sub r8d, 1
je 0x14018121e
sub r8d, 1
je 0x1401811f2
cmp r8d, 1
jne 0x140180708
movsxd rax, dword [r13 + 4]
imul rcx, rax, 0x38
add rcx, r12
test byte [rcx + 8], r11b
jne 0x1401817f6
call fcn.14017e2dc
mov r11d, 1
cmp eax, dword [r13 + 0xc]
je 0x1401817f6
jmp 0x140180c2e
movsxd rax, dword [r13 + 4]
xor esi, esi
cmp dword [r13 + 0xc], esi
mov edx, esi
sete dl
imul rcx, rax, 0x38
add rcx, r12
call fcn.140178a34
lea r11d, [rsi + 1]
test eax, eax
je 0x1401817f6
jmp 0x140180c29
movsxd rax, dword [r13 + 4]
imul rcx, rax, 0x38
movsxd rax, dword [r13 + 8]
imul rbx, rax, 0x38
add rcx, r12
add rbx, r12
test byte [rcx + 8], r11b
jne 0x140181257
xor edx, edx
call fcn.140178a34
xor esi, esi
mov rcx, rbx
test eax, eax
mov edx, esi
sete dl
call fcn.140178dc8
jmp 0x140180e38
mov rcx, rbx
call fcn.140178d30
mov rbx, qword [rsp + 0x38]
jmp 0x1401806ec
movsxd rax, dword [r13 + 4]
mov edx, dword [r13 + 0xc]
imul rcx, rax, 0x38
add rcx, r12
call fcn.140178a34
test eax, eax
mov r11d, 1
jne 0x1401817f6
jmp 0x140180c29
movsxd rcx, dword [r13 + 4]
xor esi, esi
mov rax, qword [r14 + 0x80]
mov rcx, qword [rax + rcx*8]
cmp byte [rcx + 2], sil
je 0x1401810fd
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
add rcx, r12
test word [rcx + 8], dx
je 0x1401812c6
call fcn.1401788b0
jmp 0x140181060
mov word [rcx + 8], r11w
jmp 0x1401817f6
cmp r8d, 0x21
ja 0x14018180c
je 0x140181789
cmp r8d, 0x1c
ja 0x1401815ee
je 0x14018157d
mov ecx, r8d
sub ecx, 0x17
je 0x14018132c
sub ecx, 1
je 0x14018132c
sub ecx, 1
je 0x14018132c
sub ecx, 1
je 0x14018132c
cmp ecx, 1
jne 0x140180703
movsxd rcx, dword [r13 + 4]
xor esi, esi
mov rax, qword [r14 + 0x80]
cmp qword [rax + rcx*8], rsi
je 0x1401823fb
jmp 0x1401810fd
movsxd rcx, dword [r13 + 4]
mov edi, r8d
mov rax, qword [r14 + 0x80]
xor r8d, r8d
mov r12d, r8d
mov r14, qword [rax + rcx*8]
mov word [r14 + 2], r8w
mov dword [r14 + 0x20], r8d
cmp byte [r14 + 4], r8b
je 0x14018147d
movsxd rax, dword [r13 + 0xc]
imul rbx, rax, 0x38
add rbx, qword [rsp + 0x50]
movzx esi, word [rbx + 8]
mov al, sil
and al, 0x2e
cmp al, r9b
jne 0x14018137c
xor edx, edx
mov rcx, rbx
call fcn.1401800e4
mov rcx, rbx
call fcn.1401789ac
movzx edx, word [rbx + 8]
mov r15, rax
mov word [rbx + 8], si
test dl, 0x24
jne 0x140181445
mov eax, 8
test al, dl
jne 0x140181417
lea r11d, [rax - 7]
test r11b, dl
jne 0x140184ca2
cmp edi, 0x19
jae 0x140184ca2
mov rcx, qword [r14 + 0x30]
lea rdx, [rsp + 0x68]
call fcn.140171534
xor esi, esi
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x140181471
mov r11d, 1
cmp dword [rsp + 0x68], esi
jne 0x140184ca7
mov rbx, qword [rsp + 0x38]
mov esi, 4
lea r11d, [rsi - 3]
test r12d, r12d
je 0x140182a8a
add r13, 0x18
mov r14, qword [rbp + 0x150]
mov r12, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
jmp 0x140180c2e
movsd xmm1, qword [rbx]
mov rcx, r15
call fcn.14017d1f4
xor esi, esi
test eax, eax
jle 0x140181435
lea eax, [rsi + 1]
test al, dil
jne 0x140181447
sub edi, eax
jmp 0x140181447
jns 0x140181447
mov eax, 1
test al, dil
je 0x140181447
add edi, eax
jmp 0x140181447
xor esi, esi
lea rbx, [r14 + 0x30]
xor r8d, r8d
mov rcx, qword [rbx]
lea r9, [rsp + 0x68]
mov rdx, r15
call fcn.1401715ac
mov qword [r14 + 0x50], r15
mov r15d, eax
mov dword [rsp + 0x30], eax
test eax, eax
je 0x1401814f9
mov r14, qword [rbp + 0x150]
jmp 0x14018611a
lea rbx, [r14 + 0x30]
mov rax, qword [rbx]
lea rdx, [rbp - 0x60]
mov sil, byte [rax + 3]
mov rax, qword [r14 + 0x38]
and sil, r9b
mov qword [rbp - 0x60], rax
movzx eax, word [r13 + 0x10]
setne r12b
mov word [rbp - 0x50], ax
lea eax, [rdi - 1]
and al, r11b
mov byte [rbp - 0x4a], r8b
neg al
lea r8, [rsp + 0x68]
movsxd rax, dword [r13 + 0xc]
sbb cl, cl
and cl, 0xfe
add cl, r11b
mov byte [rbp - 0x4e], cl
imul rcx, rax, 0x38
add rcx, qword [rsp + 0x50]
mov qword [rbp - 0x58], rcx
mov rcx, qword [rbx]
call fcn.1401717a4
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x140181471
test sil, sil
je 0x1401814f7
xor esi, esi
cmp byte [rbp - 0x4a], sil
je 0x1401813d6
jmp 0x1401814f9
xor esi, esi
mov eax, dword [rsp + 0x68]
cmp edi, 0x19
jl 0x140181551
test eax, eax
js 0x140181516
jne 0x14018150d
cmp edi, 0x1a
je 0x140181516
mov dword [rsp + 0x68], esi
jmp 0x1401813e6
mov dword [rsp + 0x68], esi
xor edx, edx
mov rcx, qword [rbx]
call fcn.140171bd8
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
je 0x1401813d6
cmp eax, 0x65
jne 0x140181471
lea r11d, [rax - 0x64]
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x68], r11d
mov r15d, esi
jmp 0x1401813dc
test eax, eax
jg 0x14018156d
jne 0x14018155c
cmp edi, 0x17
je 0x14018156d
mov rcx, qword [rbx]
call fcn.140171a7c
mov dword [rsp + 0x68], eax
jmp 0x1401813d6
mov dword [rsp + 0x68], esi
xor edx, edx
mov rcx, qword [rbx]
call fcn.140171d04
jmp 0x140181524
mov rax, qword [r14 + 0x80]
movsxd rcx, dword [r13 + 4]
mov rcx, qword [rax + rcx*8]
movzx eax, word [rcx + 0xc]
cmp eax, dword [r13 + 0x10]
jge 0x140180703
mov rax, qword [r14 + 0x80]
xor r15d, r15d
movsxd rcx, dword [r13 + 4]
mov rsi, qword [rax + rcx*8]
movsxd rax, dword [r13 + 0xc]
imul rbx, rax, 0x38
add rbx, r12
cmp dword [r13 + 0x10], r15d
jle 0x140181665
mov rax, qword [rsi + 0x38]
lea rdi, [rbp + 0x90]
mov qword [rbp + 0x90], rax
mov r14d, r15d
movzx eax, word [r13 + 0x10]
mov word [rbp + 0xa0], ax
mov qword [rbp + 0x98], rbx
jmp 0x1401816b5
sub r8d, 0x1d
je 0x14018159a
sub r8d, 1
je 0x14018159a
sub r8d, 1
je 0x14018159a
cmp r8d, 1
jne 0x140180708
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
add rcx, r12
test byte [rcx + 8], 0x24
jne 0x140181789
movups xmm0, xmmword [rcx]
mov r8b, byte [rbp + 0x158]
mov dl, 0x43
movups xmm1, xmmword [rcx + 0x10]
movups xmmword [rbp + 0x40], xmm0
movups xmm0, xmmword [rcx + 0x20]
movups xmmword [rbp + 0x50], xmm1
movsd xmm1, qword [rcx + 0x30]
lea rcx, [rbp + 0x40]
movups xmmword [rbp + 0x60], xmm0
movsd qword [rbp + 0x70], xmm1
call fcn.1401801b8
test byte [rbp + 0x48], sil
je 0x140181060
mov rdi, qword [rbp + 0x40]
jmp 0x140181795
mov eax, 0x4000
test word [rbx + 8], ax
je 0x140181680
mov rcx, rbx
call fcn.140178680
test eax, eax
jne 0x140186744
mov rcx, qword [rsi + 0x38]
call fcn.14017ce40
mov rdi, rax
mov r14, rax
test rax, rax
je 0x14018673d
mov r8, qword [rbx + 0x10]
mov r9, rax
mov edx, dword [rbx + 0xc]
mov rcx, qword [rsi + 0x38]
call fcn.14017ce98
mov r11d, 1
lea r10d, [r11 + 7]
mov byte [rdi + 0x12], r15b
mov ebx, r15d
cmp byte [r13], 0x1d
jne 0x1401816ed
mov edx, r15d
cmp r15w, word [rdi + 0x10]
jae 0x1401816ed
mov rcx, qword [rdi + 8]
add rcx, r10
test byte [rcx], r11b
jne 0x1401816ea
movzx eax, word [rdi + 0x10]
add edx, r11d
add rcx, 0x38
cmp edx, eax
jl 0x1401816d4
jmp 0x1401816ed
mov ebx, r11d
mov rcx, qword [rsi + 0x30]
lea r8, [rbp - 0x18]
mov rdx, rdi
call fcn.1401717a4
xor edi, edi
mov dword [rsp + 0x30], eax
mov r15d, eax
test r14, r14
je 0x140181718
mov rcx, qword [rsp + 0x38]
mov rdx, r14
call fcn.14015c4bc
test r15d, r15d
jne 0x140181471
mov eax, dword [rbp - 0x18]
mov ecx, edi
mov dword [rsi + 0x24], eax
mov eax, dword [rbp - 0x18]
test eax, eax
mov byte [rsi + 3], dil
sete cl
mov dword [rsi + 0x20], edi
test eax, eax
setne al
mov byte [rsi + 2], al
cmp byte [r13], 0x1f
jne 0x14018174e
test ecx, ecx
jmp 0x140180cf1
test ebx, ebx
jne 0x1401817eb
test ecx, ecx
je 0x1401817eb
cmp byte [r13], 0x1c
mov r11d, 1
mov rbx, qword [rsp + 0x38]
jne 0x1401858a4
movzx eax, word [r13 + 0x10]
mov word [rsi + 0xc], ax
mov r14, qword [rbp + 0x150]
jmp 0x140180f8e
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
mov rdi, qword [rcx + r12]
movsxd rcx, dword [r13 + 4]
lea r9, [rsp + 0x7c]
mov rax, qword [r14 + 0x80]
xor esi, esi
xor r8d, r8d
mov rdx, rdi
mov rbx, qword [rax + rcx*8]
mov rcx, qword [rbx + 0x30]
mov dword [rsp + 0x7c], esi
call fcn.1401715ac
mov qword [rbx + 0x50], rdi
mov r15d, eax
mov word [rbx + 2], si
mov dword [rbx + 0x20], esi
mov dword [rsp + 0x30], eax
mov eax, dword [rsp + 0x7c]
mov dword [rbx + 0x24], eax
cmp dword [rsp + 0x7c], esi
je 0x140180e2a
cmp dword [r13 + 8], esi
je 0x1401863e1
mov r11d, 1
mov rdi, qword [rsp + 0x40]
mov eax, dword [r13 + 8]
sub eax, r11d
cdqe
lea rcx, [rax + rax*2]
lea r13, [rdi + rcx*8]
jmp 0x140180d02
cmp r8d, 0x27
ja 0x140181921
je 0x14018198f
mov ecx, r8d
sub ecx, 0x22
je 0x140184c39
sub ecx, 1
je 0x1401818b1
sub ecx, 1
je 0x140181845
sub ecx, 1
je 0x140181845
cmp ecx, 1
je 0x14018184c
jmp 0x140180703
add dword [r14 + 0xe4], r11d
movsxd rcx, dword [r13 + 4]
lea rdx, [rsp + 0x78]
mov rax, qword [r14 + 0x80]
mov rbx, qword [rax + rcx*8]
mov dword [rsp + 0x78], r11d
cmp byte [rbx], r11b
jne 0x140181876
mov rcx, rbx
call fcn.14018973c
xor esi, esi
jmp 0x140181888
mov rcx, qword [rbx + 0x30]
call fcn.1401714f4
xor esi, esi
mov byte [rbx + 3], sil
mov dword [rbx + 0x20], esi
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
mov al, byte [rsp + 0x78]
lea r11d, [r15 + 1]
mov byte [rbx + 2], al
cmp dword [rsp + 0x78], esi
jne 0x1401817f6
jmp 0x140180d09
movsxd rcx, dword [r13 + 4]
lea rdx, [rbp - 0x80]
mov rax, qword [r14 + 0x80]
mov rcx, qword [rax + rcx*8]
mov rbx, qword [rcx + 0x30]
mov rcx, rbx
call fcn.1401714f4
xor esi, esi
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
cmp dword [rbp - 0x80], esi
jne 0x140181060
mov rcx, rbx
call fcn.140171a84
test rax, rax
js 0x140181914
mov rcx, rax
call fcn.1401601e0
movsx ecx, ax
cmp ecx, dword [r13 + 0xc]
jge 0x140181914
lea r11d, [r15 + 1]
mov eax, r11d
mov dword [rbp - 0x80], eax
jmp 0x14018191d
mov eax, dword [rbp - 0x80]
mov r11d, 1
test eax, eax
jmp 0x1401818a6
mov ecx, r8d
sub ecx, 0x28
je 0x14018198f
sub ecx, 1
je 0x14018198f
sub ecx, 1
je 0x14018198f
cmp ecx, 1
jne 0x140180703
movsxd rax, dword [r13 + 4]
mov edx, r9d
imul rcx, rax, 0x38
add rcx, r12
call fcn.140178a34
movsxd rcx, dword [r13 + 8]
mov esi, 2
imul rcx, rcx, 0x38
mov edx, esi
mov ebx, eax
add rcx, r12
call fcn.140178a34
lea eax, [rax + rbx*2]
add eax, ebx
cmp byte [r13], 0x2c
movsxd r9, eax
lea rax, [0x140000000]
jne 0x140181a6e
mov r9b, byte [r9 + rax + 0x4d4878]
jmp 0x140181a76
movsxd rcx, dword [r13 + 4]
cmp r8b, 0x29
mov rax, qword [r14 + 0x80]
mov rdx, qword [rax + rcx*8]
mov rax, qword [rdx + 0x38]
mov qword [rbp - 0x60], rax
movzx eax, word [r13 + 0x10]
mov word [rbp - 0x50], ax
sbb al, al
mov byte [rbp - 0x4e], al
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
add rcx, r12
mov qword [rbp - 0x58], rcx
mov rbx, qword [rdx + 0x30]
mov rcx, rbx
call fcn.140170c90
mov edx, dword [rbx + 0x40]
lea eax, [rdx - 1]
cmp eax, 0x7ffffffe
ja 0x140186416
mov rax, qword [rsp + 0x38]
lea r8, [rbp + 0x40]
xor esi, esi
mov qword [rbp + 0x68], rax
mov rcx, rbx
mov word [rbp + 0x48], si
mov dword [rbp + 0x60], esi
call fcn.140179440
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
mov rdx, qword [rbp + 0x50]
lea r8, [rbp - 0x60]
mov ecx, dword [rbp + 0x4c]
xor r9d, r9d
call fcn.14017d44c
mov edx, 0x2400
mov ebx, eax
test word [rbp + 0x48], dx
jne 0x140181a36
cmp dword [rbp + 0x60], esi
je 0x140181a44
lea rcx, [rbp + 0x40]
call fcn.1401788ec
mov edx, 0x2400
mov r11d, 1
test byte [r13], r11b
je 0x140181a54
neg ebx
jmp 0x140181a57
add ebx, r11d
test ebx, ebx
jg 0x1401817f6
mov rbx, qword [rsp + 0x38]
mov esi, 4
jmp 0x1401806f7
mov r9b, byte [r9 + rax + 0x4d51e8]
movsxd rax, dword [r13 + 0xc]
mov r11d, 1
imul rdx, rax, 0x38
mov eax, 0x3e40
movzx ecx, word [rdx + r12 + 8]
and cx, ax
cmp r9b, sil
jne 0x140181a9d
or cx, r11w
jmp 0x140181aa9
movzx eax, r9b
or cx, 4
mov qword [rdx + r12], rax
mov word [rdx + r12 + 8], cx
jmp 0x140180d09
cmp r8d, 0x42
ja 0x140182416
je 0x14018222b
cmp r8d, 0x37
ja 0x140181f25
je 0x140181e95
cmp r8d, 0x32
ja 0x140181e75
je 0x140181e5d
sub r8d, 0x2d
je 0x140181e0b
sub r8d, 1
je 0x140181da9
sub r8d, 1
je 0x140181b5a
sub r8d, 1
je 0x140181b33
cmp r8d, 1
jne 0x140180708
movsxd rax, dword [r13 + 4]
imul rcx, rax, 0x38
mov rdx, qword [rcx + r12]
test rdx, rdx
jle 0x140180fef
movsxd rax, dword [r13 + 0xc]
sub rdx, rax
mov qword [rcx + r12], rdx
jmp 0x1401817f6
xor esi, esi
cmp dword [r13 + 4], esi
je 0x140181b44
cmp qword [rbx + 0x2f0], rsi
jmp 0x140181b48
cmp qword [r14 + 0x58], rsi
jne 0x140181fc2
cmp qword [rbx + 0x2f8], rsi
jmp 0x140181fbc
movsxd rax, dword [r13 + 0xc]
mov r12, qword [r13 + 0x10]
imul rsi, rax, 0x38
xor eax, eax
add rsi, qword [rsp + 0x50]
cmp word [r13 + 2], ax
je 0x140181b9a
mov rcx, qword [r12 + 0x20]
mov rax, qword [r14 + 0x110]
test rax, rax
je 0x140181b95
cmp qword [rax + 0x38], rcx
je 0x1401860f3
mov rax, qword [rax + 8]
jmp 0x140181b80
mov ecx, 0x10
mov eax, dword [rbx + 0xb0]
lea rdi, [r14 + 0x120]
cmp dword [rdi], eax
jge 0x14018641e
test byte [rsi + 8], cl
jne 0x140181cd6
mov edx, dword [r12 + 0x10]
mov ecx, dword [r12 + 0xc]
mov eax, dword [r12 + 8]
add ecx, edx
test edx, edx
lea r15d, [rcx + 1]
cmovne r15d, ecx
imul ecx, r15d, 7
add ecx, 0xf
add eax, 7
jns 0x140181be2
add eax, 7
add ecx, edx
sar eax, 3
lea r14d, [rax + rcx*8]
mov rcx, rbx
movsxd rdx, r14d
call fcn.14015c76c
mov rbx, rax
test rax, rax
je 0x14018673d
mov rcx, rsi
call fcn.140178928
sub r13, qword [rsp + 0x40]
lea rax, [0x14017af0c]
mov qword [rsi + 0x30], rax
movabs rax, 0xaaaaaaaaaaaaaaab
mov dword [rsi + 0xc], r14d
mov r14, qword [rbp + 0x150]
mov word [rsi + 8], 0x410
mov qword [rsi + 0x10], rbx
mov qword [rbx], r14
mov dword [rbx + 0x60], r15d
mov ecx, dword [r12 + 0x10]
mov dword [rbx + 0x64], ecx
sar r13, 3
imul r13, rax
mov dword [rbx + 0x54], r13d
mov rax, qword [r14 + 0x70]
mov qword [rbx + 0x20], rax
mov eax, dword [r14 + 0x28]
mov dword [rbx + 0x5c], eax
mov rax, qword [r14 + 0x80]
mov qword [rbx + 0x28], rax
mov eax, dword [r14 + 0x2c]
mov dword [rbx + 0x50], eax
mov rax, qword [r14 + 0x90]
mov qword [rbx + 0x10], rax
mov eax, dword [r14 + 0x98]
mov dword [rbx + 0x58], eax
mov rax, qword [r12 + 0x20]
mov qword [rbx + 0x38], rax
movsxd rax, r15d
imul rdx, rax, 0x38
lea rax, [rbx + 0x78]
add rdx, 0x78
add rdx, rbx
cmp rax, rdx
je 0x140181cc9
mov rcx, qword [rsp + 0x38]
mov word [rax + 8], 0x80
mov qword [rax + 0x28], rcx
add rax, 0x38
cmp rax, rdx
jne 0x140181caf
lea rdi, [r14 + 0x120]
mov r15d, dword [rsp + 0x30]
mov r11d, 1
jmp 0x140181cda
mov rbx, qword [rsi + 0x10]
add dword [rdi], r11d
lea rdx, [rbx + 0x78]
mov rax, qword [r14 + 0x110]
xor esi, esi
mov qword [rbx + 8], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x50], rdx
mov rax, qword [rax + 0x38]
mov qword [rbx + 0x40], rax
mov rax, qword [r14 + 0x40]
mov qword [rbx + 0x68], rax
mov rax, qword [r14]
mov rcx, qword [rax + 0x78]
mov qword [rbx + 0x70], rcx
mov rax, qword [r14 + 0x130]
mov qword [rbx + 0x48], rax
mov qword [r14 + 0x70], rdx
mov qword [r14 + 0x130], rsi
mov qword [r14 + 0x40], rsi
mov qword [r14 + 0x110], rbx
movsxd rcx, dword [rbx + 0x60]
mov dword [r14 + 0x28], ecx
movzx eax, word [rbx + 0x64]
mov dword [r14 + 0x2c], eax
imul rcx, rcx, 0x38
add rcx, rdx
mov qword [r14 + 0x80], rcx
movsxd rax, dword [r12 + 0x10]
lea rcx, [rcx + rax*8]
mov qword [rbx + 0x30], rcx
mov eax, dword [r12 + 8]
add eax, 7
cdq
and edx, 7
add eax, edx
xor edx, edx
sar eax, 3
movsxd r8, eax
call fcn.140408b90
mov rdi, qword [r12]
mov qword [r14 + 0x90], rdi
mov eax, dword [r12 + 8]
mov r12, qword [rsp + 0x50]
lea r13, [rdi - 0x18]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], r13
mov dword [r14 + 0x98], eax
jmp 0x140185563
movsxd rax, dword [r13 + 4]
mov edi, dword [r13 + 0x10]
imul rbx, rax, 0x38
movsxd rax, dword [r13 + 0xc]
add rbx, r12
imul rsi, rax, 0x38
test byte [rbx + 8], cl
jne 0x140181dd5
mov rcx, rbx
call fcn.140178e50
test eax, eax
jne 0x140186744
test edi, edi
je 0x140181df2
mov r8, qword [rsi + r12]
mov edx, edi
mov rcx, qword [rbx + 0x10]
call fcn.1401658cc
test eax, eax
jne 0x1401817eb
test edi, edi
js 0x140181e01
mov rdx, qword [rsi + r12]
mov rcx, qword [rbx + 0x10]
call fcn.1401655f4
mov rbx, qword [rsp + 0x38]
jmp 0x1401807eb
movsxd rax, dword [r13 + 4]
imul rbx, rax, 0x38
add rbx, r12
test byte [rbx + 8], cl
je 0x140181e45
mov rcx, qword [rbx + 0x10]
lea rdx, [rbp + 0x78]
call fcn.140165864
test eax, eax
je 0x140181e45
movsxd rax, dword [r13 + 0xc]
mov rdx, qword [rbp + 0x78]
imul rcx, rax, 0x38
add rcx, r12
call fcn.140178dc8
jmp 0x140185563
mov rcx, rbx
call fcn.140178d30
mov rbx, qword [rsp + 0x38]
mov r11d, 1
jmp 0x1401823fb
movsxd rax, dword [r13 + 4]
imul rcx, rax, 0x38
test byte [rcx + r12 + 8], r11b
jne 0x1401817f6
jmp 0x140180703
sub r8d, 0x33
je 0x140181f0d
sub r8d, 1
je 0x140181e95
sub r8d, 1
je 0x140181e95
cmp r8d, 1
jne 0x140180708
movsxd rax, dword [r13 + 4]
mov edx, 4
imul r14, rax, 0x38
movsxd rax, dword [r13 + 0xc]
imul rsi, rax, 0x38
add r14, r12
add rsi, r12
movzx edi, word [r14 + 8]
movzx ebx, word [rsi + 8]
movzx eax, bx
and ax, di
test dl, al
je 0x140181ffd
mov rcx, qword [r14]
cmp qword [rsi], rcx
lea rcx, [0x140000000]
movzx eax, byte [r13]
jle 0x140181fcc
xor edi, edi
mov dword [rsp + 0x5c], r11d
cmp byte [rax + rcx + 0x4d5e48], dil
jne 0x1401817f1
mov rdi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x38]
mov rsi, rdx
mov r14, qword [rbp + 0x150]
jmp 0x140180ff4
movsxd rax, dword [r13 + 4]
imul rcx, rax, 0x38
test byte [rcx + r12 + 8], r11b
je 0x1401817f6
jmp 0x140180703
cmp r8d, 0x3d
ja 0x140182203
je 0x1401821c7
sub r8d, 0x38
je 0x140181e95
sub r8d, 1
je 0x140181e95
sub r8d, 1
je 0x140181fb6
sub r8d, 1
je 0x140181f8f
cmp r8d, 1
jne 0x140180708
movsxd rax, dword [r13 + 4]
movabs r8, 0x8000000000000000
imul rcx, rax, 0x38
mov rax, qword [rcx + r12]
cmp rax, r8
jle 0x140181f81
dec rax
mov qword [rcx + r12], rax
test rax, rax
je 0x1401817f6
jmp 0x1401810fd
movsxd rax, dword [r13 + 4]
imul rcx, rax, 0x38
mov rax, qword [rcx + r12]
test rax, rax
je 0x1401810fd
jle 0x1401817f6
dec rax
mov qword [rcx + r12], rax
jmp 0x1401817f6
xor esi, esi
cmp dword [rsp + 0x5c], esi
je 0x1401817f6
mov esi, 4
jmp 0x140180708
jge 0x140181fed
or dword [rsp + 0x5c], 0xffffffff
xor edi, edi
cmp byte [rax + rcx + 0x4d5e3c], dil
mov rdi, qword [rsp + 0x40]
jne 0x1401817f6
jmp 0x140181ef9
xor esi, esi
cmp byte [rax + rcx + 0x4d5e42], sil
mov dword [rsp + 0x5c], esi
jmp 0x140181fdd
movzx ecx, bx
or cx, di
test r11b, cl
je 0x140182099
mov ecx, 0x80
test byte [r13 + 2], cl
je 0x140182067
test r11b, al
je 0x14018204e
mov eax, 0x100
test ax, bx
jne 0x14018204e
xor ecx, ecx
mov edx, ecx
mov dword [rsp + 0x5c], ecx
movzx ecx, byte [r13]
lea rax, [0x140000000]
test edx, edx
jne 0x140182199
mov cl, byte [rax + rcx + 0x4d5e42]
jmp 0x1401821a0
movzx eax, bx
not ax
and eax, r11d
lea edx, [rax*2 - 1]
mov dword [rsp + 0x5c], edx
jmp 0x14018217c
mov rdi, qword [rsp + 0x40]
mov ecx, 0x10
mov dword [rsp + 0x5c], r11d
test byte [r13 + 2], cl
jne 0x1401817f6
mov r14, qword [rbp + 0x150]
mov rsi, rdx
mov rbx, qword [rsp + 0x38]
mov edx, 0x2400
jmp 0x140180708
mov al, byte [r13 + 2]
and al, 0x47
cmp al, 0x43
jb 0x1401820e3
test r9b, cl
je 0x140182159
mov al, dil
and al, 0x2e
cmp al, r9b
jne 0x1401820ca
xor edx, edx
mov rcx, r14
call fcn.1401800e4
movzx ebx, word [rsi + 8]
mov r9d, 2
mov al, bl
and al, 0x2e
cmp al, r9b
jne 0x140182159
xor edx, edx
mov rcx, rsi
call fcn.1401800e4
jmp 0x140182159
cmp al, 0x42
jne 0x140182159
test r9b, dil
jne 0x14018212c
test dil, 0x2c
je 0x14018212c
mov dl, byte [rbp + 0x158]
mov r8b, r11b
mov rcx, r14
call fcn.1401786e4
movzx eax, di
mov ecx, 0x3e40
xor ax, word [r14 + 8]
mov r9d, 2
and ax, cx
xor di, ax
lea r11d, [r9 - 1]
cmp r14, rsi
jne 0x14018212c
movzx ebx, di
or bx, r9w
test r9b, bl
jne 0x140182159
test bl, 0x2c
je 0x140182159
mov dl, byte [rbp + 0x158]
mov r8b, r11b
mov rcx, rsi
call fcn.1401786e4
movzx eax, bx
mov ecx, 0x3e40
xor ax, word [rsi + 8]
and ax, cx
xor bx, ax
mov r8, qword [r13 + 0x10]
mov rdx, r14
mov rcx, rsi
call fcn.14017d23c
mov r11d, 1
mov dword [rsp + 0x5c], eax
mov edx, eax
lea r9d, [r11 + 1]
lea r10d, [r11 + 7]
test edx, edx
jns 0x14018202e
movzx eax, byte [r13]
lea rcx, [0x140000000]
mov cl, byte [rax + rcx + 0x4d5e3c]
jmp 0x1401821a0
mov cl, byte [rax + rcx + 0x4d5e48]
mov word [rsi + 8], bx
mov word [r14 + 8], di
mov rdi, qword [rsp + 0x40]
test cl, cl
jne 0x1401817f6
mov r14, qword [rbp + 0x150]
mov rbx, qword [rsp + 0x38]
jmp 0x140180fef
movsxd rcx, dword [r13 + 4]
mov rax, qword [rbx + 0x20]
shl rcx, 5
mov rcx, qword [rcx + rax + 8]
call fcn.140170128
xor esi, esi
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
je 0x14018589e
cmp eax, 0x65
jne 0x14018611a
mov r15d, esi
mov dword [rsp + 0x30], esi
jmp 0x140181060
sub r8d, 0x3e
je 0x140182399
sub r8d, 1
je 0x14018233b
sub r8d, 1
je 0x140185eb8
cmp r8d, 1
jne 0x140180708
movsxd rax, dword [r13 + 0xc]
xor esi, esi
mov rbx, qword [r13 + 0x10]
imul rdi, rax, 0x38
add rdi, r12
cmp qword [rbx], rdi
je 0x14018227e
movzx eax, byte [rbx + 0x29]
mov edx, eax
mov qword [rbx + 0x18], r14
sub rdx, 1
mov qword [rbx], rdi
lea r9d, [rax - 1]
js 0x14018227e
lea r8, [rdx + 6]
lea r8, [rbx + r8*8]
mov eax, dword [r13 + 8]
add eax, r9d
sub r9d, r11d
cdqe
imul rcx, rax, 0x38
add rcx, r12
mov qword [r8], rcx
sub r8, r10
sub rdx, r11
jns 0x140182260
movzx eax, word [rdi + 8]
lea r8, [rbx + 0x30]
mov ecx, 0x3e40
and ax, cx
mov rcx, rbx
or ax, r11w
mov word [rdi + 8], ax
mov rax, qword [rbx + 8]
movzx edx, byte [rbx + 0x29]
call qword [rax + 0x18]
mov eax, dword [rbx + 0x24]
test eax, eax
je 0x1401822fa
jle 0x1401822d5
mov edx, 1
mov rcx, rdi
call fcn.14017954c
mov r8, rax
lea rdx, [0x1404cf200]
mov rcx, r14
call fcn.140179ae8
mov r15d, dword [rbx + 0x24]
mov dword [rsp + 0x30], r15d
mov r9d, dword [r13 + 4]
lea rdx, [r14 + 0x130]
mov r8d, dword [rbx + 0x20]
mov rcx, qword [rsp + 0x38]
call fcn.14017c8e4
mov dword [rbx + 0x24], esi
test r15d, r15d
jne 0x14018611a
test byte [rdi + 8], 0x12
je 0x1401858ae
mov eax, 2
test byte [rdi + 8], al
je 0x140182326
mov sil, byte [rbp + 0x158]
cmp byte [rdi + 0xa], sil
je 0x140182326
mov dl, sil
mov rcx, rdi
call fcn.14015ea04
mov rcx, rdi
call fcn.140178f10
test eax, eax
jne 0x14018670e
jmp 0x140181e01
movsxd rax, dword [r13 + 4]
mov rdx, r13
mov rcx, r12
imul rbx, rax, 0x38
call fcn.140180360
movsxd rcx, dword [rbx + r12 + 0xc]
xor edx, edx
div rcx
mov rax, qword [rbx + r12 + 0x10]
mov r11d, 1
mov rcx, rdx
shr rcx, 3
movsx r8d, byte [rcx + rax]
mov al, dl
and al, 7
movzx eax, al
bt r8d, eax
jb 0x140182388
add dword [r14 + 0xfc], r11d
jmp 0x1401817f6
add dword [r14 + 0xf8], r11d
mov rbx, qword [rsp + 0x38]
jmp 0x140180c2e
movsxd rcx, dword [r13 + 4]
xor esi, esi
mov rax, qword [r14 + 0x80]
mov rdi, qword [rax + rcx*8]
cmp byte [rdi + 2], sil
jne 0x140183993
mov rcx, qword [rdi + 0x30]
mov rbx, qword [rcx]
mov rsi, qword [rbx]
call qword [rsi + 0x48]
mov rdx, rbx
mov rcx, r14
mov r15d, eax
mov dword [rsp + 0x30], eax
call fcn.14017de68
xor ebx, ebx
test r15d, r15d
jne 0x140186770
mov rcx, qword [rdi + 0x30]
call qword [rsi + 0x50]
mov rbx, qword [rsp + 0x38]
lea r11d, [r15 + 1]
mov rdi, qword [rsp + 0x40]
test eax, eax
jne 0x14018556e
mov eax, dword [r13 + 8]
sub eax, r11d
cdqe
lea rcx, [rax + rax*2]
lea r13, [rdi + rcx*8]
mov qword [rsp + 0x48], r13
jmp 0x14018556e
cmp r8d, 0x4d
ja 0x140182719
je 0x1401826a3
cmp r8d, 0x48
ja 0x140182588
je 0x14018256e
sub r8d, 0x43
je 0x140182560
sub r8d, 1
je 0x140182532
sub r8d, 1
je 0x140182477
sub r8d, 1
je 0x14018248a
cmp r8d, 1
jne 0x140180708
mov rdx, r13
mov rcx, r14
call fcn.140180338
movsxd rcx, dword [r13 + 4]
mov qword [rax], rcx
jmp 0x1401806ec
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
test byte [rcx + r12 + 8], r11b
je 0x140180703
mov edx, dword [r13 + 4]
mov rbx, r13
sub rbx, rdi
movabs rax, 0xaaaaaaaaaaaaaaab
sar rbx, 3
xor esi, esi
imul rbx, rax
test edx, edx
jne 0x140186435
mov rdi, qword [r14 + 0x110]
test rdi, rdi
je 0x140186435
mov rax, qword [rdi + 8]
mov rbx, qword [rsp + 0x38]
mov rdx, qword [r14 + 0x40]
mov rcx, rbx
dec dword [r14 + 0x120]
mov qword [r14 + 0x110], rax
call fcn.14017dd34
mov rcx, rdi
call fcn.14017b8d0
mov esi, 4
lea r11d, [rsi - 3]
cmp dword [r13 + 8], esi
jne 0x14018250e
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r14 + 0x90]
mov eax, dword [rax + rcx*8 + 8]
sub eax, r11d
mov rdi, qword [r14 + 0x90]
mov r12, qword [r14 + 0x70]
cdqe
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x50], r12
lea rcx, [rax + rax*2]
lea r13, [rdi + rcx*8]
jmp 0x140180c2e
movsxd rax, dword [r13 + 4]
imul rdx, rax, 0x38
mov rax, qword [rdx + r12]
lea rcx, [rax + rax*2]
mov eax, dword [rdi + rcx*8 + 8]
sub eax, r11d
cdqe
lea rcx, [rax + rax*2]
mov word [rdx + r12 + 8], 0x80
lea r13, [rdi + rcx*8]
jmp 0x140180ff4
movsxd rax, dword [r13 + 4]
imul rdx, rax, 0x38
mov rax, qword [rdx + r12]
jmp 0x14018254b
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov rcx, qword [r13 + 0x10]
mov rdx, qword [rcx]
mov qword [rax], rdx
jmp 0x1401806ec
sub r8d, 0x49
je 0x14018411d
sub r8d, 1
je 0x140182627
sub r8d, 1
je 0x140182602
cmp r8d, 1
jne 0x140180708
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov rdx, qword [r13 + 0x10]
xor esi, esi
mov rbx, rax
mov rcx, rax
test rdx, rdx
jne 0x1401825e3
mov edx, dword [r13 + 4]
call fcn.140178d48
mov rcx, rbx
call fcn.140178680
test eax, eax
jne 0x140186744
jmp 0x1401825f4
movsxd r8, dword [r13 + 4]
xor r9d, r9d
mov qword [rsp + 0x20], rsi
call fcn.140179098
mov al, byte [rbp + 0x158]
mov byte [rbx + 0xa], al
jmp 0x140180e38
movsxd rax, dword [r13 + 4]
mov edx, 0xff41
imul rcx, rax, 0x38
movzx eax, word [rcx + r12 + 8]
and ax, dx
or ax, r11w
mov word [rcx + r12 + 8], ax
jmp 0x140180ff4
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov ecx, dword [r13 + 4]
mov r11d, 1
mov edi, dword [r13 + 0xc]
neg ecx
mov edx, dword [r13 + 8]
mov ecx, 0x100
sbb si, si
lea rbx, [rax + 8]
and si, cx
xor r8d, r8d
add si, r11w
mov dword [rax + 0xc], r8d
sub edi, edx
mov word [rbx], si
test edi, edi
jle 0x1401858b5
mov eax, 0x2400
lea rbx, [rbx + 0x38]
test word [rbx], ax
je 0x140182690
lea rcx, [rbx - 8]
call fcn.1401788b0
xor r8d, r8d
mov eax, 0x2400
lea r11d, [r8 + 1]
sub edi, r11d
mov word [rbx], si
mov dword [rbx + 4], r8d
test edi, edi
jg 0x140182672
jmp 0x140180f89
movsxd rax, dword [r13 + 4]
imul rdi, rax, 0x38
add rdi, qword [r14 + 0x88]
lea rcx, [rdi - 0x38]
call fcn.140178f10
test eax, eax
jne 0x14018670e
movsxd rax, dword [r13 + 8]
imul rbx, rax, 0x38
mov eax, 0x2400
add rbx, r12
test word [rbx + 8], ax
je 0x1401826e1
mov rcx, rbx
call fcn.1401788b0
movups xmm0, xmmword [rdi - 0x38]
mov ecx, 0xebff
movups xmmword [rbx], xmm0
movsd xmm1, qword [rdi - 0x28]
movsd qword [rbx + 0x10], xmm1
movzx eax, word [rbx + 8]
and ax, cx
mov ecx, 0x840
or ax, cx
mov word [rbx + 8], ax
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
jmp 0x1401806ec
cmp r8d, 0x53
ja 0x14018287d
je 0x140186521
sub r8d, 0x4e
je 0x140182825
sub r8d, 1
je 0x1401827c3
sub r8d, 1
je 0x14018279d
sub r8d, 1
je 0x140182762
cmp r8d, 1
jne 0x140180708
xor edx, edx
mov rcx, r14
call fcn.14017c310
jmp 0x140180d3e
movsxd rax, dword [r13 + 8]
imul rcx, rax, 0x38
movsxd rax, dword [r13 + 4]
imul rdx, rax, 0x38
add rcx, r12
mov rax, qword [rdx + r12]
mov edx, 0x2400
test word [rcx + 8], dx
je 0x140182791
mov rdx, rax
call fcn.140178d94
jmp 0x1401806ec
mov qword [rcx], rax
mov word [rcx + 8], si
jmp 0x140180703
movsxd rax, dword [r13 + 4]
imul rdx, rax, 0x38
movsxd rax, dword [r13 + 8]
imul rcx, rax, 0x38
add rdx, r12
add rcx, r12
mov r8d, 0x1000
call fcn.140178f78
jmp 0x1401806ec
movsxd rax, dword [r13 + 4]
mov esi, dword [r13 + 0xc]
imul rdi, rax, 0x38
movsxd rax, dword [r13 + 8]
add rdi, r12
imul rbx, rax, 0x38
add rbx, r12
mov r12d, 0x1000
mov r8d, r12d
mov rdx, rdi
mov rcx, rbx
call fcn.140178f78
test word [rbx + 8], r12w
je 0x140182808
mov rcx, rbx
call fcn.140178628
test eax, eax
jne 0x140186744
mov eax, esi
mov r11d, 1
sub esi, r11d
test eax, eax
je 0x1401858b5
add rbx, 0x38
add rdi, 0x38
jmp 0x1401827e3
movsxd rax, dword [r13 + 4]
mov esi, dword [r13 + 0xc]
imul rdi, rax, 0x38
movsxd rax, dword [r13 + 8]
imul rbx, rax, 0x38
add rdi, r12
add rbx, r12
mov rdx, rdi
mov rcx, rbx
call fcn.14017903c
mov eax, 0x1000
test word [rbx + 8], ax
je 0x140182865
mov rcx, rbx
call fcn.140178628
test eax, eax
jne 0x140186744
add rdi, 0x38
add rbx, 0x38
mov r11d, 1
sub esi, r11d
jne 0x14018283f
jmp 0x140180f89
sub r8d, 0x54
je 0x14018292b
sub r8d, 1
je 0x14018290c
sub r8d, 1
je 0x1401828ed
cmp r8d, 1
jne 0x140180708
movsxd rax, dword [r13 + 4]
imul rbx, rax, 0x38
mov eax, 0x4000
add rbx, r12
test word [rbx + 8], ax
je 0x1401828c6
mov rcx, rbx
call fcn.140178680
mov r15d, eax
test eax, eax
jne 0x14018611a
mov r8b, byte [rbp + 0x158]
mov rcx, rbx
mov dl, byte [r13 + 8]
call fcn.140178bfc
mov r15d, eax
mov dword [rsp + 0x30], eax
test eax, eax
jne 0x14018611a
jmp 0x140180e38
movsxd rax, dword [r13 + 4]
imul rcx, rax, 0x38
add rcx, r12
test byte [rcx + 8], 0x24
je 0x140180703
call fcn.140178af8
jmp 0x1401806ec
movsxd rax, dword [r13 + 4]
imul rbx, rax, 0x38
add rbx, r12
mov rcx, rbx
call fcn.140178ac8
movsxd rax, dword [r13 + 8]
add qword [rbx], rax
jmp 0x14018125f
xor esi, esi
cmp dword [r13 + 4], esi
je 0x140181fc2
movsxd rax, dword [r13 + 4]
imul rcx, rax, 0x38
add rcx, r12
test word [rcx + 8], dx
je 0x140182954
xor edx, edx
call fcn.140178d94
jmp 0x1401806e7
mov qword [rcx], rsi
mov esi, 4
jmp 0x140182794
test byte [r13 + 2], r11b
jne 0x14018296d
xor eax, eax
mov edi, eax
jmp 0x140182976
mov rdi, qword [r13 - 8]
add rdi, rsi
xor eax, eax
mov rsi, qword [rsp + 0x48]
mov r14d, eax
mov r13, qword [r13 + 0x10]
mov rbx, rax
movsxd rax, dword [rsi + 0xc]
mov r8d, dword [rsi + 4]
mov ecx, dword [rsi + 8]
mov dword [rbp + 0x160], r8d
mov dword [rbp - 0x28], ecx
mov qword [rbp - 0x20], rax
test rax, rax
jle 0x1401860aa
lea r15, [r13 + 0x20]
test rdi, rdi
je 0x1401829b5
mov edx, dword [rdi + rbx*4]
jmp 0x1401829b8
mov edx, r14d
mov rax, qword [r13 + 0x18]
add ecx, edx
movzx eax, byte [rbx + rax]
and eax, r11d
mov dword [rsp + 0x70], eax
imul rax, rcx, 0x38
lea ecx, [rdx + r8]
mov r8, qword [r15]
imul rsi, rcx, 0x38
add r12, rax
add rsi, qword [rsp + 0x50]
mov rdx, r12
mov rcx, rsi
call fcn.14017d23c
mov dword [rsp + 0x5c], eax
mov edx, eax
mov r11d, 1
test eax, eax
jne 0x140182a4b
mov r8d, dword [rbp + 0x160]
lea r10d, [rax + 8]
mov ecx, dword [rbp - 0x28]
add r15, r10
mov r12, qword [rsp + 0x50]
add r14d, r11d
add rbx, r11
cmp rbx, qword [rbp - 0x20]
jl 0x1401829ab
mov r13, qword [rsp + 0x48]
lea esi, [rax + 4]
mov r15d, dword [rsp + 0x30]
mov r14, qword [rbp + 0x150]
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov edx, 0x2400
mov r9d, 2
jmp 0x140180703
mov rax, qword [r13 + 0x18]
mov ecx, 2
test byte [rbx + rax], cl
je 0x140182a6c
test byte [rsi + 8], r11b
jne 0x140182a66
test byte [r12 + 8], r11b
je 0x140182a6c
neg edx
mov dword [rsp + 0x5c], edx
mov r15d, dword [rsp + 0x30]
xor r14d, r14d
mov rbx, qword [rsp + 0x38]
lea esi, [r14 + 4]
cmp dword [rsp + 0x70], r14d
je 0x140182a8a
neg edx
mov dword [rsp + 0x5c], edx
mov r13, qword [rsp + 0x48]
jmp 0x140181401
mov eax, 0x88
cmp r8d, eax
ja 0x140184cb1
je 0x140184c39
cmp r8d, 0x71
ja 0x140183fcf
je 0x140183f2b
cmp r8d, 0x66
ja 0x140183870
je 0x14018394f
cmp r8d, 0x60
ja 0x14018365f
je 0x1401832b2
sub r8d, 0x5a
je 0x140183287
sub r8d, 1
je 0x14018323d
sub r8d, r9d
je 0x140182cf0
sub r8d, 1
je 0x140182b9d
cmp r8d, 1
jne 0x140180708
movsxd rax, dword [r13 + 4]
mov rdi, qword [r13 + 0x10]
mov sil, byte [rbp + 0x158]
imul rbx, rax, 0x38
mov al, byte [rdi]
add rbx, r12
mov r8b, sil
mov dl, al
mov rcx, rbx
call fcn.1401801b8
cmp byte [rdi], 0x45
jne 0x140182b84
movzx ecx, word [rbx + 8]
mov eax, 4
test al, cl
je 0x140182b84
mov rdx, qword [rbx]
movabs rax, 0x800000000000
add rax, rdx
movabs r8, 0xffffffffffff
cmp rax, r8
mov eax, 0xfffb
ja 0x140182b6d
and cx, ax
or cx, 0x20
jmp 0x140182b80
xorps xmm0, xmm0
and cx, ax
cvtsi2sd xmm0, rdx
or cx, 8
movsd qword [rbx], xmm0
mov word [rbx + 8], cx
mov r11d, 1
add rdi, r11
mov al, byte [rdi]
test al, al
je 0x1401858b5
add rbx, 0x38
jmp 0x140182b21
mov r15, qword [r13 + 0x10]
xor ebx, ebx
movsxd rax, dword [r13 + 4]
xor r8d, r8d
imul rsi, rax, 0x38
mov r14, qword [r15 + 8]
add rsi, r12
cmp r8w, word [r15 + 0x36]
jge 0x1401860bb
lea rdi, [r14 + 0xc]
test byte [rdi + 6], 0x60
je 0x140182be7
mov eax, 0x20
test byte [rdi + 6], al
jne 0x140182cb7
cmp dword [r13 + 0xc], r8d
je 0x140182be7
add rsi, 0x38
jmp 0x140182cb7
mov r8b, byte [rbp + 0x158]
mov rcx, rsi
mov dl, byte [rdi]
call fcn.1401801b8
movzx ecx, word [rsi + 8]
mov r11d, 1
lea r9d, [r11 + 1]
test r11b, cl
jne 0x140182cb0
mov eax, dword [rdi - 4]
shr eax, 4
and eax, 0xf
sub eax, r9d
je 0x140182ca7
sub eax, r11d
je 0x140182c9e
sub eax, r11d
je 0x140182c9e
sub eax, r11d
je 0x140182c3a
cmp eax, r11d
jne 0x140182cb0
test r9b, cl
jmp 0x140182caa
mov eax, 4
test al, cl
je 0x140182c99
mov rdx, qword [rsi]
movabs rax, 0x800000000000
add rax, rdx
movabs r8, 0xffffffffffff
cmp rax, r8
mov rax, rsi
ja 0x140182c70
mov edx, 8
or cx, 0x20
jmp 0x140182c89
mov r8d, 8
xorps xmm0, xmm0
cvtsi2sd xmm0, rdx
mov edx, r8d
or cx, r8w
movsd qword [rsi], xmm0
mov r8d, 0xfffb
and cx, r8w
mov word [rdx + rax], cx
jmp 0x140182cb0
test cl, 0x28
jmp 0x140182caa
mov eax, 4
test al, cl
jmp 0x140182caa
test cl, 0x10
je 0x14018660d
add rsi, 0x38
xor r8d, r8d
movsx eax, word [r15 + 0x36]
add ebx, r11d
add rdi, 0x18
cmp ebx, eax
jl 0x140182bc4
mov rbx, qword [rsp + 0x38]
mov esi, 4
mov r14, qword [rbp + 0x150]
mov edx, 0x2400
mov r15d, dword [rsp + 0x30]
mov rdi, qword [rsp + 0x40]
jmp 0x1401806fd
movsxd rcx, dword [r13 + 4]
lea rdx, [rsp + 0x6c]
mov rax, qword [r14 + 0x80]
mov rcx, qword [rax + rcx*8]
mov qword [rsp + 0x60], rcx
lea rcx, [rsp + 0x60]
mov eax, dword [r13 + 8]
mov dword [rsp + 0x6c], eax
call fcn.14017cb78
xor esi, esi
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
movsxd rax, dword [r13 + 0xc]
mov r9, qword [rsp + 0x60]
imul r13, rax, 0x38
mov r15, qword [r9 + 0x58]
mov eax, dword [r14 + 0x30]
add r13, r12
mov qword [rbp - 0x20], r13
mov qword [rbp + 0x160], r15
cmp dword [r9 + 0x20], eax
je 0x140182e90
cmp byte [r9 + 2], sil
je 0x140182daa
cmp byte [r9], 3
jne 0x140182d93
movsxd rax, dword [r9 + 0x24]
imul rdx, rax, 0x38
mov ecx, dword [rdx + r12 + 0xc]
mov dword [r9 + 0x6c], ecx
mov rax, qword [rsp + 0x60]
mov dword [rax + 0x68], ecx
mov rcx, qword [rdx + r12 + 0x10]
mov rax, qword [rsp + 0x60]
mov qword [rax + 0x60], rcx
mov rcx, qword [rsp + 0x60]
jmp 0x140182df1
mov rcx, r13
call fcn.140178d30
mov r13, qword [rsp + 0x48]
mov r15d, dword [rsp + 0x30]
jmp 0x1401806e7
mov rbx, qword [r9 + 0x30]
mov rcx, rbx
call fcn.140170cf0
mov rdx, qword [rsp + 0x60]
mov rcx, rbx
mov dword [rdx + 0x68], eax
mov rdx, qword [rsp + 0x60]
add rdx, 0x6c
call fcn.1401711e4
mov rcx, qword [rsp + 0x60]
mov qword [rcx + 0x60], rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x60]
mov eax, dword [rax + 0x88]
cmp dword [rcx + 0x68], eax
ja 0x14018670e
mov eax, dword [r14 + 0x30]
mov dword [rcx + 0x20], eax
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax + 0x60]
mov eax, 0x80
cmp byte [rcx], al
jae 0x140182e17
movzx eax, byte [rcx]
mov dword [r15], eax
mov eax, 1
jmp 0x140182e1f
mov rdx, r15
call fcn.14015fef4
movzx ecx, al
mov rax, qword [rsp + 0x60]
mov dword [rax + 0x40], ecx
mov rax, qword [rsp + 0x60]
mov word [rax + 0x4a], si
mov r9, qword [rsp + 0x60]
mov eax, dword [r15]
cmp dword [r9 + 0x6c], eax
jae 0x140182e8a
mov qword [r9 + 0x60], rsi
mov rax, qword [rsp + 0x60]
mov dword [rax + 0x6c], esi
mov eax, dword [r15]
cmp eax, 0x18003
ja 0x140182e62
mov r9, qword [rsp + 0x60]
cmp eax, dword [r9 + 0x68]
jbe 0x140182e90
mov r11d, 1
mov eax, dword [rdi + 0xc]
test eax, eax
jle 0x14018666e
mov r15d, dword [rsp + 0x30]
dec eax
movsxd rcx, eax
lea rax, [rcx + rcx*2]
lea r13, [rdi + rax*8]
jmp 0x140180d09
mov r12, qword [r9 + 0x60]
jmp 0x140182f05
movzx eax, word [r9 + 0x4a]
mov r8d, dword [rsp + 0x6c]
cmp eax, r8d
ja 0x1401830a1
mov eax, dword [r15]
cmp dword [r9 + 0x40], eax
jae 0x14018305e
mov r12, qword [r9 + 0x60]
test r12, r12
jne 0x140182f05
xorps xmm0, xmm0
lea r8, [rbp + 0xa8]
movups xmmword [rbp + 0xa8], xmm0
xor eax, eax
movups xmmword [rbp + 0xb8], xmm0
mov qword [rbp + 0xd8], rax
movups xmmword [rbp + 0xc8], xmm0
mov edx, dword [r15]
mov rcx, qword [r9 + 0x30]
call fcn.140179440
mov dword [rsp + 0x30], eax
test eax, eax
jne 0x1401809be
mov r12, qword [rbp + 0xb8]
mov r9, qword [rsp + 0x60]
movzx r14d, word [r9 + 0x4a]
mov r11d, 1
mov ebx, dword [r9 + 0x40]
mov edi, r14d
add rbx, r12
mov esi, dword [r15 + r14*4]
lea r13d, [r11 + 0x7f]
mov r15d, dword [r15]
add r15, r12
movzx eax, byte [rbx]
mov dword [rsp + 0x58], eax
mov dword [r9 + rdi*4 + 0x70], eax
mov ecx, dword [rsp + 0x58]
cmp ecx, r13d
jae 0x140182f4a
add rbx, r11
call fcn.14017cbe4
movzx eax, al
jmp 0x140182f75
lea rdx, [rsp + 0x58]
mov rcx, rbx
call fcn.14015fef4
mov rcx, qword [rsp + 0x60]
movzx eax, al
add rbx, rax
mov eax, dword [rsp + 0x58]
mov dword [rcx + rdi*4 + 0x70], eax
mov ecx, dword [rsp + 0x58]
call fcn.14017cbc8
mov eax, eax
mov rdx, qword [rbp + 0x160]
add rsi, rax
mov r11d, 1
add r14d, r11d
movsxd rdi, r14d
mov dword [rdx + rdi*4], esi
cmp r14d, dword [rsp + 0x6c]
ja 0x140182fa1
cmp rbx, r15
jae 0x140182fa1
mov r9, qword [rsp + 0x60]
jmp 0x140182f28
mov rcx, qword [rsp + 0x60]
mov r13, qword [rbp - 0x20]
cmp rbx, r15
jb 0x140182fb9
ja 0x140182fc1
mov eax, dword [rcx + 0x68]
cmp rsi, rax
jne 0x140182fc1
mov eax, dword [rcx + 0x68]
cmp rsi, rax
jbe 0x14018300d
xor esi, esi
cmp dword [rdx], esi
jne 0x140182fcf
mov r14d, esi
mov rbx, r15
jmp 0x14018300f
cmp qword [rcx + 0x60], rsi
jne 0x140182ff7
lea rcx, [rbp + 0xa8]
call fcn.140178928
mov r14, qword [rbp + 0x150]
mov r12, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
jmp 0x140182e62
mov r14, qword [rbp + 0x150]
mov r12, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
jmp 0x140182e68
xor esi, esi
mov word [rcx + 0x4a], r14w
sub ebx, r12d
mov rax, qword [rsp + 0x60]
mov dword [rax + 0x40], ebx
mov r9, qword [rsp + 0x60]
cmp qword [r9 + 0x60], rsi
jne 0x14018303b
lea rcx, [rbp + 0xa8]
call fcn.140178928
mov r9, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x6c]
mov edx, dword [rsp + 0x58]
mov r15, qword [rbp + 0x160]
mov r14, qword [rbp + 0x150]
mov r12, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
jmp 0x140183064
mov edx, esi
mov dword [rsp + 0x58], edx
movzx eax, word [r9 + 0x4a]
cmp eax, r8d
ja 0x1401830aa
mov rsi, qword [rsp + 0x48]
mov rcx, r13
cmp byte [rsi + 1], 0xf5
jne 0x14018309a
mov rdx, qword [rsi + 0x10]
mov r8d, 0x800
call fcn.140178f78
mov r13, qword [rsp + 0x48]
mov r15d, dword [rsp + 0x30]
jmp 0x140180e38
call fcn.140178d30
jmp 0x14018308b
mov edx, dword [r9 + r8*4 + 0x70]
mov dword [rsp + 0x58], edx
mov eax, 0x2400
test word [r13 + 8], ax
je 0x1401830cc
mov rcx, r13
call fcn.140178d30
mov r9, qword [rsp + 0x60]
mov r8d, dword [rsp + 0x6c]
mov edx, dword [rsp + 0x58]
lea eax, [r8 + 1]
mov eax, dword [r15 + rax*4]
cmp dword [r9 + 0x6c], eax
jb 0x140183198
mov eax, r8d
mov edi, dword [r15 + rax*4]
add rdi, qword [r9 + 0x60]
cmp edx, 0xc
jae 0x140183108
mov r8, r13
mov rcx, rdi
call fcn.14017cc54
mov r13, qword [rsp + 0x48]
mov r15d, dword [rsp + 0x30]
jmp 0x140181e01
mov al, byte [rbp + 0x158]
lea ebx, [rdx - 0xc]
shr ebx, 1
mov dword [r13 + 0xc], ebx
mov byte [r13 + 0xa], al
lea edx, [rbx + 2]
cmp dword [r13 + 0x20], edx
jge 0x140183140
xor r8d, r8d
mov word [r13 + 8], 1
mov rcx, r13
call fcn.14017845c
test eax, eax
jne 0x140186744
jmp 0x140183148
mov rax, qword [r13 + 0x18]
mov qword [r13 + 0x10], rax
mov rcx, qword [r13 + 0x10]
mov r8, rbx
mov rdx, rdi
call fcn.1404084f0
mov rax, qword [r13 + 0x10]
lea rcx, [0x140000000]
mov r15d, dword [rsp + 0x30]
mov r11d, 1
mov byte [rbx + rax], sil
mov rax, qword [r13 + 0x10]
mov byte [rbx + rax + 1], sil
mov eax, dword [rsp + 0x58]
and rax, r11
movzx eax, word [rcx + rax*2 + 0x4d8de8]
mov word [r13 + 8], ax
mov r13, qword [rsp + 0x48]
jmp 0x140180f89
mov rsi, qword [rsp + 0x48]
mov al, byte [rbp + 0x158]
mov byte [r13 + 0xa], al
mov edx, dword [rsp + 0x58]
test byte [rsi + 2], 0xc0
je 0x1401831c9
cmp edx, 0xc
jb 0x1401831bf
mov eax, 1
test al, dl
je 0x1401831d8
mov eax, 0x80
test byte [rsi + 2], al
jne 0x1401831d8
mov ecx, edx
call fcn.14017cbc8
test eax, eax
jne 0x1401831ec
mov edx, dword [rsp + 0x58]
mov r8, r13
lea rcx, [0x1404d4c80]
call fcn.14017cc54
jmp 0x14018308b
mov edx, dword [rsp + 0x6c]
mov r9, r13
mov rcx, qword [rsp + 0x60]
mov r8d, eax
mov edx, dword [r15 + rdx*4]
mov rcx, qword [rcx + 0x30]
call fcn.140179368
xor ebx, ebx
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x140186794
mov edx, dword [rsp + 0x58]
mov r8, r13
mov rcx, qword [r13 + 0x10]
call fcn.14017cc54
mov ecx, 0xefff
and word [r13 + 8], cx
mov r13, qword [rsp + 0x48]
jmp 0x140180e38
movsxd rax, dword [r13 + 4]
imul rcx, rax, 0x38
test byte [rcx + r12 + 8], r11b
jne 0x140183272
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
test byte [rcx + r12 + 8], r11b
jne 0x140183272
movsxd rax, dword [r13 + 8]
imul rcx, rax, 0x38
add rcx, r12
xor edx, edx
call fcn.140178dc8
jmp 0x1401806ec
movsxd rax, dword [r13 + 8]
imul rcx, rax, 0x38
add rcx, r12
call fcn.140178d30
jmp 0x1401806ec
movsxd rax, dword [r13 + 4]
mov edx, dword [r13 + 0xc]
imul rcx, rax, 0x38
add rcx, r12
call fcn.140178a34
movsxd rdx, dword [r13 + 0x10]
movsxd rcx, eax
movsxd rax, dword [r13 + 8]
xor rdx, rcx
imul rcx, rax, 0x38
add rcx, r12
jmp 0x140183268
movsxd rax, dword [r13 + 4]
xor r10d, r10d
mov rdi, qword [r13 + 0x10]
mov r12d, r10d
mov rdx, qword [rsp + 0x50]
mov r15d, r10d
imul rcx, rax, 0x38
mov eax, dword [r13 + 8]
sub eax, r11d
mov dword [rsp + 0x70], r10d
cdqe
add rcx, rdx
imul rsi, rax, 0x38
mov rax, qword [rbp + 0x150]
add rsi, rcx
mov qword [rbp + 0x20], r10
mov qword [rbp - 0x28], rcx
mov qword [rbp - 0x20], rsi
mov r9b, byte [rax + 0xcb]
movsxd rax, dword [r13 + 0xc]
imul r13, rax, 0x38
mov byte [rbp + 0x160], r9b
add r13, rdx
mov qword [rbp + 0x88], r13
test rdi, rdi
je 0x14018338e
mov sil, byte [rbp + 0x158]
lea rbx, [rcx + 8]
lea r13d, [r10 + 4]
mov r12d, 0xfffb
lea r15d, [r10 + 0x20]
mov dl, byte [rdi]
lea rcx, [rbx - 8]
mov r8b, sil
call fcn.1401801b8
cmp byte [rdi], 0x45
jne 0x14018335b
movzx eax, word [rbx]
test r13b, al
je 0x14018335b
and ax, r12w
or ax, r15w
mov word [rbx], ax
mov r11d, 1
add rbx, 0x38
add rdi, r11
xor r10d, r10d
cmp byte [rdi], r10b
jne 0x140183335
mov r15d, dword [rsp + 0x70]
mov r12d, r10d
mov r13, qword [rbp + 0x88]
mov r9b, byte [rbp + 0x160]
mov rcx, qword [rbp - 0x28]
mov rsi, qword [rbp - 0x20]
add rsi, 0x24
movzx edx, word [rsi - 0x1c]
test r11b, dl
je 0x1401833b3
add r15d, r11d
mov eax, 0x4000
and dx, ax
neg dx
sbb ebx, ebx
and ebx, 0xa
jmp 0x14018350b
test dl, 0x24
je 0x14018348f
mov r8, qword [rsi - 0x24]
mov rcx, r8
test r8, r8
jns 0x1401833cb
not rcx
add r15d, r11d
cmp rcx, 0x7f
ja 0x1401833fc
mov rax, r8
and rax, r11
cmp rax, r8
jne 0x1401833f1
mov eax, 4
cmp r9b, al
jb 0x1401833f1
lea ebx, [rcx + 8]
jmp 0x140183507
add r12, r11
mov ebx, r11d
jmp 0x140183507
cmp rcx, 0x7fff
ja 0x140183414
mov eax, 2
add r12, rax
mov ebx, eax
jmp 0x140183507
cmp rcx, 0x7fffff
ja 0x14018342b
add r12, 3
mov ebx, 3
jmp 0x140183507
cmp rcx, 0x7fffffff
ja 0x14018343b
mov eax, 4
jmp 0x14018340a
movabs rax, 0x7fffffffffff
cmp rcx, rax
ja 0x140183458
add r12, 6
mov ebx, 5
jmp 0x140183507
mov ecx, 8
add r12, rcx
lea eax, [rcx + 0x18]
test al, dl
je 0x140183488
xorps xmm0, xmm0
lea ebx, [rcx - 1]
cvtsi2sd xmm0, r8
mov eax, 0xffdf
and dx, ax
or dx, cx
mov word [rsi - 0x1c], dx
movsd qword [rsi - 0x24], xmm0
jmp 0x140183507
mov ebx, 6
jmp 0x140183507
mov eax, 8
test al, dl
je 0x1401834a3
add r15d, r11d
lea ebx, [rax - 1]
add r12, rax
jmp 0x14018350b
mov r14d, dword [rsi - 0x18]
mov eax, edx
shr eax, 1
and eax, r11d
bt dx, 0xe
lea ebx, [r14 + 6]
lea ebx, [rax + rbx*2]
jae 0x1401834eb
lea rdi, [rsi - 0x24]
movsxd rax, dword [rdi]
lea ebx, [rbx + rax*2]
test r12, r12
je 0x1401834e7
mov rcx, rdi
call fcn.140178680
xor r10d, r10d
test eax, eax
jne 0x14018673d
add r14d, dword [rdi]
lea r11d, [r10 + 1]
jmp 0x1401834eb
add qword [rbp + 0x20], rax
mov eax, r14d
mov ecx, r11d
add r12, rax
mov eax, ebx
jmp 0x1401834fb
add ecx, r11d
shr rax, 7
test rax, rax
jne 0x1401834f8
add r15d, ecx
mov rcx, qword [rbp - 0x28]
mov rax, rsi
mov dword [rax], ebx
lea rax, [rsi - 0x24]
cmp rax, rcx
je 0x140183529
mov r9b, byte [rbp + 0x160]
sub rsi, 0x38
jmp 0x140183392
cmp r15d, 0x7e
jle 0x14018355e
mov edx, r11d
movsxd rax, r15d
jmp 0x14018353a
add edx, r11d
shr rax, 7
test rax, rax
jne 0x140183537
add r15d, edx
mov ecx, r11d
movsxd rax, r15d
jmp 0x140183551
add ecx, r11d
shr rax, 7
test rax, rax
jne 0x14018354e
cmp edx, ecx
jge 0x140183561
add r15d, r11d
mov r14, qword [rbp + 0x20]
movsxd rax, dword [r13 + 0x20]
movsxd rdi, r15d
lea rbx, [r12 + rdi]
lea rcx, [r14 + rbx]
cmp rcx, rax
jg 0x140183583
mov rax, qword [r13 + 0x18]
mov qword [r13 + 0x10], rax
jmp 0x1401835ae
mov rax, qword [rsp + 0x38]
movsxd rax, dword [rax + 0x88]
cmp rcx, rax
jg 0x140186707
mov edx, ebx
mov rcx, r13
call fcn.1401785ac
test eax, eax
jne 0x14018673d
lea r11d, [rax + 1]
mov dword [r13 + 0xc], ebx
mov word [r13 + 8], 0x10
test r14, r14
je 0x1401835c9
mov dword [r13], r14d
mov word [r13 + 8], 0x4010
mov rbx, qword [r13 + 0x10]
mov ecx, 0x80
lea rsi, [rdi + rbx]
cmp r15d, ecx
jae 0x1401835e3
mov byte [rbx], r15b
mov eax, r11d
jmp 0x1401835f7
movsxd rdx, r15d
mov rcx, rbx
call fcn.14015fd04
mov ecx, 0x80
lea r11d, [rcx - 0x7f]
mov r14, qword [rbp - 0x28]
mov r15, qword [rbp - 0x20]
movzx eax, al
add rbx, rax
mov edi, dword [r14 + 0x24]
cmp edi, ecx
jae 0x140183615
mov byte [rbx], dil
mov eax, r11d
jmp 0x140183620
mov rdx, rdi
mov rcx, rbx
call fcn.14015fd04
movzx eax, al
mov r8d, edi
mov rdx, r14
mov rcx, rsi
add rbx, rax
call fcn.14017cbf4
mov eax, eax
mov ecx, 0x80
add rsi, rax
add r14, 0x38
lea r11d, [rcx - 0x7f]
cmp r14, r15
jbe 0x140183605
mov r13, qword [rsp + 0x48]
mov r15d, dword [rsp + 0x30]
mov r12, qword [rsp + 0x50]
jmp 0x140180f82
sub r8d, 0x61
je 0x14018380b
sub r8d, 1
je 0x1401837d9
sub r8d, 1
je 0x14018372f
sub r8d, 1
je 0x1401836fa
cmp r8d, 1
jne 0x140180708
xor esi, esi
mov eax, dword [r14 + 0xd0]
and al, 3
cmp al, r11b
je 0x140186680
movsxd r12, dword [r13 + 0xc]
xor ecx, ecx
mov rdx, qword [rsp + 0x48]
mov rax, r12
mov r15d, dword [r13 + 8]
mov r14d, ecx
shl rax, 5
add rax, qword [rbx + 0x20]
cmp byte [rdx], 0x70
mov r13, qword [rax + 8]
jne 0x140183a98
mov rax, qword [rax + 0x18]
movzx edi, word [rdx + 2]
and edi, r10d
or edi, 4
mov cl, byte [rax + 0x70]
mov rax, qword [rbp + 0x150]
cmp cl, byte [rax + 0xcb]
jae 0x140183a9a
mov byte [rax + 0xcb], cl
jmp 0x140183a9a
movsxd rcx, dword [r13 + 4]
xor esi, esi
mov rax, qword [r14 + 0x80]
mov rbx, qword [rax + rcx*8]
test rbx, rbx
je 0x140183a8e
mov eax, dword [r13 + 8]
cmp dword [rbx + 0x44], eax
jne 0x140183a8e
mov rcx, qword [rbx + 0x30]
call fcn.14016d090
jmp 0x140183b51
mov rax, qword [rsp + 0x38]
movsxd rbx, dword [r13 + 4]
mov r8d, dword [r13 + 0xc]
mov edx, dword [r13 + 8]
shl rbx, 5
add rbx, qword [rax + 0x20]
mov rcx, qword [rbx + 8]
call fcn.14017665c
mov r11d, 1
mov dword [rsp + 0x30], eax
mov r15d, eax
cmp dword [r13 + 8], r11d
jne 0x140183792
movzx eax, word [r13 + 2]
mov ecx, dword [r13 + 0xc]
sub ecx, eax
mov rax, qword [rbx + 0x18]
mov rbx, qword [rsp + 0x38]
mov dword [rax], ecx
mov rcx, rbx
or dword [rbx + 0x2c], r11d
mov edx, dword [r13 + 4]
call fcn.1401a6184
mov r11d, 1
jmp 0x1401837ad
mov eax, 2
cmp dword [r13 + 8], eax
jne 0x1401837a8
mov rcx, qword [rbx + 0x18]
mov al, byte [r13 + 0xc]
mov byte [rcx + 0x70], al
mov rbx, qword [rsp + 0x38]
cmp dword [r13 + 4], r11d
jne 0x1401837cb
xor edx, edx
mov rcx, rbx
call fcn.14017dd40
and dword [r14 + 0xd0], 0xfffffffc
mov r11d, 1
test r15d, r15d
jne 0x14018611a
jmp 0x140180c29
movsxd rax, dword [r13 + 4]
lea r8, [rbp + 0x10]
mov rcx, qword [rbx + 0x20]
mov edx, dword [r13 + 0xc]
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.1401765cc
mov rdx, r13
mov rcx, r14
call fcn.140180338
movsxd rcx, dword [rbp + 0x10]
jmp 0x14018246f
movsxd rcx, dword [r13 + 4]
xor esi, esi
mov rax, qword [r14 + 0x80]
mov rcx, qword [rax + rcx*8]
mov rdx, qword [rcx + 0x30]
cmp dword [r13 + 0xc], esi
je 0x140183834
mov rcx, rdx
call fcn.140171a84
mov qword [rbp + 0x28], rax
jmp 0x140183853
lea r8, [rbp + 0x28]
mov qword [rbp + 0x28], rsi
mov rcx, rbx
call fcn.1401766fc
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov rcx, qword [rbp + 0x28]
mov r11d, 1
mov qword [rax], rcx
jmp 0x14018556e
cmp r8d, 0x6c
ja 0x140183a61
je 0x1401838aa
sub r8d, 0x67
je 0x14018394f
sub r8d, 1
je 0x14018394f
sub r8d, 1
je 0x14018394f
sub r8d, 1
je 0x1401838aa
cmp r8d, 1
jne 0x140180708
movsxd rax, dword [r13 + 4]
imul rdi, rax, 0x38
add rdi, r12
mov rcx, rdi
call fcn.1401802f8
movsxd rcx, dword [r13 + 8]
movzx ebx, ax
imul rsi, rcx, 0x38
add rsi, r12
mov rcx, rsi
call fcn.1401802f8
movsxd rcx, dword [r13 + 0xc]
and al, bl
imul r14, rcx, 0x38
movzx ecx, word [rsi + 8]
mov edx, 4
or cx, word [rdi + 8]
add r14, r12
test dl, al
je 0x140183e02
movzx ecx, byte [r13]
mov rdx, qword [rsi]
mov r8, qword [rdi]
mov qword [rbp - 0x70], rdx
sub ecx, 0x6a
je 0x140183da0
sub ecx, 1
je 0x140183d8e
sub ecx, 1
je 0x140183d80
cmp ecx, 1
je 0x140183d54
test r8, r8
je 0x140183eef
cmp r8, 0xffffffffffffffff
mov eax, 1
cmove r8, rax
mov rax, rdx
cqo
idiv r8
mov qword [rbp - 0x70], rdx
jmp 0x140183de1
movsxd rax, dword [r13 + 4]
imul rdi, rax, 0x38
movsxd rax, dword [r13 + 8]
imul rcx, rax, 0x38
movsxd rax, dword [r13 + 0xc]
add rdi, r12
imul rsi, rax, 0x38
add rcx, r12
add rsi, r12
mov al, byte [rcx + 8]
or al, byte [rdi + 8]
test r11b, al
je 0x14018399d
test word [rsi + 8], dx
je 0x14018398e
mov rcx, rsi
call fcn.1401788b0
jmp 0x1401807eb
mov word [rsi + 8], r11w
mov rdi, qword [rsp + 0x40]
jmp 0x1401810fd
call fcn.1401789ac
mov rcx, rdi
mov rbx, rax
call fcn.1401789ac
mov r8b, byte [r13]
mov rdx, rax
cmp r8b, 0x66
jne 0x1401839c2
and rbx, rax
jmp 0x140183a45
cmp r8b, 0x67
jne 0x1401839cd
or rbx, rdx
jmp 0x140183a45
xor eax, eax
test rdx, rdx
je 0x140183a45
jns 0x1401839f9
mov rcx, rdx
mov eax, 0xd1
sub al, r8b
neg rcx
mov r8b, al
mov rax, rdx
cmp rax, 0xffffffffffffffc0
mov edx, 0x40
cmovg rdx, rcx
xor eax, eax
cmp rdx, 0x40
jl 0x140183a15
test rbx, rbx
jns 0x140183a10
cmp r8b, 0x68
je 0x140183a10
or rbx, 0xffffffffffffffff
jmp 0x140183a45
mov rbx, rax
jmp 0x140183a45
mov rcx, rdx
cmp r8b, 0x68
jne 0x140183a26
shl rbx, cl
mov r8, rbx
jmp 0x140183a42
mov r8, rbx
shr r8, cl
test rbx, rbx
jns 0x140183a42
or rax, 0xffffffffffffffff
mov ecx, 0x40
sub cl, dl
shl rax, cl
or r8, rax
mov rbx, r8
movzx eax, word [rsi + 8]
mov ecx, 0x3e40
and ax, cx
mov qword [rsi], rbx
or ax, 4
mov word [rsi + 8], ax
jmp 0x140181e01
sub r8d, 0x6d
je 0x1401838aa
sub r8d, 1
je 0x1401838aa
sub r8d, 1
je 0x140183b67
cmp r8d, 1
jne 0x140180708
jmp 0x14018368d
mov rbx, qword [rsp + 0x38]
jmp 0x14018368f
mov edi, ecx
mov eax, 0x10
test byte [rdx + 2], al
je 0x140183abd
imul rbx, r15, 0x38
add rbx, qword [rsp + 0x50]
mov rcx, rbx
call fcn.140178ac8
mov rdx, qword [rsp + 0x48]
mov r15d, dword [rbx]
mov al, byte [rdx + 1]
cmp al, 0xf7
jne 0x140183acf
mov r14, qword [rdx + 0x10]
movzx esi, word [r14 + 8]
jmp 0x140183ad6
cmp al, 0xfd
jne 0x140183ad6
mov esi, dword [rdx + 0x10]
mov edx, dword [rdx + 4]
xor r9d, r9d
mov rcx, qword [rbp + 0x150]
mov r8d, esi
call fcn.14017ffb4
mov rbx, rax
test rax, rax
je 0x14018673d
mov r9, qword [rbx + 0x30]
mov r8d, edi
mov byte [rax + 1], r12b
mov edx, r15d
mov byte [rax + 2], 1
mov rcx, r13
mov qword [rsp + 0x20], r9
mov eax, 4
or dword [rbx + 8], eax
mov r9, r14
mov dword [rbx + 0x44], r15d
call fcn.140170b28
mov r13, qword [rsp + 0x48]
mov r15d, eax
mov r12, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x40]
mov qword [rbx + 0x38], r14
cmp byte [r13 + 1], 0xf7
mov r14, qword [rbp + 0x150]
mov dword [rsp + 0x30], eax
setne al
mov byte [rbx + 4], al
mov cl, byte [r13 + 2]
mov rax, qword [rbx + 0x30]
and cl, 3
mov byte [rax + 3], cl
test r15d, r15d
jmp 0x1401828e2
movsxd rax, dword [r13 + 4]
imul r15, rax, 0x38
movsxd rax, dword [r13 + 8]
imul rbx, rax, 0x38
movsxd rax, dword [r13 + 0xc]
add r15, r12
imul rdi, rax, 0x38
movzx r14d, word [r15 + 8]
add rbx, r12
mov al, r14b
add rdi, r12
or al, byte [rbx + 8]
test r11b, al
je 0x140183bd7
test word [rdi + 8], dx
je 0x140183bb7
mov rcx, rdi
call fcn.1401788b0
mov r15d, dword [rsp + 0x30]
mov r14, qword [rbp + 0x150]
jmp 0x14018270a
mov r15d, dword [rsp + 0x30]
mov r14, qword [rbp + 0x150]
mov rbx, qword [rsp + 0x38]
mov word [rdi + 8], r11w
mov rdi, qword [rsp + 0x40]
jmp 0x140180708
test r14b, 0x12
jne 0x140183c0f
mov r12b, byte [rbp + 0x158]
xor r8d, r8d
mov dl, r12b
mov rcx, r15
call fcn.1401786e4
test eax, eax
jne 0x14018673d
movzx r14d, word [r15 + 8]
mov eax, 0xfffd
and r14w, ax
mov eax, 0x4000
jmp 0x140183c44
mov eax, 0x4000
test ax, r14w
je 0x140183c3d
mov rcx, r15
call fcn.140178680
test eax, eax
jne 0x14018673d
movzx r14d, word [r15 + 8]
mov eax, 0xfffd
and r14w, ax
mov eax, 0x4000
mov r12b, byte [rbp + 0x158]
movzx esi, word [rbx + 8]
test sil, 0x12
jne 0x140183c5e
xor r8d, r8d
mov dl, r12b
mov rcx, rbx
call fcn.1401786e4
jmp 0x140183c6b
test ax, si
je 0x140183c7f
mov rcx, rbx
call fcn.140178680
test eax, eax
jne 0x14018673d
movzx esi, word [rbx + 8]
mov eax, 0xfffd
and si, ax
mov rax, qword [rsp + 0x38]
mov r13d, dword [rbx + 0xc]
add r13d, dword [r15 + 0xc]
movsxd r12, r13d
movsxd rax, dword [rax + 0x88]
cmp r12, rax
jg 0x140186707
xor eax, eax
lea edx, [r13 + 3]
mov r8d, eax
cmp rdi, rbx
mov rcx, rdi
sete r8b
call fcn.14017845c
test eax, eax
jne 0x14018673d
movzx eax, word [rdi + 8]
mov ecx, 0x3e40
and ax, cx
or ax, 2
mov word [rdi + 8], ax
cmp rdi, rbx
je 0x140183ced
movsxd r8, dword [rbx + 0xc]
mov rdx, qword [rbx + 0x10]
mov rcx, qword [rdi + 0x10]
call fcn.1404084f0
mov word [rbx + 8], si
movsxd rcx, dword [rbx + 0xc]
add rcx, qword [rdi + 0x10]
movsxd r8, dword [r15 + 0xc]
mov rdx, qword [r15 + 0x10]
call fcn.1404084f0
xor esi, esi
mov word [r15 + 8], r14w
mov rax, qword [rdi + 0x10]
mov edx, esi
lea r11d, [rsi + 1]
mov byte [r12 + rax], sil
lea r9d, [rsi + 2]
mov rcx, qword [rdi + 0x10]
add rcx, rdx
add rdx, r11
mov byte [rcx + r12 + 1], sil
cmp rdx, r9
jl 0x140183d1b
mov r12, qword [rsp + 0x50]
mov eax, 0x200
or word [rdi + 8], ax
mov al, byte [rbp + 0x158]
mov dword [rdi + 0xc], r13d
mov r13, qword [rsp + 0x48]
mov byte [rdi + 0xa], al
jmp 0x140182ccb
test r8, r8
je 0x140183eef
cmp r8, 0xffffffffffffffff
jne 0x140183d76
movabs rax, 0x8000000000000000
cmp rdx, rax
je 0x140183e11
mov rax, rdx
cqo
idiv r8
jmp 0x140183ddd
mov rdx, r8
lea rcx, [rbp - 0x70]
call fcn.1401600d4
jmp 0x140183d9a
mov rdx, r8
lea rcx, [rbp - 0x70]
call fcn.1401600a4
test eax, eax
jne 0x140183e11
jmp 0x140183de1
test r8, r8
js 0x140183dbe
test rdx, rdx
jle 0x140183dd9
movabs rax, 0x7fffffffffffffff
sub rax, rdx
cmp rax, r8
jge 0x140183dd9
jmp 0x140183e11
test rdx, rdx
jns 0x140183dd9
movabs rcx, 0x8000000000000001
lea rax, [r8 + 1]
sub rcx, rdx
cmp rcx, rax
jg 0x140183e11
lea rax, [r8 + rdx]
mov qword [rbp - 0x70], rax
mov rax, qword [rbp - 0x70]
mov ecx, 0x3e40
mov qword [r14], rax
mov esi, 4
movzx eax, word [r14 + 8]
and ax, cx
or ax, si
jmp 0x140183ee5
mov r11d, 1
test r11b, cl
jne 0x140183ef5
mov rcx, rdi
call fcn.140178a08
mov rcx, rsi
movaps xmm6, xmm0
call fcn.140178a08
movzx edx, byte [r13]
sub edx, 0x6a
je 0x140183e94
sub edx, 1
je 0x140183e8e
sub edx, 1
je 0x140183e88
cmp edx, 1
je 0x140183e7a
mov rcx, rdi
call fcn.1401789ac
mov rcx, rsi
mov rbx, rax
call fcn.1401789ac
mov qword [rbp - 0x70], rax
mov r11d, 1
test rbx, rbx
je 0x140183ef5
cmp rbx, 0xffffffffffffffff
cqo
xorps xmm0, xmm0
cmove rbx, r11
idiv rbx
cvtsi2sd xmm0, rdx
jmp 0x140183e9e
ucomisd xmm6, xmm7
jp 0x140183e82
je 0x140183eef
divsd xmm0, xmm6
jmp 0x140183e98
mulsd xmm0, xmm6
jmp 0x140183e98
subsd xmm0, xmm6
jmp 0x140183e98
addsd xmm0, xmm6
mov r11d, 1
movq rax, xmm0
movabs rcx, 0xfffffffffffff
test rcx, rax
movabs rdx, 0x7ff0000000000000
setne cl
and rax, rdx
cmp rax, rdx
sete al
test al, cl
jne 0x140183ef5
movzx eax, word [r14 + 8]
mov ecx, 0x3e40
and ax, cx
movsd qword [r14], xmm0
or ax, 8
mov esi, 4
mov word [r14 + 8], ax
jmp 0x140183bab
mov r11d, 1
mov edx, 0x2400
test word [r14 + 8], dx
je 0x140183f15
mov rcx, r14
call fcn.1401788b0
mov r14, qword [rbp + 0x150]
jmp 0x140181e01
mov rdi, qword [rsp + 0x40]
mov word [r14 + 8], r11w
mov r14, qword [rbp + 0x150]
jmp 0x140181a5f
movsxd rcx, dword [r13 + 8]
xor r9d, r9d
mov rax, qword [r14 + 0x80]
mov edx, dword [r13 + 4]
mov rbx, qword [rax + rcx*8]
mov rcx, r14
movsx r8d, word [rbx + 0x48]
call fcn.14017ffb4
mov r10, rax
test rax, rax
je 0x140186744
mov edx, dword [r10 + 8]
mov eax, 1
or edx, eax
mov byte [r10 + 2], al
mov dword [r10 + 8], edx
mov r8d, esi
mov rcx, qword [rbx + 0x38]
mov qword [r10 + 0x38], rcx
mov ecx, edx
mov al, byte [rbx + 4]
mov byte [r10 + 4], al
mov eax, dword [rbx + 0x44]
mov dword [r10 + 0x44], eax
xor ecx, dword [rbx + 8]
and ecx, esi
xor ecx, edx
mov dword [r10 + 8], ecx
mov rax, qword [rbx + 0x10]
mov qword [r10 + 0x10], rax
mov eax, 8
or ecx, eax
mov dword [r10 + 8], ecx
or dword [rbx + 8], eax
mov rax, qword [r10 + 0x30]
mov r9, qword [r10 + 0x38]
mov edx, dword [r10 + 0x44]
mov rcx, qword [r10 + 0x10]
mov qword [rsp + 0x20], rax
call fcn.140170b28
mov r15d, eax
mov dword [rsp + 0x30], eax
jmp 0x14018125f
cmp r8d, 0x7d
ja 0x14018457b
je 0x14018453c
cmp r8d, 0x77
ja 0x1401843b8
je 0x14018438f
sub r8d, 0x72
je 0x14018433d
sub r8d, 1
je 0x140184183
sub r8d, 1
je 0x140184183
sub r8d, 1
je 0x140184055
cmp r8d, 1
jne 0x140180708
mov r8d, dword [r13 + 8]
mov r9b, r11b
mov edx, dword [r13 + 4]
mov rcx, r14
call fcn.14017ffb4
test rax, rax
je 0x140186749
mov rcx, qword [r13 + 0x10]
mov r8, rax
mov qword [rax + 0x38], rcx
mov rcx, rbx
mov edx, dword [r13 + 0xc]
call fcn.140187b54
jmp 0x140180d3e
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov rdx, qword [r13 + 0x10]
xor ecx, ecx
mov rbx, rax
test rdx, rdx
jne 0x140184072
mov eax, ecx
jmp 0x140184083
or rax, 0xffffffffffffffff
inc rax
cmp byte [rdx + rax], cl
jne 0x140184076
and eax, 0x3fffffff
movzx esi, byte [rbp + 0x158]
mov r8d, 1
mov dword [r13 + 4], eax
cmp sil, r8b
je 0x140184105
mov qword [rsp + 0x20], rcx
mov r9b, r8b
or r8, 0xffffffffffffffff
mov rcx, rbx
call fcn.140179098
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018670e
mov edx, esi
mov rcx, rbx
call fcn.140178444
xor ecx, ecx
test eax, eax
jne 0x140186744
mov eax, 0x800
mov dword [rbx + 0x20], ecx
or word [rbx + 8], ax
cmp byte [r13 + 1], 0xf9
jne 0x1401840f1
mov rdx, qword [r13 + 0x10]
mov rcx, qword [rsp + 0x38]
call fcn.14015c518
mov byte [r13 + 1], 0xf9
mov rax, qword [rbx + 0x10]
mov qword [r13 + 0x10], rax
mov eax, dword [rbx + 0xc]
mov dword [r13 + 4], eax
mov rbx, qword [rsp + 0x38]
cmp eax, dword [rbx + 0x88]
jg 0x14018670e
mov byte [r13], 0x49
jmp 0x140184124
mov sil, byte [rbp + 0x158]
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov r8, rax
mov word [rax + 8], 0xa02
mov rcx, qword [r13 + 0x10]
mov qword [rax + 0x10], rcx
mov ecx, dword [r13 + 4]
mov byte [rax + 0xa], sil
xor esi, esi
mov dword [rax + 0xc], ecx
cmp dword [r13 + 0xc], esi
jle 0x14018589e
movsxd rcx, dword [r13 + 0xc]
mov esi, 4
movzx eax, word [r13 + 2]
imul rdx, rcx, 0x38
lea r11d, [rsi - 3]
cmp qword [rdx + r12], rax
jne 0x140182a8a
mov word [r8 + 8], 0xa10
jmp 0x140180c2e
xor esi, esi
cmp dword [r13 + 0xc], esi
jle 0x1401841ac
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
mov dword [rcx + r12 + 0xc], esi
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
lea rax, [0x1404ceba2]
mov qword [rcx + r12 + 0x10], rax
movsxd rdx, dword [r13 + 4]
mov rax, qword [r14 + 0x80]
mov rbx, qword [rax + rdx*8]
test rbx, rbx
je 0x140184200
test byte [rbx + 8], r10b
jne 0x140184200
movsx eax, word [rbx + 0x48]
cmp dword [r13 + 8], eax
jg 0x140184200
mov edx, dword [rbx + 0x44]
xor r8d, r8d
mov rcx, qword [rbx + 0x10]
mov qword [rbx + 0x18], rsi
mov dword [rbx + 0x20], esi
call fcn.140176308
mov dword [rsp + 0x30], eax
mov r15d, eax
mov dword [rbp + 0x160], eax
test eax, eax
jne 0x14018611a
jmp 0x14018432e
mov r8d, dword [r13 + 8]
xor r9d, r9d
mov rcx, r14
call fcn.14017ffb4
mov rbx, rax
test rax, rax
je 0x140186744
mov eax, 1
mov dword [rsp + 0x28], 0x41e
or dword [rbx + 8], eax
lea rdi, [rbx + 0x10]
movzx ecx, word [r13 + 2]
mov r9, rdi
mov rax, qword [rsp + 0x38]
or ecx, 5
mov dword [rsp + 0x20], ecx
mov r8, rax
xor edx, edx
mov rcx, qword [rax]
call fcn.14016e7a0
mov r15d, eax
test eax, eax
jne 0x14018611a
mov rcx, qword [rdi]
lea edx, [rax + 1]
xor r8d, r8d
call fcn.14016f84c
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x140184304
mov r14, qword [r13 + 0x10]
lea rsi, [rbx + 0x44]
mov rcx, qword [rdi]
mov qword [rbx + 0x38], r14
test r14, r14
je 0x1401842d1
movzx r8d, word [r13 + 2]
mov rdx, rsi
or r8d, 2
call fcn.1401760d0
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x1401842c9
mov rax, qword [rbx + 0x30]
lea r8d, [r15 + 4]
mov edx, dword [rsi]
mov r9, r14
mov rcx, qword [rdi]
mov qword [rsp + 0x20], rax
call fcn.140170b28
mov r15d, eax
mov dword [rsp + 0x30], eax
xor esi, esi
mov byte [rbx + 4], sil
jmp 0x1401842fd
mov rax, qword [rbx + 0x30]
mov r14d, 1
xor r9d, r9d
mov dword [rsi], r14d
mov edx, r14d
mov qword [rsp + 0x20], rax
lea r8d, [r14 + 3]
call fcn.140170b28
mov r15d, eax
mov dword [rsp + 0x30], eax
mov byte [rbx + 4], r14b
mov r14, qword [rbp + 0x150]
movzx eax, word [r13 + 2]
sub ax, 8
neg ax
mov eax, dword [rbx + 8]
sbb ecx, ecx
and eax, 0xfffffffb
and ecx, 4
or ecx, eax
mov dword [rbx + 8], ecx
test r15d, r15d
jne 0x14018668b
mov rdi, qword [rsp + 0x40]
mov r11d, 1
mov byte [rbx + 2], r11b
jmp 0x140180d09
movsxd rax, dword [r13 + 4]
imul rdi, rax, 0x38
movsxd rax, dword [r13 + 8]
imul rbx, rax, 0x38
add rdi, r12
add rbx, r12
test word [rbx + 8], dx
je 0x140184369
mov rcx, rbx
call fcn.1401788b0
mov r11d, 1
jmp 0x14018436e
mov word [rbx + 8], r11w
test byte [rdi + 8], r11b
jne 0x1401858c1
mov rcx, rdi
mov word [rbx + 8], si
call fcn.1401789ac
not rax
mov qword [rbx], rax
jmp 0x14018270a
movsxd rcx, dword [r13 + 4]
mov rax, qword [r14 + 0x80]
mov rdx, qword [rax + rcx*8]
mov rcx, qword [rdx + 0x18]
lea rax, [rcx + 1]
mov qword [rdx + 0x18], rax
test rcx, rcx
je 0x1401817f6
jmp 0x140180fef
sub r8d, 0x78
je 0x1401844fb
sub r8d, 1
je 0x1401844ce
sub r8d, r9d
je 0x14018441f
cmp r8d, 1
jne 0x140180708
mov rax, qword [r14 + 0x80]
movsxd rcx, dword [r13 + 4]
mov rdx, qword [rax + rcx*8]
movzx eax, word [rdx + 0xc]
cmp eax, dword [r13 + 8]
jge 0x140184402
movzx eax, word [r13 + 8]
mov word [rdx + 0xc], ax
jmp 0x140180ff4
mov ecx, 0x10
cmp eax, dword [r13 + 0xc]
jle 0x14018208f
movzx eax, word [r13 + 0xc]
mov word [rdx + 0xc], ax
jmp 0x14018208f
mov rax, qword [r14 + 0x80]
xor esi, esi
movsxd rcx, dword [r13 + 0x1c]
mov rbx, qword [rax + rcx*8]
mov rax, qword [rbx + 0x30]
cmp byte [rax], sil
jne 0x1401860e9
mov rax, qword [rbx + 0x38]
mov edi, dword [r13 + 4]
mov qword [rbp - 0x60], rax
movzx eax, word [r13 + 0x28]
mov word [rbp - 0x50], ax
movsxd rax, dword [r13 + 0x24]
imul rcx, rax, 0x38
mov byte [rbp - 0x4e], sil
add rcx, r12
mov dword [rbp - 0x14], esi
mov qword [rbp - 0x58], rcx
mov rcx, qword [rsp + 0x38]
lea r9, [rbp - 0x14]
lea r8, [rbp - 0x60]
mov rdx, rbx
call fcn.14017dc78
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
mov eax, dword [rbp - 0x14]
test eax, eax
jg 0x1401844c5
je 0x1401817eb
test edi, edi
jle 0x1401858ae
mov rcx, qword [rbx + 0x30]
xor edx, edx
dec edi
call fcn.140171bd8
mov r15d, eax
test eax, eax
je 0x140184468
cmp eax, 0x65
jne 0x14018611a
mov r15d, esi
mov dword [rsp + 0x30], esi
add r13, 0x18
jmp 0x1401817eb
movsxd rax, dword [r13 + 4]
mov rcx, r14
mov rdx, qword [r14 + 0x80]
mov rdx, qword [rdx + rax*8]
call fcn.14017b7dc
movsxd rcx, dword [r13 + 4]
xor esi, esi
mov rax, qword [r14 + 0x80]
mov qword [rax + rcx*8], rsi
jmp 0x1401806e7
mov r8d, dword [r13 + 0xc]
mov r9b, 3
mov edx, dword [r13 + 4]
mov rcx, r14
call fcn.14017ffb4
test rax, rax
je 0x140186749
mov r11d, 1
mov byte [rax + 2], r11b
mov ecx, dword [r13 + 8]
mov dword [rax + 0x24], ecx
lea rcx, [0x14051e62c]
mov qword [rax + 0x30], rcx
mov byte [rax + 4], r11b
jmp 0x140180c2e
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov rcx, qword [r14 + 0x80]
mov r11d, 1
movsxd rdx, dword [r13 + 4]
mov rdx, qword [rcx + rdx*8]
mov rcx, qword [rdx + 0x18]
mov qword [rax], rcx
movsxd rcx, dword [r13 + 4]
mov rax, qword [r14 + 0x80]
mov rdx, qword [rax + rcx*8]
add qword [rdx + 0x18], r11
jmp 0x140180c2e
mov eax, 0x83
cmp r8d, eax
ja 0x140184a47
je 0x140184a04
sub r8d, 0x7e
je 0x140184838
sub r8d, 1
je 0x140184713
sub r8d, 1
je 0x1401846d1
sub r8d, 1
je 0x1401845d7
cmp r8d, 1
jne 0x140180708
mov rax, qword [r14 + 0x40]
add qword [rbx + 0x80], rax
xor esi, esi
mov qword [rbx + 0x78], rax
mov qword [r14 + 0x40], rsi
jmp 0x140181fc2
mov r12, qword [rbp + 0x150]
xor edx, edx
cmp byte [r13 + 1], 0xfa
movsxd rcx, dword [r13 + 4]
mov r14d, dword [r13 + 8]
mov rax, qword [r12 + 0x80]
mov rbx, qword [rax + rcx*8]
jne 0x140184638
mov rax, qword [rsp + 0x38]
cmp qword [rax + 0x140], rdx
je 0x140184638
movsx rcx, byte [rbx + 1]
mov rax, qword [rax + 0x20]
mov rdi, qword [r13 + 0x10]
shl rcx, 5
mov rsi, qword [rcx + rax]
test byte [r13 + 2], r9b
je 0x14018463e
cmp byte [rbx + 4], dl
je 0x14018463e
mov rcx, qword [rbx + 0x30]
call fcn.140170cd8
mov qword [rbx + 0x50], rax
jmp 0x14018463e
mov rsi, rdx
mov rdi, rdx
mov dl, byte [r13 + 2]
mov rcx, qword [rbx + 0x30]
call fcn.140175a30
xor r8d, r8d
mov dword [rsp + 0x30], eax
mov qword [rbx + 0x20], r8
mov r15d, eax
test eax, eax
jne 0x140181471
lea r11d, [rax + 1]
test r11b, r14b
je 0x1401858b5
add qword [r12 + 0x40], r11
mov rax, qword [rsp + 0x38]
mov r10, qword [rax + 0x140]
test r10, r10
je 0x1401858bc
test rdi, rdi
je 0x1401858bc
lea eax, [r11 + 0x7f]
test byte [rdi + 0x30], al
jne 0x1401858b5
mov rax, qword [rbx + 0x50]
lea edx, [r15 + 9]
mov rbx, qword [rsp + 0x38]
mov r8, rsi
mov r9, qword [rdi]
mov qword [rsp + 0x20], rax
mov rcx, qword [rbx + 0x138]
call r10
mov r14, qword [rbp + 0x150]
mov r12, qword [rsp + 0x50]
jmp 0x1401807eb
mov rcx, qword [r14 + 0x80]
xor esi, esi
movsxd rax, dword [r13 + 4]
mov r9, qword [rcx + rax*8]
movsxd rax, dword [r13 + 8]
mov rdx, qword [rcx + rax*8]
cmp dword [r13 + 0xc], esi
je 0x1401846fe
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
mov r8, qword [rcx + r12]
jmp 0x140184701
mov r8, rsi
mov rdx, qword [rdx + 0x30]
mov rcx, qword [r9 + 0x30]
call fcn.1401756bc
jmp 0x140180d3e
movsxd rax, dword [r13 + 8]
movsxd rcx, dword [r13 + 4]
mov r9, qword [rsp + 0x38]
imul rdx, rax, 0x38
mov rax, qword [r14 + 0x80]
add rdx, r12
mov rbx, qword [rax + rcx*8]
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
mov r8, qword [rcx + r12]
xor ecx, ecx
cmp byte [r13 + 1], 0xfa
mov qword [rbp - 0x58], r8
jne 0x14018476d
cmp qword [r9 + 0x140], rcx
je 0x14018476d
movsx rcx, byte [rbx + 1]
mov rax, qword [r9 + 0x20]
mov rdi, qword [r13 + 0x10]
shl rcx, 5
mov rsi, qword [rcx + rax]
xor ecx, ecx
jmp 0x140184773
mov rdi, rcx
mov rsi, rcx
test byte [r13 + 2], r11b
je 0x14018477d
add qword [r14 + 0x40], r11
mov eax, 0x20
test byte [r13 + 2], al
je 0x14018478c
mov qword [r9 + 0x38], r8
mov rax, qword [rdx + 0x10]
movzx r8d, word [r13 + 2]
mov qword [rbp - 0x50], rax
mov eax, dword [rdx + 0xc]
mov dword [rbp - 0x3c], eax
mov eax, 0x10
test al, r8b
je 0x1401847af
mov r9d, dword [rbx + 0x24]
jmp 0x1401847b2
mov r9d, ecx
mov eax, 0x4000
test word [rdx + 8], ax
je 0x1401847c4
mov eax, dword [rdx]
mov dword [rbp - 0x38], eax
jmp 0x1401847c7
mov dword [rbp - 0x38], ecx
mov qword [rbp - 0x60], rcx
lea rdx, [rbp - 0x60]
mov rcx, qword [rbx + 0x30]
and r8d, 0x8a
call fcn.1401751f4
mov r15d, eax
mov dword [rsp + 0x30], eax
xor eax, eax
mov byte [rbx + 3], al
mov dword [rbx + 0x20], eax
xor ebx, ebx
test r15d, r15d
jne 0x140186770
mov rbx, qword [rsp + 0x38]
test rdi, rdi
je 0x14018589e
mov al, byte [r13 + 2]
mov r8, rsi
mov r9, qword [rdi]
and al, 4
mov rcx, qword [rbx + 0x138]
neg al
mov rax, qword [rbp - 0x58]
sbb edx, edx
mov qword [rsp + 0x20], rax
and edx, 5
add edx, 0x12
call qword [rbx + 0x140]
jmp 0x1401807eb
xor eax, eax
mov rdx, r13
mov rcx, r14
mov qword [rsp + 0x70], rax
mov dword [rbp + 0x160], eax
call fcn.140180338
movsxd rdx, dword [r13 + 4]
mov r9d, 2
mov rcx, qword [r14 + 0x80]
mov rsi, rax
mov rdi, qword [rcx + rdx*8]
test byte [rdi + 8], r9b
jne 0x1401848d8
mov rcx, qword [rdi + 0x30]
lea rdx, [rbp + 0x160]
call fcn.140171534
xor ebx, ebx
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x140186770
cmp dword [rbp + 0x160], ebx
je 0x1401848a5
lea eax, [rbx + 1]
mov qword [rsp + 0x70], rax
lea r9d, [r15 + 2]
jmp 0x1401848da
mov rcx, qword [rdi + 0x30]
call fcn.140170cd8
movabs rcx, 0x7fffffffffffffff
mov qword [rsp + 0x70], rax
mov r9d, 2
cmp rax, rcx
jl 0x1401848ce
or dword [rdi + 8], r9d
jmp 0x1401848da
inc rax
mov qword [rsp + 0x70], rax
jmp 0x1401848da
xor ebx, ebx
cmp dword [r13 + 0xc], ebx
je 0x14018495d
mov rcx, qword [r14 + 0x110]
test rcx, rcx
je 0x14018490c
mov rax, qword [rcx + 8]
jmp 0x1401848f9
mov rcx, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x1401848f2
movsxd rax, dword [r13 + 0xc]
imul rbx, rax, 0x38
add rbx, qword [rcx + 0x20]
jmp 0x140184917
movsxd rax, dword [r13 + 0xc]
imul rbx, rax, 0x38
add rbx, r12
mov rcx, rbx
call fcn.140178ac8
mov rcx, qword [rbx]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
je 0x1401849c6
mov r9d, 2
test byte [rdi + 8], r9b
jne 0x1401849c6
mov rax, qword [rsp + 0x70]
inc rcx
cmp rax, rcx
jge 0x14018495a
mov rax, rcx
mov qword [rsp + 0x70], rcx
mov qword [rbx], rax
test byte [rdi + 8], r9b
je 0x1401849d7
xor r15d, r15d
mov ebx, r15d
lea rdx, [rsp + 0x70]
mov ecx, 8
call fcn.14015e7ac
mov rdx, qword [rsp + 0x70]
lea r9, [rbp + 0x160]
movabs rax, 0x3fffffffffffffff
xor r8d, r8d
and rdx, rax
inc rdx
mov qword [rsp + 0x70], rdx
mov rcx, qword [rdi + 0x30]
call fcn.1401715ac
mov r15d, eax
mov dword [rsp + 0x30], eax
xor eax, eax
test r15d, r15d
jne 0x14018611a
cmp dword [rbp + 0x160], eax
jne 0x1401849d1
inc ebx
cmp ebx, 0x64
jl 0x140184969
mov r15d, 0xd
jmp 0x14018611a
mov r9d, 2
xor ebx, ebx
mov edx, 0x2400
mov byte [rdi + 3], bl
mov dword [rdi + 0x20], ebx
mov rax, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
mov qword [rsi], rax
mov esi, 4
lea r11d, [rsi - 3]
jmp 0x1401806fd
mov rax, qword [r14 + 0x80]
lea r9, [rbp - 0x10]
movsxd rcx, dword [r13 + 4]
xor esi, esi
mov r8d, dword [r13 + 0x10]
mov rcx, qword [rax + rcx*8]
movsxd rax, dword [r13 + 0xc]
imul rdx, rax, 0x38
mov dword [rbp - 0x10], esi
add rdx, r12
call fcn.14018991c
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
cmp dword [rbp - 0x10], esi
jmp 0x14018127f
sub r8d, 0x84
je 0x140184bf2
sub r8d, 1
je 0x140184b66
sub r8d, 1
je 0x140184aac
cmp r8d, 1
jne 0x140180708
movsxd rcx, dword [r13 + 4]
xor esi, esi
mov rax, qword [r14 + 0x80]
mov rbx, qword [rax + rcx*8]
mov byte [rbx + 2], r11b
mov dword [rbx + 0x20], esi
cmp byte [rbx], sil
jne 0x1401858b5
mov rbx, qword [rbx + 0x30]
mov rcx, qword [rbx + 0x18]
call fcn.14015c434
lea r11d, [rsi + 1]
mov qword [rbx + 0x18], rsi
mov byte [rbx], r11b
jmp 0x140180d09
mov rdx, r13
mov rcx, r14
call fcn.140180338
movsxd rdx, dword [r13 + 4]
xor esi, esi
mov rcx, qword [r14 + 0x80]
mov rdi, rax
mov rbx, qword [rcx + rdx*8]
cmp byte [rbx + 2], sil
je 0x140184adf
lea r11d, [rsi + 1]
mov word [rax + 8], r11w
jmp 0x140180f89
cmp byte [rbx + 3], sil
je 0x140184aeb
mov rax, qword [rbx + 0x50]
jmp 0x140184b5a
mov eax, 2
cmp byte [rbx], al
jne 0x140184b26
mov rcx, qword [rbx + 0x30]
lea rdx, [rbp + 0x30]
mov rbx, qword [rcx]
mov rax, qword [rbx]
call qword [rax + 0x60]
mov rdx, rbx
mov rcx, r14
mov r15d, eax
mov dword [rsp + 0x30], eax
call fcn.14017de68
test r15d, r15d
jne 0x14018611a
mov rax, qword [rbp + 0x30]
jmp 0x140184b5e
mov rcx, rbx
call fcn.14017cb68
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
cmp byte [rbx + 2], sil
je 0x140184b51
lea r11d, [rax + 1]
mov word [rdi + 8], r11w
jmp 0x140180f89
mov rcx, qword [rbx + 0x30]
call fcn.140170cd8
mov qword [rbp + 0x30], rax
mov qword [rdi], rax
jmp 0x140181e01
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov rcx, qword [r14 + 0x80]
mov rdi, rax
movsxd rdx, dword [r13 + 4]
mov rdx, qword [rcx + rdx*8]
mov rbx, qword [rdx + 0x30]
mov rcx, rbx
call fcn.140170c90
mov rax, qword [rsp + 0x38]
mov edx, dword [rbx + 0x40]
cmp edx, dword [rax + 0x88]
ja 0x14018670e
mov r8, rdi
mov rcx, rbx
call fcn.140179440
xor esi, esi
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
cmp dword [r13 + 0xc], esi
jne 0x1401858ae
mov eax, 0x1000
test word [rdi + 8], ax
je 0x1401858ae
mov rcx, rdi
call fcn.140178628
mov rbx, qword [rsp + 0x38]
test eax, eax
jne 0x140186749
jmp 0x1401807eb
movsxd rax, dword [r13 + 8]
movsxd rcx, dword [r13 + 4]
imul rdx, rax, 0x38
mov rax, qword [r14 + 0x80]
add rdx, r12
mov rcx, qword [rax + rcx*8]
call fcn.14018985c
xor esi, esi
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
movsxd rcx, dword [r13 + 0xc]
mov rax, qword [r14 + 0x80]
mov rcx, qword [rax + rcx*8]
mov dword [rcx + 0x20], esi
jmp 0x1401806e7
movsxd rcx, dword [r13 + 4]
xor esi, esi
mov rax, qword [r14 + 0x80]
mov rbx, qword [rax + rcx*8]
mov rcx, qword [rbx + 0x30]
mov dword [rbp - 0x7c], esi
cmp r8b, 0x88
jne 0x140184c64
or dword [rbx + 0x24], 0xffffffff
cmp byte [rcx], sil
je 0x1401858b5
lea rdx, [rbp - 0x7c]
call fcn.140171534
mov r15d, eax
mov dword [rsp + 0x30], eax
mov al, byte [rbp - 0x7c]
mov byte [rbx + 2], al
mov byte [rbx + 3], sil
mov dword [rbx + 0x20], esi
test r15d, r15d
jne 0x14018611a
cmp dword [r13 + 8], esi
jle 0x1401858ae
cmp dword [rbp - 0x7c], esi
je 0x140180e38
jmp 0x140181060
mov r15d, dword [rsp + 0x30]
mov r12, qword [rsp + 0x50]
jmp 0x1401817f1
mov eax, 0x9e
cmp r8d, eax
ja 0x140185637
je 0x1401855c3
mov eax, 0x93
cmp r8d, eax
ja 0x1401851c9
je 0x1401851a4
mov eax, 0x8e
cmp r8d, eax
ja 0x140184fbc
je 0x140184f97
sub r8d, 0x89
je 0x140184ef3
sub r8d, 1
je 0x140184ea2
sub r8d, 1
je 0x140184dea
sub r8d, 1
je 0x140184d1e
cmp r8d, 1
jne 0x140180708
mov rax, qword [r14 + 0x80]
xor esi, esi
movsxd rcx, dword [r13 + 4]
mov rbx, qword [rax + rcx*8]
mov rax, qword [rbx + 0x30]
cmp byte [rax], sil
je 0x140184d51
mov rcx, rbx
call fcn.14017cb18
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
jmp 0x140184d58
mov r15d, esi
mov dword [rsp + 0x30], esi
cmp byte [rbx + 2], sil
jne 0x140184dd5
mov rcx, qword [rsp + 0x38]
lea r8, [rbp + 0x38]
mov qword [rbp + 0x38], rsi
mov rdx, qword [rbx + 0x30]
call fcn.14017db3c
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
cmp byte [r13], 0x8c
jne 0x140184dbe
mov rax, qword [r14 + 0x80]
lea r11d, [r15 + 1]
movsxd rcx, dword [r13 + 0xc]
mov rdx, qword [rax + rcx*8]
mov byte [rdx + 2], sil
mov rax, qword [rbp + 0x38]
mov qword [rdx + 0x50], rax
mov byte [rdx + 3], r11b
mov rax, qword [r13 + 0x10]
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x28], rbx
jmp 0x140180d09
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov rcx, qword [rbp + 0x38]
mov qword [rax], rcx
jmp 0x140180e38
movsxd rax, dword [r13 + 8]
imul rcx, rax, 0x38
add rcx, r12
call fcn.140178d30
jmp 0x140180e38
movsxd rcx, dword [r13 + 4]
lea r8, [rbp + 0x14]
mov rax, qword [r14 + 0x80]
xor esi, esi
mov rdi, qword [rax + rcx*8]
mov rax, qword [rdi + 0x38]
mov rbx, qword [rdi + 0x30]
mov qword [rbp - 0x60], rax
mov rcx, rbx
movzx eax, word [r13 + 0xc]
mov word [rbp - 0x50], ax
movsxd rax, dword [r13 + 8]
imul rdx, rax, 0x38
mov byte [rbp - 0x4e], sil
add rdx, r12
mov qword [rbp - 0x58], rdx
lea rdx, [rbp - 0x60]
call fcn.1401717a4
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
cmp dword [rbp + 0x14], esi
jne 0x140184e6f
lea edx, [rsi + 4]
mov rcx, rbx
call fcn.140175a30
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x14018611a
mov rbx, qword [rsp + 0x38]
mov qword [rdi + 0x20], rsi
jmp 0x1401807eb
cmp word [r13 + 2], si
je 0x140184e61
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
call fcn.14019a96c
test eax, eax
jne 0x140184e66
lea r8, [0x1404e2960]
mov edx, 0x16d56
mov ecx, 0x30b
call fcn.1401d9f8c
jmp 0x140186678
mov rax, qword [r14 + 0x80]
movsxd rcx, dword [r13 + 4]
mov rdi, qword [rax + rcx*8]
movsxd rax, dword [r13 + 8]
imul rbx, rax, 0x38
mov eax, 0x4000
add rbx, r12
test word [rbx + 8], ax
je 0x140184eda
mov rcx, rbx
call fcn.140178680
mov r15d, eax
test eax, eax
jne 0x14018611a
mov rdx, rbx
mov rcx, rdi
call fcn.140188ae8
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jmp 0x140180e2d
mov rax, qword [r14 + 0x80]
movsxd rcx, dword [r13 + 4]
mov rdi, qword [rax + rcx*8]
movsxd rax, dword [r13 + 8]
imul rbx, rax, 0x38
add rbx, r12
test byte [r13 + 2], r11b
je 0x140184f17
add qword [r14 + 0x40], r11
mov eax, 0x4000
test word [rbx + 8], ax
je 0x140184f39
mov rcx, rbx
call fcn.140178680
xor esi, esi
mov r15d, eax
test eax, eax
jne 0x14018611a
jmp 0x140184f3b
xor esi, esi
movsxd rax, dword [rbx + 0xc]
movzx r8d, word [r13 + 2]
mov qword [rbp - 0x58], rax
mov rax, qword [rbx + 0x10]
mov qword [rbp - 0x60], rax
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
movzx eax, word [r13 + 0x10]
add rcx, r12
mov word [rbp - 0x40], ax
mov eax, 0x10
mov qword [rbp - 0x48], rcx
test al, r8b
je 0x140184f78
mov r9d, dword [rdi + 0x24]
jmp 0x140184f7b
mov r9d, esi
mov rcx, qword [rdi + 0x30]
lea rdx, [rbp - 0x60]
and r8d, 0x8a
call fcn.1401751f4
mov dword [rdi + 0x20], esi
jmp 0x140184ee5
movsxd rcx, dword [r13 + 4]
xor esi, esi
mov rax, qword [r14 + 0x80]
mov rcx, qword [rax + rcx*8]
cmp byte [rcx + 3], sil
je 0x1401810fd
call fcn.14017cad0
jmp 0x140180d3e
sub r8d, 0x8f
je 0x1401850e8
sub r8d, 1
je 0x14018508c
sub r8d, 1
je 0x14018504f
cmp r8d, 1
jne 0x140180708
mov rdx, r13
mov rcx, r14
call fcn.140180338
movsxd rdx, dword [r13 + 4]
mov rsi, rax
mov ebx, dword [r13 + 0xc]
xor eax, eax
mov dword [rbp - 0xc], eax
mov rax, qword [rsp + 0x38]
shl rdx, 5
mov rcx, qword [rax + 0x20]
mov rdi, qword [rdx + rcx + 8]
mov rcx, rdi
call fcn.14016ccc8
mov r8d, ebx
lea rdx, [rbp - 0xc]
mov rcx, rdi
call fcn.140175e34
mov rcx, rdi
mov dword [rsp + 0x30], eax
mov r15d, eax
call fcn.14016cd78
mov rdi, qword [rsp + 0x40]
test r15d, r15d
jne 0x140186383
mov eax, dword [rbp - 0xc]
mov qword [rsi], rax
jmp 0x140180e38
movsxd rcx, dword [r13 + 4]
mov rax, qword [r14 + 0x80]
mov rcx, qword [rax + rcx*8]
cmp byte [rcx], r11b
jne 0x140185074
mov rdx, qword [rcx + 0x30]
mov rcx, rbx
call fcn.140188038
jmp 0x1401806ec
mov rcx, qword [rcx + 0x30]
xor r8d, r8d
mov edx, dword [rcx + 0x50]
mov rcx, qword [rcx + 8]
call fcn.140176308
jmp 0x140180d3e
movsxd rax, dword [r13 + 8]
lea r8, [rbp + 0x160]
mov rcx, qword [rbx + 0x20]
xor esi, esi
mov edx, dword [r13 + 4]
shl rax, 5
mov qword [rbp + 0x160], rsi
mov rcx, qword [rax + rcx + 8]
call fcn.140176308
mov r15d, eax
mov dword [rsp + 0x30], eax
cmp dword [r13 + 0xc], esi
je 0x1401850e0
mov rdx, qword [rbp + 0x160]
add qword [r14 + 0x40], rdx
cmp dword [r13 + 0xc], esi
jle 0x1401850e0
movsxd rax, dword [r13 + 0xc]
imul rcx, rax, 0x38
add qword [rcx + r12], rdx
test r15d, r15d
jmp 0x140180d47
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov rsi, rax
mov eax, 1
mov word [rsi + 8], ax
mov ecx, dword [rbx + 0xe8]
add ecx, eax
cmp dword [rbx + 0xdc], ecx
jg 0x140186699
movsxd r14, dword [r13 + 0xc]
xor eax, eax
mov ebx, dword [r13 + 4]
mov rcx, r14
mov dword [rbp - 0x78], eax
mov rax, qword [rsp + 0x38]
shl rcx, 5
mov rax, qword [rax + 0x20]
mov rdi, qword [rcx + rax + 8]
mov rcx, rdi
call fcn.14016ccc8
lea r8, [rbp - 0x78]
mov edx, ebx
mov rcx, rdi
call fcn.1401763c4
mov rcx, rdi
mov dword [rsp + 0x30], eax
mov r15d, eax
call fcn.14016cd78
mov word [rsi + 8], 4
movsxd rax, dword [rbp - 0x78]
mov qword [rsi], rax
test r15d, r15d
jne 0x140181471
mov r8d, dword [rbp - 0x78]
mov rbx, qword [rsp + 0x38]
test r8d, r8d
je 0x14018589e
mov r9d, dword [r13 + 4]
mov edx, r14d
mov rcx, rbx
call fcn.14019d5d0
lea r11d, [r15 + 1]
lea eax, [r11 + r14]
mov byte [rbp + 0x168], al
jmp 0x14018177d
add byte [rbx + 0x70], r11b
xor esi, esi
mov rdx, qword [r13 + 0x10]
xor r9d, r9d
xor r8d, r8d
mov qword [rsp + 0x20], rsi
mov rcx, rbx
call fcn.1401ab500
dec byte [rbx + 0x70]
jmp 0x140180d3e
mov eax, 0x99
cmp r8d, eax
ja 0x1401853b7
je 0x14018538e
sub r8d, 0x94
je 0x140185252
sub r8d, 1
je 0x140185241
sub r8d, 1
je 0x14018522c
sub r8d, 1
je 0x140185217
cmp r8d, 1
jne 0x140180708
mov r8, qword [r13 + 0x10]
mov rcx, rbx
mov edx, dword [r13 + 4]
call fcn.1401bc1d0
jmp 0x1401806ec
mov r8, qword [r13 + 0x10]
mov rcx, rbx
mov edx, dword [r13 + 4]
call fcn.14019a0c4
jmp 0x1401806ec
mov r8, qword [r13 + 0x10]
mov rcx, rbx
mov edx, dword [r13 + 4]
call fcn.14019a7d4
jmp 0x1401806ec
mov edx, dword [r13 + 4]
mov rcx, rbx
call fcn.1401984e0
jmp 0x140180d3e
mov r9, qword [r13 + 0x10]
xor esi, esi
movsxd rbx, dword [r13 + 4]
mov rdi, qword [rsp + 0x38]
test r9, r9
jne 0x1401852b4
mov rcx, qword [rdi + 0x20]
mov rax, rbx
shl rax, 5
mov rcx, qword [rax + rcx + 0x18]
call fcn.1401a1314
and dword [rdi + 0x2c], 0xffffffef
lea r8, [r14 + 0xb0]
movzx r9d, word [r13 + 2]
mov edx, ebx
mov rcx, rdi
mov rbx, rdi
call fcn.1401b07ac
lea r11d, [rsi + 1]
mov dword [rsp + 0x30], eax
or dword [rdi + 0x2c], r11d
mov r15d, eax
and dword [r14 + 0xd0], 0xfffffffc
jmp 0x140185380
mov r8, qword [rdi + 0x20]
lea rax, [r14 + 0xb0]
mov qword [rbp - 0x60], rdi
mov rdx, rbx
mov dword [rbp - 0x50], ebx
mov qword [rbp - 0x58], rax
mov dword [rbp - 0x48], esi
shl rdx, 5
mov qword [rsp + 0x20], r9
lea r9, [0x1404e07a8]
mov rax, qword [rdx + r8 + 8]
mov rcx, qword [rax + 8]
mov eax, dword [rcx + 0x40]
mov rcx, rdi
mov dword [rbp - 0x40], eax
mov r8, qword [rdx + r8]
lea rdx, [0x1404e2978]
call fcn.14015e56c
mov rbx, rax
test rax, rax
je 0x1401866b6
lea r9, [rbp - 0x60]
mov byte [rdi + 0xc5], 1
lea r8, [fcn.1401b0510]
mov dword [rbp - 0x4c], esi
mov rdx, rax
mov dword [rbp - 0x44], esi
mov rcx, rdi
mov qword [rsp + 0x20], rsi
call fcn.1401ab500
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
jne 0x140185365
mov r15d, dword [rbp - 0x4c]
mov dword [rsp + 0x30], r15d
test r15d, r15d
jne 0x140185365
cmp dword [rbp - 0x44], esi
jne 0x140185365
mov ecx, 0x16f1e
call fcn.1401d9fb8
mov r15d, eax
mov dword [rsp + 0x30], eax
mov rdx, rbx
mov rcx, rdi
mov rbx, rdi
call fcn.14015c4bc
mov r11d, 1
mov byte [rdi + 0xc5], sil
test r15d, r15d
jne 0x1401866bf
jmp 0x140180f8e
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov r10d, 8
mov word [rax + 8], r10w
mov rcx, qword [r13 + 0x10]
lea r11d, [r10 - 7]
mov rdx, qword [rcx]
mov qword [rax], rdx
jmp 0x140182a3b
sub r8d, 0x9a
je 0x14018548d
sub r8d, 1
je 0x140185453
sub r8d, 1
je 0x140185419
cmp r8d, 1
jne 0x140180708
mov eax, dword [rbx + 0x30]
bt rax, 0x13
jae 0x1401853f8
movsxd rax, dword [r13 + 8]
add qword [rbx + 0x2f8], rax
jmp 0x140180708
xor eax, eax
cmp dword [r13 + 4], eax
movsxd rax, dword [r13 + 8]
je 0x140185410
add qword [rbx + 0x2f0], rax
jmp 0x140180708
add qword [r14 + 0x58], rax
jmp 0x140180708
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov r9, qword [r14 + 0x110]
movsxd rcx, dword [r9 + 0x54]
lea rdx, [rcx + rcx*2]
mov rcx, qword [r9 + 0x10]
mov r8d, dword [rcx + rdx*8 + 4]
add r8d, dword [r13 + 4]
movsxd rcx, r8d
imul rdx, rcx, 0x38
mov rcx, rax
add rdx, qword [r9 + 0x20]
jmp 0x1401827b3
movsxd rax, dword [r13 + 4]
imul rbx, rax, 0x38
movsxd rax, dword [r13 + 8]
add rbx, r12
imul rdi, rax, 0x38
test byte [rbx + 8], cl
jne 0x14018547b
mov rcx, rbx
call fcn.140178e50
test eax, eax
jne 0x140186744
mov rdx, qword [rdi + r12]
mov rcx, qword [rbx + 0x10]
call fcn.1401655f4
jmp 0x14018270a
movsxd rax, dword [r13 + 0xc]
lea r9, [rbp + 0x18]
mov r10, qword [rsp + 0x38]
mov r8, qword [r13 + 0x10]
imul rdi, rax, 0x38
movsxd rax, dword [r13 + 4]
add r8, 4
mov rdx, qword [r10 + 0x20]
imul rbx, rax, 0x38
mov ecx, dword [rdi + r12]
movzx eax, word [r13 + 2]
add ecx, r11d
mov qword [rsp + 0x28], r9
add rbx, r12
mov r9d, dword [r13 + 8]
shl rax, 5
mov dword [rsp + 0x20], ecx
mov rcx, r10
mov rdx, qword [rax + rdx + 8]
call fcn.140177178
mov rsi, rax
mov eax, 0x2400
test word [rbx + 8], ax
je 0x1401854fc
mov rcx, rbx
call fcn.1401788b0
mov edx, 1
jmp 0x140185505
mov edx, 1
mov word [rbx + 8], dx
mov eax, dword [rbp + 0x18]
test eax, eax
je 0x14018553c
test rsi, rsi
je 0x140186744
dec eax
mov r9b, dl
movsxd rcx, eax
or r8, 0xffffffffffffffff
sub qword [rdi + r12], rcx
lea rax, [fcn.14015c434]
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov rdx, rsi
call fcn.140179098
mov eax, 2
test byte [rbx + 8], al
je 0x14018555e
mov sil, byte [rbp + 0x158]
cmp byte [rbx + 0xa], sil
je 0x14018555e
mov dl, sil
mov rcx, rbx
call fcn.14015ea04
mov rdi, qword [rsp + 0x40]
mov r11d, 1
mov rbx, qword [rsp + 0x38]
mov eax, dword [rbx + 0x198]
test eax, eax
jne 0x14018672d
mov rsi, qword [rbp - 0x68]
cmp qword [rbp - 8], rsi
jb 0x1401858a4
mov rdx, qword [rbx + 0x208]
test rdx, rdx
je 0x14018589e
mov eax, dword [rbx + 0x218]
mov rcx, qword [rbx + 0x210]
add rsi, rax
mov qword [rbp - 0x68], rsi
call rdx
test eax, eax
jne 0x1401866d7
cmp qword [rbp - 8], rsi
jae 0x14018558a
jmp 0x1401806e7
mov rcx, qword [r14 + 0x110]
test rcx, rcx
je 0x1401855ef
mov rax, qword [rcx + 8]
jmp 0x1401855dc
mov rcx, rax
mov rax, qword [rax + 8]
test rax, rax
jne 0x1401855d5
movsxd rax, dword [r13 + 4]
imul rdi, rax, 0x38
add rdi, qword [rcx + 0x20]
jmp 0x1401855fa
movsxd rax, dword [r13 + 4]
imul rdi, rax, 0x38
add rdi, r12
mov rcx, rdi
call fcn.140178ac8
movsxd rax, dword [r13 + 8]
imul rbx, rax, 0x38
add rbx, r12
mov rcx, rbx
call fcn.140178ac8
mov rax, qword [rbx]
mov esi, 4
mov rbx, qword [rsp + 0x38]
lea r11d, [rsi - 3]
cmp qword [rdi], rax
jge 0x140182a8a
mov qword [rdi], rax
jmp 0x14018140d
mov eax, 0xa9
cmp r8d, eax
ja 0x140185ac6
je 0x140185a94
mov eax, 0xa4
cmp r8d, eax
ja 0x140185973
je 0x140185688
sub r8d, 0x9f
je 0x1401858cb
sub r8d, 1
je 0x1401856cd
sub r8d, 1
je 0x1401856cd
sub r8d, 1
je 0x14018575b
cmp r8d, 1
jne 0x140180708
movsxd rax, dword [r13 + 4]
xor esi, esi
imul rbx, rax, 0x38
add rbx, r12
mov rcx, rbx
cmp dword [r13 + 0xc], esi
je 0x140185924
movsxd rax, dword [r13 + 0xc]
mov r8, qword [r13 + 0x10]
imul rdx, rax, 0x38
add rdx, r12
call fcn.140178840
mov r15d, eax
mov dword [rsp + 0x30], eax
movsxd rax, dword [r13 + 0xc]
imul rbx, rax, 0x38
add rbx, r12
jmp 0x140185934
movzx ebx, word [r13 + 2]
mov rsi, qword [rsp + 0x38]
mov edi, ebx
mov rcx, rsi
lea rdx, [rbx*8 + 0x68]
call fcn.14015c7e4
mov rdx, rax
xor eax, eax
test rdx, rdx
je 0x140186744
mov qword [rdx + 0x10], rax
lea r11d, [rax + 1]
add rdi, 6
mov rax, r13
lea rcx, [rdx + rdi*8]
mov rdi, qword [rsp + 0x40]
mov qword [rdx], rcx
sub rax, rdi
mov qword [rcx + 0x28], rsi
xor esi, esi
mov dword [rcx + 0x20], esi
mov word [rcx + 8], r11w
mov rcx, qword [r13 + 0x10]
mov qword [rdx + 8], rcx
movabs rcx, 0xaaaaaaaaaaaaaaab
mov qword [rdx + 0x18], r14
mov byte [rdx + 0x28], sil
mov dword [rdx + 0x24], esi
mov byte [rdx + 0x29], bl
sar rax, 3
imul rax, rcx
mov dword [rdx + 0x20], eax
mov word [r13], 0xf0a2
mov qword [r13 + 0x10], rdx
jmp 0x14018575d
xor esi, esi
movsxd rax, dword [r13 + 0xc]
mov rbx, qword [r13 + 0x10]
imul r8, rax, 0x38
add r8, r12
cmp qword [rbx + 0x10], r8
je 0x1401857b6
movzx eax, byte [rbx + 0x29]
mov edx, eax
mov qword [rbx + 0x10], r8
sub rdx, 1
lea r10d, [rax - 1]
js 0x1401857b6
lea r9, [rdx + 6]
mov edi, 8
lea r9, [rbx + r9*8]
mov eax, dword [r13 + 8]
add eax, r10d
sub r10d, r11d
cdqe
imul rcx, rax, 0x38
add rcx, r12
mov qword [r9], rcx
sub r9, rdi
sub rdx, r11
jns 0x140185793
mov rdi, qword [rsp + 0x40]
add dword [r8 + 0xc], r11d
mov rcx, rbx
lea r8, [rbx + 0x30]
mov rax, qword [rbx + 8]
movzx edx, byte [rbx + 0x29]
cmp dword [r13 + 4], esi
je 0x1401857d4
call qword [rax + 0x30]
jmp 0x1401857d7
call qword [rax + 0x18]
mov eax, dword [rbx + 0x24]
test eax, eax
je 0x1401858ae
jle 0x14018580c
mov rcx, qword [rbx]
mov edx, 1
call fcn.14017954c
mov r8, rax
lea rdx, [0x1404cf200]
mov rcx, r14
call fcn.140179ae8
mov r15d, dword [rbx + 0x24]
mov dword [rsp + 0x30], r15d
cmp byte [rbx + 0x28], sil
je 0x14018584c
cmp dword [r13 - 0x14], esi
je 0x140185848
movsxd rax, dword [r13 - 0x14]
imul rcx, rax, 0x38
mov eax, 0x2400
add rcx, r12
test word [rcx + 8], ax
je 0x14018583a
mov edx, 1
call fcn.140178d94
jmp 0x140185848
mov eax, 1
mov word [rcx + 8], 4
mov qword [rcx], rax
mov byte [rbx + 0x28], sil
mov rcx, qword [rbx]
mov edx, 0x2400
test word [rcx + 8], dx
jne 0x14018585f
cmp dword [rcx + 0x20], esi
je 0x140185869
call fcn.1401788ec
mov edx, 0x2400
mov rax, qword [rbx]
mov r11d, 1
mov word [rax + 8], r11w
mov dword [rbx + 0x24], esi
test r15d, r15d
je 0x140181a5f
mov rsi, qword [rsp + 0x48]
xor ebx, ebx
mov r12d, r11d
jmp 0x14018679a
mov r15d, dword [rsp + 0x30]
jmp 0x1401858a4
mov r15d, dword [rsp + 0x30]
mov r11d, 1
mov esi, 4
jmp 0x140182a8a
mov rbx, qword [rsp + 0x38]
jmp 0x14018589e
mov rbx, qword [rsp + 0x38]
jmp 0x1401858a4
mov rbx, rax
jmp 0x1401858a4
mov rbx, qword [rsp + 0x38]
jmp 0x140182a8a
movsxd rax, dword [r13 + 4]
mov rdx, r13
imul rbx, rax, 0x38
movsxd rax, dword [r13 + 0xc]
mov rcx, r14
imul rdi, rax, 0x38
call fcn.140180338
mov r8, qword [rbx + r12]
xor esi, esi
test r8, r8
jle 0x140185918
mov rdx, qword [rdi + r12]
test rdx, rdx
cmovle rdx, rsi
test rdx, rdx
js 0x140185913
movabs rcx, 0x7fffffffffffffff
sub rcx, r8
cmp rcx, rdx
jl 0x140185918
add r8, rdx
jmp 0x14018591c
or r8, 0xffffffffffffffff
mov qword [rax], r8
jmp 0x140181e01
mov rdx, qword [r13 + 0x10]
call fcn.140178798
mov r15d, eax
mov dword [rsp + 0x30], eax
test r15d, r15d
jne 0x1401866e7
lea eax, [r15 + 2]
test byte [rbx + 8], al
je 0x14018595e
mov sil, byte [rbp + 0x158]
cmp byte [rbx + 0xa], sil
je 0x14018595e
mov dl, sil
mov rcx, rbx
call fcn.14015ea04
mov rcx, rbx
call fcn.140178f10
test eax, eax
jne 0x14018670e
jmp 0x140180e38
sub r8d, 0xa5
je 0x140185a32
sub r8d, 1
je 0x140185a16
sub r8d, 1
je 0x1401859fa
cmp r8d, 1
jne 0x140180708
mov r8b, byte [r13 + 0xc]
test r8b, r8b
jne 0x1401859b1
mov eax, dword [rbx + 0x30]
bt rax, 0xa
jb 0x140181fc2
movsxd rax, dword [r13 + 4]
mov rcx, qword [rbx + 0x20]
mov edx, dword [r13 + 8]
shl rax, 5
mov rcx, qword [rax + rcx + 8]
call fcn.140177590
mov dword [rsp + 0x30], eax
mov r15d, eax
test eax, eax
je 0x1401806e7
cmp al, 6
jne 0x14018611a
mov r8, qword [r13 + 0x10]
lea rdx, [0x1404e2a18]
mov rcx, r14
call fcn.140179ae8
jmp 0x14018611a
mov rax, qword [r14 + 0x80]
movsxd rcx, dword [r13 + 4]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rcx + 0x30]
and byte [rax + 1], 0xbf
jmp 0x140180703
mov rax, qword [r14 + 0x80]
movsxd rcx, dword [r13 + 4]
mov rcx, qword [rax + rcx*8]
mov rax, qword [rcx + 0x30]
or byte [rax + 1], 0x40
jmp 0x140180703
xor esi, esi
cmp dword [r13 + 4], esi
jne 0x140185a73
mov rdx, qword [rbx + 8]
mov eax, dword [r13 + 8]
test rdx, rdx
je 0x1401860fd
lea r8d, [rax + 1]
mov eax, dword [rdx + 0xd0]
mov ecx, r8d
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [rdx + 0xd0], ecx
mov rdx, qword [rdx + 0x10]
test rdx, rdx
jne 0x140185a4f
jmp 0x140180fef
mov eax, dword [r14 + 0xd0]
mov ecx, dword [r13 + 8]
add ecx, r11d
xor ecx, eax
and ecx, 3
xor ecx, eax
mov dword [r14 + 0xd0], ecx
jmp 0x1401810fd
mov rbx, qword [r13 + 0x10]
mov rcx, qword [rsp + 0x38]
mov rdx, rbx
call fcn.1401c13fc
mov dword [rsp + 0x30], eax
mov r15d, eax
test rbx, rbx
je 0x140183b5f
mov rdx, qword [rbx + 0x10]
mov rcx, r14
call fcn.14017de68
jmp 0x140183b5f
mov eax, 0xaf
cmp r8d, eax
ja 0x140185e8d
je 0x140185dfe
sub r8d, 0xaa
je 0x140185d68
sub r8d, 1
je 0x140185d46
sub r8d, 1
je 0x140185cba
sub r8d, 1
je 0x140185c30
cmp r8d, 1
jne 0x140180708
mov rax, qword [r14 + 0x80]
xor esi, esi
movsxd rcx, dword [r13 + 4]
mov rdi, qword [rax + rcx*8]
movsxd rax, dword [r13 + 0xc]
imul rbx, rax, 0x38
add rbx, r12
cmp byte [rdi + 2], sil
je 0x140185b53
test word [rbx + 8], dx
je 0x140185b44
mov rcx, rbx
call fcn.1401788b0
jmp 0x140181e01
mov word [rbx + 8], r11w
mov rbx, qword [rsp + 0x38]
jmp 0x140183993
mov rax, qword [rdi + 0x30]
xorps xmm0, xmm0
mov rsi, qword [rax]
xor eax, eax
mov r14, qword [rsi]
movups xmmword [rbp + 0x40], xmm0
mov qword [rbp + 0x40], rbx
movups xmmword [rbp + 0x50], xmm0
mov qword [rbp + 0x70], rax
movups xmmword [rbp + 0x60], xmm0
test byte [r13 + 2], r11b
je 0x140185b8f
mov rcx, rbx
call fcn.140178d30
xor eax, eax
mov dword [rbx], eax
mov eax, 0x4001
jmp 0x140185b9f
movzx eax, word [rbx + 8]
mov ecx, 0x3e40
and ax, cx
or ax, r11w
mov word [rbx + 8], ax
lea rdx, [rbp + 0x40]
mov r8d, dword [r13 + 8]
mov rcx, qword [rdi + 0x30]
call qword [r14 + 0x58]
mov r14, qword [rbp + 0x150]
mov rdx, rsi
mov rcx, r14
mov dword [rsp + 0x30], eax
mov r15d, eax
call fcn.14017de68
xor esi, esi
cmp dword [rbp + 0x64], esi
jle 0x140185bf9
lea edx, [rsi + 1]
mov rcx, rbx
call fcn.14017954c
mov r8, rax
lea rdx, [0x1404cf200]
mov rcx, r14
call fcn.140179ae8
mov r15d, dword [rbp + 0x64]
mov dword [rsp + 0x30], r15d
mov eax, 2
test byte [rbx + 8], al
je 0x140185c1b
mov sil, byte [rbp + 0x158]
cmp byte [rbx + 0xa], sil
je 0x140185c1b
mov dl, sil
mov rcx, rbx
call fcn.14015ea04
mov rcx, rbx
call fcn.140178f10
test eax, eax
jne 0x14018670e
jmp 0x140180e2a
movsxd rcx, dword [r13 + 4]
mov rax, qword [r14 + 0x80]
mov rbx, qword [rax + rcx*8]
call fcn.1401d67b0
test eax, eax
jne 0x140186744
lea ecx, [rax + 0x10]
call fcn.14015c318
mov rdi, rax
test rax, rax
je 0x140186744
mov rcx, qword [rbx + 0x30]
mov qword [rax], rcx
movsxd rcx, dword [r13 + 0xc]
imul rdx, rcx, 0x38
mov rcx, r14
add rdx, r12
mov qword [rax + 8], rdx
mov rdx, r13
call fcn.140180338
mov rcx, rax
mov rbx, rax
mov word [rax + 8], 1
call fcn.1401788ec
lea rax, [0x1404e2700]
mov qword [rbx + 0x10], rdi
mov qword [rbx], rax
lea rax, [fcn.14015c434]
mov qword [rbx + 0x30], rax
mov word [rbx + 8], 0x8601
mov byte [rbx + 0xb], 0x70
jmp 0x140181e01
mov rax, qword [r13 + 0x10]
xor esi, esi
mov qword [rbp + 0x160], rsi
mov rbx, qword [rax + 0x10]
test rbx, rbx
je 0x140186393
mov rdi, qword [rbx]
test rdi, rdi
je 0x140186393
lea rdx, [rbp + 0x160]
mov rcx, rbx
call qword [rdi + 0x30]
mov rdx, rbx
mov rcx, r14
mov r15d, eax
mov dword [rsp + 0x30], eax
call fcn.14017de68
test r15d, r15d
jne 0x14018611a
mov rax, qword [rbp + 0x160]
lea r9d, [rsi + 2]
xor r8d, r8d
mov rcx, r14
mov qword [rax], rbx
mov edx, dword [r13 + 4]
call fcn.14017ffb4
mov rcx, qword [rbp + 0x160]
test rax, rax
je 0x140186728
lea r11d, [rsi + 1]
mov qword [rax + 0x30], rcx
add dword [rbx + 8], r11d
jmp 0x140180f89
add dword [rbx + 0xe8], r11d
mov rcx, rbx
mov r8, qword [r13 + 0x10]
mov edx, dword [r13 + 4]
call fcn.1401c1280
dec dword [rbx + 0xe8]
jmp 0x140180d3e
xorps xmm0, xmm0
lea rcx, [rbp - 0x60]
xor eax, eax
mov qword [rbp - 0x30], rax
movsxd rax, dword [r13 + 8]
imul rdx, rax, 0x38
movups xmmword [rbp - 0x40], xmm0
movups xmmword [rbp - 0x60], xmm0
movups xmmword [rbp - 0x50], xmm0
add rdx, r12
mov qword [rbp - 0x38], rbx
call fcn.140178fb4
mov edx, 1
mov dword [rsp + 0x30], eax
lea rcx, [rbp - 0x60]
mov r15d, eax
call fcn.14017954c
xor esi, esi
test rax, rax
je 0x140185dce
mov edx, dword [r13 + 4]
lea r9, [r14 + 0xb0]
mov r8, rax
mov rcx, rbx
call fcn.1401c0f18
mov r15d, eax
mov dword [rsp + 0x30], eax
mov edx, 0x2400
test word [rbp - 0x58], dx
jne 0x140185dde
cmp dword [rbp - 0x40], esi
je 0x140185dec
lea rcx, [rbp - 0x60]
call fcn.1401788ec
mov edx, 0x2400
test r15d, r15d
jne 0x14018611a
lea esi, [r15 + 4]
jmp 0x1401806f1
mov edi, dword [rbx + 0x30]
mov eax, 0x4000000
or qword [rbx + 0x30], rax
and edi, eax
mov rax, qword [r13 + 0x10]
mov rsi, qword [rax + 0x10]
movsxd rax, dword [r13 + 4]
imul rbx, rax, 0x38
add rbx, r12
test byte [rbx + 8], r9b
je 0x140185e41
cmp byte [rbx + 0xa], r11b
je 0x140185e41
mov dl, r11b
mov rcx, rbx
call fcn.14015ea04
mov r15d, eax
test eax, eax
jne 0x14018611a
mov rax, qword [rsi]
mov rcx, rsi
mov rdx, qword [rbx + 0x10]
call qword [rax + 0x98]
mov rbx, qword [rsp + 0x38]
mov r15d, eax
mov dword [rsp + 0x30], eax
test edi, edi
jne 0x140185e67
btr qword [rbx + 0x30], 0x1a
mov rdx, rsi
mov rcx, r14
call fcn.14017de68
and dword [r14 + 0xd0], 0xfffffffc
mov rdi, qword [rsp + 0x40]
test r15d, r15d
jne 0x140186383
jmp 0x1401806e7
sub r8d, 0xb0
je 0x140186082
sub r8d, 1
je 0x140186034
sub r8d, 1
je 0x140185ff7
cmp r8d, 1
jne 0x140180708
mov al, byte [rbx + 0x6e]
xor esi, esi
test al, 0x41
je 0x140185f9a
cmp byte [r14 + 0xcd], sil
jne 0x140185f9a
mov r9, qword [r13 + 0x10]
test r9, r9
jne 0x140185eeb
mov r9, qword [r14 + 0x100]
test r9, r9
je 0x140185f94
test al, 0x40
je 0x140185f21
mov rdx, r9
mov rcx, r14
call fcn.14017fc70
mov rbx, rax
mov rdx, rax
mov rax, qword [rsp + 0x38]
mov rcx, qword [rax + 0x100]
call qword [rax + 0xf8]
mov rcx, rbx
call fcn.14015c434
mov rbx, qword [rsp + 0x38]
jmp 0x140185f81
cmp dword [rbx + 0xe4], r11d
jle 0x140185f6e
mov r8, r9
lea rdx, [0x1404e2a38]
mov rcx, rbx
call fcn.14015e56c
mov rbx, rax
mov r9, rax
mov rax, qword [rsp + 0x38]
mov r8, r14
mov ecx, 1
mov rdx, qword [rax + 0x100]
call qword [rax + 0xf8]
mov rdx, rbx
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
call fcn.14015c518
jmp 0x140185f81
mov rdx, qword [rbx + 0x100]
mov r8, r14
mov ecx, r11d
call qword [rbx + 0xf8]
mov r10d, 8
mov edx, 0x2400
lea r11d, [r10 - 7]
lea ecx, [r10 + 8]
mov r9d, 2
mov eax, dword [r13 + 4]
cmp eax, dword [0x140515678]
jl 0x140185fe5
cmp byte [r13], 0xb3
je 0x140181fc2
mov edx, r11d
cmp dword [r14 + 0x98], r11d
jle 0x140185fe3
mov eax, 0x18
mov rcx, qword [r14 + 0x90]
cmp byte [rcx + rax], 0x11
jne 0x140185fd3
mov dword [rcx + rax + 4], esi
add edx, r11d
add rax, 0x18
cmp edx, dword [r14 + 0x98]
jl 0x140185fc2
mov eax, esi
inc eax
mov dword [r13 + 4], eax
add dword [r14 + 0xf4], r11d
jmp 0x1401817f6
movsxd rax, dword [r13 + 4]
mov rdx, r13
mov rcx, r12
imul rbx, rax, 0x38
call fcn.140180360
movsxd rcx, dword [rbx + r12 + 0xc]
xor edx, edx
div rcx
mov rcx, qword [rbx + r12 + 0x10]
mov r8, rdx
and edx, 7
shr r8, 3
movsx eax, byte [r8 + rcx]
bts eax, edx
mov byte [r8 + rcx], al
jmp 0x14018125f
mov rdx, r13
mov rcx, r14
call fcn.140180338
movsxd rdx, dword [r13 + 4]
mov rbx, rax
mov rax, qword [rsp + 0x38]
mov r8d, dword [r13 + 0xc]
shl rdx, 5
mov rcx, qword [rax + 0x20]
xor eax, eax
mov rcx, qword [rdx + rcx + 8]
mov edx, eax
test r8d, r8d
je 0x140186073
mov rdx, qword [rcx + 8]
mov edx, dword [rdx + 0x40]
cmp edx, r8d
cmovb edx, r8d
call fcn.14016f354
mov eax, eax
mov qword [rbx], rax
jmp 0x14018125f
mov rdx, r13
mov rcx, r14
call fcn.140180338
mov rcx, qword [rbx + 0x20]
movsxd rdx, dword [r13 + 4]
shl rdx, 5
mov rdx, qword [rdx + rcx + 8]
mov rcx, qword [rdx + 8]
mov edx, dword [rcx + 0x40]
jmp 0x140182580
mov r13, qword [rsp + 0x48]
mov r14, qword [rbp + 0x150]
jmp 0x140185b49
mov r15d, dword [rsp + 0x30]
mov r14, qword [rbp + 0x150]
mov rbx, qword [rsp + 0x38]
jmp 0x140181fc2
mov rbx, qword [rsp + 0x38]
mov esi, 4
mov edx, 0x2400
lea r10d, [rsi + 4]
jmp 0x140180708
mov rbx, qword [rsp + 0x38]
jmp 0x1401810fd
mov r12, qword [rsp + 0x50]
jmp 0x140180fef
mov esi, 4
jmp 0x14018208f
and eax, 0x100000
neg rax
sbb r15d, r15d
and r15d, 0xfffffffd
add r15d, 0xb
mov rsi, qword [rsp + 0x48]
xor ebx, ebx
jmp 0x140186794
mov rsi, qword [rsp + 0x48]
mov eax, 5
lea r12d, [rax - 4]
cmp r15b, al
jne 0x1401861d6
mov rbx, qword [rsp + 0x38]
mov rax, r13
sub rax, rdi
mov dword [r14 + 0x38], r15d
sar rax, 3
movabs rcx, 0xaaaaaaaaaaaaaaab
imul rax, rcx
mov dword [r14 + 0x34], eax
jmp 0x1401868ec
mov rdx, qword [r14 + 0xb0]
mov rcx, rbx
call fcn.14015c518
lea rdx, [0x1404e2940]
mov rcx, rbx
call fcn.14015c9bc
mov qword [r14 + 0xb0], rax
mov rax, qword [rbx + 0x20]
movsxd rdx, dword [r13 + 4]
mov rcx, rdx
shl rcx, 5
mov rcx, qword [rcx + rax + 0x18]
mov eax, dword [rbp + 0x160]
cmp dword [rcx], eax
je 0x1401861b2
mov rcx, rbx
call fcn.14019a244
mov eax, dword [r14 + 0xd0]
mov r12d, 1
and eax, 0xfffffffd
or eax, r12d
mov dword [r14 + 0xd0], eax
lea r15d, [r12 + 0x10]
mov rsi, qword [rsp + 0x48]
xor ebx, ebx
jmp 0x14018679a
mov r8, qword [rsp + 0x38]
mov ebx, dword [r13 + 4]
mov ecx, dword [r13 + 8]
lea rdi, [r8 + 0x65]
movzx eax, byte [rdi]
cmp ebx, eax
je 0x1401862cf
test ecx, ecx
je 0x140186215
mov edx, 0x204
mov rcx, r8
call fcn.1401d7b7c
mov r12d, 1
mov al, r12b
jmp 0x14018625a
test ebx, ebx
je 0x14018623c
cmp dword [r8 + 0xe0], esi
jle 0x14018623c
lea rdx, [0x1404e2878]
mov rcx, r14
call fcn.140179ae8
mov r15d, 5
jmp 0x14018611a
mov edx, r11d
mov rcx, r14
call fcn.14017c310
mov r15d, eax
mov r12d, 1
test eax, eax
jne 0x1401868db
mov al, bl
mov rcx, r14
mov byte [rdi], al
call fcn.14017c360
mov ecx, 5
cmp eax, ecx
jne 0x1401862ac
mov rdi, qword [rsp + 0x40]
mov rax, r13
sub rax, rdi
movabs rdx, 0xaaaaaaaaaaaaaaab
sar rax, 3
mov r15d, ecx
imul rax, rdx
mov dword [r14 + 0x34], eax
mov eax, r12d
sub al, bl
mov rbx, qword [rsp + 0x38]
mov byte [rbx + 0x65], al
mov dword [r14 + 0x38], ecx
mov rsi, qword [rsp + 0x48]
jmp 0x1401868f1
mov rbx, qword [rsp + 0x38]
mov rcx, rbx
call fcn.1401d75b0
mov eax, dword [r14 + 0x38]
neg eax
sbb r15d, r15d
and r15d, 0xffffff9c
add r15d, 0x65
jmp 0x1401868e7
test ecx, ecx
lea rax, [0x1404e28e0]
lea rdx, [0x1404e2910]
mov rcx, r14
cmovne rdx, rax
test ebx, ebx
lea rax, [0x1404e28b0]
cmove rdx, rax
call fcn.140179ae8
mov r12d, 1
mov r15d, r12d
jmp 0x1401861d1
lea rdx, [0x1404e27f0]
jmp 0x140186229
lea rdx, [0x1404e2840]
mov rcx, r14
call fcn.140179ae8
mov r15d, 5
jmp 0x1401861d1
mov rsi, qword [rsp + 0x48]
movabs rdx, 0xaaaaaaaaaaaaaaab
mov rdi, qword [rsp + 0x40]
mov rax, rsi
sub rax, rdi
mov r15d, ecx
sar rax, 3
imul rax, rdx
xor r13d, r13d
mov dword [r14 + 0x34], eax
mov byte [rbx + 0x65], r13b
mov dword [r14 + 0x38], ecx
jmp 0x1401868f4
movzx eax, byte [r13 + 2]
mov ecx, 5
cmp word [r13 + 2], cx
mov ecx, 2
cmove eax, ecx
mov byte [r14 + 0xca], al
mov rsi, qword [rsp + 0x48]
xor ebx, ebx
lea r12d, [rbx + 1]
jmp 0x14018679f
mov r15d, 6
jmp 0x14018611a
mov r14, qword [rbp + 0x150]
lea rax, [0x1404e29d0]
cmp ebx, edx
lea r8, [0x1404e29d8]
mov r12d, 1
lea rdx, [0x1404e29e0]
cmove r8, rax
mov r15d, r12d
mov rcx, r14
call fcn.140179ae8
jmp 0x1401861d1
mov r15d, 0x14
jmp 0x14018611a
mov r9d, 0x16936
lea rax, [0x1404e09e4]
mov ecx, 0xb
lea r8, [0x1404e76b0]
mov qword [rsp + 0x20], rax
lea rdx, [0x1404e7690]
call fcn.14015e6dc
mov r15d, 0xb
jmp 0x14018611a
mov r9d, 0x16e22
jmp 0x1401863e7
lea rdx, [0x1404e29a8]
mov rcx, r14
mov r15d, r11d
call fcn.140179ae8
jmp 0x14018611a
mov dword [r14 + 0x38], edx
mov al, byte [r13 + 8]
mov byte [r14 + 0xca], al
mov dword [r14 + 0x34], ebx
test edx, edx
je 0x1401864da
mov rcx, r14
cmp word [r13 + 2], si
je 0x1401864a4
movzx r8d, word [r13 + 2]
lea rax, [0x140000000]
lea rdx, [0x1404e2788]
mov r8, qword [rax + r8*8 + 0x4d42d0]
call fcn.140179ae8
mov r9, qword [r13 + 0x10]
test r9, r9
je 0x1401864b4
mov r8, qword [r14 + 0xb0]
lea rdx, [0x1404e27a0]
mov rcx, qword [rsp + 0x38]
call fcn.14015e56c
mov qword [r14 + 0xb0], rax
jmp 0x1401864b4
mov r8, qword [r13 + 0x10]
lea rdx, [0x1404cf200]
call fcn.140179ae8
mov rax, qword [r14 + 0xb0]
lea rdx, [0x1404e27a8]
mov r9, qword [r14 + 0x100]
mov r8d, ebx
mov ecx, dword [r13 + 4]
mov qword [rsp + 0x20], rax
call fcn.14015e6dc
mov rcx, r14
call fcn.14017c360
mov rsi, qword [rsp + 0x48]
mov r15d, eax
mov rbx, qword [rsp + 0x38]
mov eax, 5
mov rdi, qword [rsp + 0x40]
lea r12d, [rax - 4]
cmp r15d, eax
jne 0x14018650b
mov dword [r14 + 0x38], eax
jmp 0x1401868f1
mov eax, dword [r14 + 0x38]
neg eax
sbb r15d, r15d
and r15d, 0xffffff9c
add r15d, 0x65
jmp 0x1401868f1
mov eax, dword [r14 + 0x30]
xor r15d, r15d
add eax, r9d
mov edi, r15d
or eax, r11d
mov dword [r14 + 0x30], eax
movsxd rax, dword [r13 + 4]
imul rsi, rax, 0x38
add rsi, r12
mov qword [r14 + 0xa8], rsi
cmp dword [r13 + 8], r15d
jle 0x1401865b0
lea rbx, [rsi + 8]
mov eax, 0x1000
test word [rbx], ax
je 0x14018657a
movsxd rax, edi
imul rcx, rax, 0x38
add rcx, rsi
call fcn.140178628
test eax, eax
jne 0x140186744
lea r11d, [rax + 1]
lea r9d, [rax + 2]
movzx eax, word [rbx]
mov ecx, 0x202
and ax, cx
cmp ax, r9w
jne 0x14018659e
lea rcx, [rbx - 8]
call fcn.1401785cc
mov r11d, 1
lea r9d, [r11 + 1]
add edi, r11d
add rbx, 0x38
cmp edi, dword [r13 + 8]
jl 0x140186551
mov rbx, qword [rsp + 0x38]
cmp byte [rbx + 0x67], r15b
jne 0x140186749
mov eax, 4
test byte [rbx + 0x6e], al
je 0x1401865d9
mov rdx, qword [rbx + 0x100]
xor r9d, r9d
mov r8, r14
mov ecx, eax
call qword [rbx + 0xf8]
mov rdi, qword [rsp + 0x40]
mov r12d, 1
mov rax, r13
movabs rcx, 0xaaaaaaaaaaaaaaab
sub rax, rdi
sar rax, 3
imul rax, rcx
lea r15d, [r12 + 0x63]
add eax, r12d
mov dword [r14 + 0x34], eax
jmp 0x1401862a2
movsxd rax, ebx
mov rcx, rsi
lea rdi, [rax + rax*2]
mov ebx, dword [r14 + rdi*8 + 8]
shr ebx, 4
and ebx, 0xf
sub ebx, r11d
call fcn.1401803e4
mov r8, rax
lea rdx, [0x1404e27c0]
mov rax, qword [r14 + rdi*8]
mov r14, qword [rbp + 0x150]
mov qword [rsp + 0x28], rax
mov rcx, r14
mov rax, qword [r15]
mov qword [rsp + 0x20], rax
lea rax, [0x140000000]
mov r9, qword [rax + rbx*8 + 0x516f80]
call fcn.140179ae8
mov r15d, 0xc13
jmp 0x14018611a
mov ecx, 0x160d3
call fcn.1401d9fb8
mov r15d, eax
jmp 0x14018611a
mov r15d, 0x204
jmp 0x14018611a
mov rcx, qword [rbx + 0x10]
call fcn.14016ef24
jmp 0x14018611a
mov rsi, qword [rsp + 0x48]
mov r15d, 6
mov byte [r14 + 0xca], 2
xor ebx, ebx
mov r12, rax
jmp 0x14018679a
mov r15d, 7
mov rbx, rdi
mov rcx, rbx
call fcn.14019a2cc
mov rsi, qword [rsp + 0x48]
cmp r15d, 7
je 0x14018674e
jmp 0x14018611f
or qword [rbp - 0x68], 0xffffffffffffffff
mov r15d, 9
jmp 0x14018611a
mov r12d, 1
mov rcx, rbx
mov dl, r12b
call fcn.14017954c
mov r8, rax
lea rdx, [0x1404cf200]
jmp 0x1401863c9
mov r14, qword [rbp + 0x150]
lea rdx, [0x1404e26e8]
mov rcx, r14
call fcn.140179ae8
mov r15d, 0x12
jmp 0x14018611a
call qword [rdi + 0x38]
jmp 0x140186744
mov rsi, qword [rsp + 0x48]
mov r15d, 9
jmp 0x14018611f
mov r14, qword [rbp + 0x150]
mov rbx, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x48]
mov rcx, rbx
call fcn.14015cb0c
lea rdx, [0x1404dcbd0]
mov rcx, r14
call fcn.140179ae8
mov r15d, 7
jmp 0x14018611f
mov rsi, qword [rsp + 0x48]
jmp 0x140186794
mov rsi, qword [rsp + 0x48]
xor ebx, ebx
mov r12, r11
jmp 0x14018679f
mov r15d, dword [rsp + 0x30]
jmp 0x140181471
mov r14, qword [rbp + 0x150]
mov r12d, 1
mov rdi, qword [rsp + 0x40]
mov r13, qword [rsp + 0x38]
cmp byte [r13 + 0x67], bl
je 0x1401867b2
mov r15d, 7
jmp 0x1401867eb
cmp r15d, 0x210a
jne 0x1401867eb
lea rax, [0x1404e09e4]
mov r9d, 0x176af
lea r8, [0x1404e76b0]
mov qword [rsp + 0x20], rax
lea rdx, [0x1404e7690]
mov ecx, 0xb
call fcn.14015e6dc
mov r15d, 0xb
lea rbx, [r14 + 0xb0]
xor eax, eax
cmp qword [rbx], rax
jne 0x14018681c
cmp r15d, 0xc0a
je 0x14018681c
mov ecx, r15d
call fcn.1401d7cc8
mov r8, rax
lea rdx, [0x1404cf200]
mov rcx, r14
call fcn.140179ae8
mov dword [r14 + 0x38], r15d
mov rax, rbx
cmp r15d, 0xc0a
je 0x14018684a
movzx ecx, r15b
cmp ecx, 0xe
je 0x14018683a
cmp ecx, 0xa
jne 0x14018684a
mov rcx, qword [r13]
call fcn.14015b91c
mov dword [r13 + 0x5c], eax
mov rax, rbx
mov rax, qword [rax]
lea rdx, [0x1404e2a40]
mov r9, qword [r14 + 0x100]
movabs rcx, 0xaaaaaaaaaaaaaaab
mov r8, rsi
mov qword [rsp + 0x20], rax
sub r8, rdi
sar r8, 3
imul r8, rcx
mov ecx, r15d
call fcn.14015e6dc
mov rcx, r14
call fcn.14017c360
mov rbx, r13
cmp r15d, 0xc0a
jne 0x1401868bc
mov rcx, r13
call fcn.14015cb0c
xor r13d, r13d
movzx eax, byte [rbp + 0x168]
mov r15d, r12d
test al, al
je 0x1401868f4
mov edx, eax
mov rcx, rbx
sub edx, r12d
call fcn.14019a244
jmp 0x1401868f4
cmp r15d, 0xb
jne 0x14018689c
xor r13d, r13d
cmp byte [rbx + 0x65], r13b
jne 0x14018689f
movabs rax, 0x200000000
or qword [rbx + 0x30], rax
jmp 0x14018689f
mov rbx, qword [rsp + 0x38]
jmp 0x1401868e7
mov r15d, dword [rsp + 0x30]
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
xor r13d, r13d
mov rcx, qword [rbp - 0x68]
mov rax, qword [rbp - 8]
cmp rax, rcx
jb 0x140186937
mov rdx, qword [rbx + 0x208]
test rdx, rdx
je 0x140186937
mov eax, dword [rbx + 0x218]
add rcx, rax
mov qword [rbp - 0x68], rcx
mov rcx, qword [rbx + 0x210]
call rdx
test eax, eax
je 0x1401868f4
or qword [rbp - 0x68], 0xffffffffffffffff
xor ebx, ebx
lea r15d, [rbx + 9]
jmp 0x14018679f
add dword [r14 + 0xec], eax
cmp dword [r14 + 0xd8], r13d
je 0x14018694f
mov rcx, r14
call fcn.14017addc
lea r11, [rsp + 0x208]
mov eax, r15d
movaps xmm6, xmmword [r11 - 0x18]
movaps xmm7, xmmword [r11 - 0x28]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret