Function at 0x180022ba0
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xbf0
mov qword [rsp + 0xd8], 0xfffffffffffffffe
mov rax, qword [0x1800523d0]
xor rax, rsp
mov qword [rsp + 0xbe0], rax
mov r13, r9
mov qword [rsp + 0xb0], r9
mov qword [rsp + 0x70], r8
mov qword [rsp + 0x68], rdx
mov r15, rcx
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0xa0], r9
mov rax, qword [rsp + 0xc58]
mov qword [rsp + 0x48], rax
mov r14, qword [rsp + 0xc60]
mov qword [rsp + 0x78], r14
mov rax, qword [rsp + 0xc68]
mov qword [rsp + 0x300], rax
mov rcx, qword [rsp + 0xc70]
mov qword [rsp + 0x98], rcx
mov rbx, qword [rsp + 0xc78]
mov qword [rsp + 0xa8], rbx
xor esi, esi
mov dword [rsp + 0x50], esi
xor r8d, r8d
lea rdx, [0x180040ce8]
mov rcx, rax
call fcn.18000da50
xor r8d, r8d
lea rdx, [0x180040ce8]
mov rcx, rbx
call fcn.18000da50
mov dword [rsp + 0x60], 0xfffffffb
mov qword [rsp + 0x228], select
mov qword [rsp + 0x220], rsi
mov byte [rsp + 0x210], sil
mov rbx, qword [r14 + 0x10]
mov rdi, qword [r14 + 0x18]
cmp rdi, 0x10
jb 0x180022ca1
mov rcx, qword [r14]
jmp 0x180022ca4
mov rcx, r14
mov r8d, 7
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x180022cba
mov eax, esi
jmp 0x180022cc6
lea rdx, [0x180042b58]
call fcn.1800385be
cdqe
test rax, rax
jne 0x180022ce5
cmp rbx, 7
jae 0x180022cdc
or r12, 0xffffffffffffffff
mov eax, r12d
jmp 0x180022ce9
mov eax, esi
cmp rbx, 7
setne al
or r12, 0xffffffffffffffff
test eax, eax
sete al
test al, al
jne 0x180022d4b
cmp rdi, 0x10
jb 0x180022cfd
mov rcx, qword [r14]
jmp 0x180022d00
mov rcx, r14
mov r8d, 8
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x180022d16
mov eax, esi
jmp 0x180022d22
lea rdx, [0x180042b60]
call fcn.1800385be
cdqe
test rax, rax
jne 0x180022d3d
cmp rbx, 8
jae 0x180022d34
mov eax, r12d
jmp 0x180022d3d
mov eax, esi
cmp rbx, 8
setne al
test eax, eax
sete al
test al, al
mov byte [rsp + 0x40], 0
je 0x180022d50
mov byte [rsp + 0x40], 1
mov rax, r12
inc rax
cmp byte [r15 + rax], 0
jne 0x180022d53
cmp rax, 3
jae 0x180022d94
mov dword [r13 + 0x170], 0xfffffffa
mov qword [rsp + 0x228], select
mov qword [rsp + 0x220], rsi
mov byte [rsp + 0x210], 0
mov eax, 0xfffffffa
jmp 0x18002530f
mov rcx, r13
call sym.ftLensDistortion64.aex_aescriptsInitLicenseData
xor eax, eax
mov qword [rsp + 0x320], rax
mov qword [rsp + 0x328], rax
mov qword [rsp + 0x330], rax
mov qword [rsp + 0x338], rax
mov qword [rsp + 0x340], rax
mov qword [rsp + 0x348], rax
mov qword [rsp + 0x350], rax
mov dword [rsp + 0x358], eax
lea rcx, [rsp + 0x320]
call fcn.18001f0e0
test al, al
jne 0x180022e37
mov dword [r13 + 0x170], 0xfffffff2
cmp qword [rsp + 0x228], 0x10
jb 0x180022e11
mov rcx, qword [rsp + 0x210]
call fcn.180038426
mov qword [rsp + 0x228], select
mov qword [rsp + 0x220], rsi
mov byte [rsp + 0x210], 0
mov eax, 0xfffffff2
jmp 0x18002530f
mov qword [rsp + 0x268], select
mov qword [rsp + 0x260], rsi
mov byte [rsp + 0x250], 0
mov byte [rsp + 0x3e0], 0
xor edx, edx
mov r8d, 0x3ff
lea rcx, [rsp + 0x3e1]
call fcn.1800385ca
mov dword [rsp + 0x44], esi
mov qword [rsp + 0x208], select
mov qword [rsp + 0x200], rsi
mov byte [rsp + 0x1f0], 0
mov r8d, 2
lea rdx, [0x180042b50]
lea rcx, [rsp + 0x1f0]
call fcn.18000da50
nop
lea r8, [rsp + 0x1f0]
lea rdx, [0x18004297c]
lea rcx, [rsp + 0x270]
call fcn.18000b8e0
nop
cmp qword [rsp + 0x208], 0x10
jb 0x180022ee0
mov rcx, qword [rsp + 0x1f0]
call fcn.180038426
mov qword [rsp + 0x208], select
mov qword [rsp + 0x200], rsi
mov byte [rsp + 0x1f0], 0
lea r8, [0x180042b6c]
mov rdx, r14
lea rcx, [rsp + 0x230]
call fcn.18000b800
nop
mov r9d, 5
xor r8d, r8d
lea rdx, [rsp + 0x290]
lea rcx, [rsp + 0x230]
call fcn.18000fe00
mov rbx, rax
lea rax, [rsp + 0x230]
cmp rax, rbx
je 0x180022f86
cmp qword [rsp + 0x248], 0x10
jb 0x180022f5a
mov rcx, qword [rsp + 0x230]
call fcn.180038426
mov qword [rsp + 0x248], select
mov qword [rsp + 0x240], rsi
mov byte [rsp + 0x230], 0
mov rdx, rbx
lea rcx, [rsp + 0x230]
call fcn.18000d090
cmp qword [rsp + 0x2a8], 0x10
jb 0x180022f9e
mov rcx, qword [rsp + 0x290]
call fcn.180038426
xor r15b, r15b
lea rcx, [rsp + 0x230]
mov rdi, qword [rsp + 0x230]
mov r14, qword [rsp + 0x248]
cmp r14, 0x10
cmovae rcx, rdi
mov r8d, 5
mov rbx, qword [rsp + 0x240]
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x180022fdf
mov eax, esi
jmp 0x180022feb
lea rdx, [0x180042b74]
call fcn.1800385be
cdqe
test rax, rax
jne 0x180023006
cmp rbx, 5
jae 0x180022ffd
mov eax, r12d
jmp 0x180023006
mov eax, esi
cmp rbx, 5
setne al
test eax, eax
sete al
mov r8d, 5
test al, al
je 0x180023351
mov r15b, 1
mov r9, r12
lea rdx, [rsp + 0x1f0]
mov r14, qword [rsp + 0x78]
mov rcx, r14
call fcn.18000fe00
nop
mov ebx, dword [rsp + 0x200]
mov dword [rsp + 0x44], ebx
xor edx, edx
mov r8d, 0x400
lea rcx, [rsp + 0x3e0]
call fcn.1800385ca
mov dword [rsp + 0x2f8], 0x3ff
mov dword [rsp + 0x2f0], ebx
lea rax, [rsp + 0x2f8]
lea rcx, [rsp + 0x2f0]
cmp ebx, 0x3ff
cmovle rax, rcx
lea rdx, [rsp + 0x1f0]
cmp qword [rsp + 0x208], 0x10
cmovae rdx, qword [rsp + 0x1f0]
movsxd r8, dword [rax]
lea rcx, [rsp + 0x3e0]
call qword [0x18003e548]
movzx ecx, byte [rsp + 0x3e0]
mov byte [r13 + 0x133], cl
movzx r9d, byte [rsp + 0x3e1]
mov byte [r13 + 0x134], r9b
movzx r10d, byte [rsp + 0x3e2]
mov byte [r13 + 0x135], r10b
movzx eax, byte [rsp + 0x3e3]
mov byte [r13 + 0x136], al
movzx eax, byte [rsp + 0x3e4]
mov byte [r13 + 0x137], al
lea rax, [rsp + 0x270]
mov rdx, qword [rsp + 0x270]
mov r8, qword [rsp + 0x288]
cmp r8, 0x10
cmovae rax, rdx
cmp cl, byte [rax]
jne 0x180023311
lea rax, [rsp + 0x270]
cmp r8, 0x10
cmovae rax, rdx
cmp r9b, byte [rax + 1]
jne 0x180023311
lea rax, [rsp + 0x270]
cmp r8, 0x10
cmovae rax, rdx
cmp r10b, byte [rax + 2]
jne 0x180023311
mov byte [r13 + 0x138], 0
movzx eax, byte [rsp + 0x3e5]
mov byte [r13 + 0x128], al
movzx eax, byte [rsp + 0x3e6]
mov byte [r13 + 0x129], al
movzx eax, byte [rsp + 0x3e7]
mov byte [r13 + 0x12a], al
movzx eax, byte [rsp + 0x3e8]
mov byte [r13 + 0x12b], al
movzx eax, byte [rsp + 0x3e9]
mov byte [r13 + 0x12c], al
movzx eax, byte [rsp + 0x3ea]
mov byte [r13 + 0x12d], al
movzx eax, byte [rsp + 0x3eb]
mov byte [r13 + 0x12e], al
movzx eax, byte [rsp + 0x3ec]
mov byte [r13 + 0x12f], al
movzx eax, byte [rsp + 0x3ed]
mov byte [r13 + 0x130], al
movzx eax, byte [rsp + 0x3ee]
mov byte [r13 + 0x131], al
lea rax, [r13 + 0x128]
mov ecx, 0xb
nop
cmp byte [rax], 0x7c
jne 0x180023208
mov byte [rax], 0
inc rax
dec rcx
jne 0x180023200
mov r9, r12
lea r8d, [rcx + 0xf]
lea rdx, [rsp + 0x290]
lea rcx, [rsp + 0x1f0]
call fcn.18000fe00
mov rbx, rax
lea rax, [rsp + 0x1f0]
cmp rax, rbx
je 0x180023280
cmp qword [rsp + 0x208], 0x10
jb 0x180023254
mov rcx, qword [rsp + 0x1f0]
call fcn.180038426
mov qword [rsp + 0x208], select
mov qword [rsp + 0x200], rsi
mov byte [rsp + 0x1f0], 0
mov rdx, rbx
lea rcx, [rsp + 0x1f0]
call fcn.18000d090
cmp qword [rsp + 0x2a8], 0x10
jb 0x180023298
mov rcx, qword [rsp + 0x290]
call fcn.180038426
mov edi, dword [rsp + 0x200]
mov dword [rsp + 0x44], edi
xor edx, edx
mov r8d, 0x400
lea rcx, [rsp + 0x3e0]
call fcn.1800385ca
mov dword [rsp + 0x2f8], 0x3ff
mov dword [rsp + 0x2f0], edi
lea rax, [rsp + 0x2f8]
lea rcx, [rsp + 0x2f0]
cmp edi, 0x3ff
cmovle rax, rcx
lea rdx, [rsp + 0x1f0]
cmp qword [rsp + 0x208], 0x10
cmovae rdx, qword [rsp + 0x1f0]
movsxd r8, dword [rax]
lea rcx, [rsp + 0x3e0]
call qword [0x18003e548]
jmp 0x180023319
mov byte [r13 + 0x133], 0
mov r9, r12
xor r8d, r8d
lea rdx, [rsp + 0x1f0]
lea rcx, [rsp + 0x210]
call fcn.18000d920
nop
cmp qword [rsp + 0x208], 0x10
jb 0x18002371a
mov rcx, qword [rsp + 0x1f0]
jmp 0x180023715
lea rcx, [rsp + 0x230]
cmp r14, 0x10
cmovae rcx, rdi
cmp rbx, r8
cmovb r8, rbx
test r8, r8
jne 0x180023371
mov eax, esi
jmp 0x18002337d
lea rdx, [0x180042b7c]
call fcn.1800385be
cdqe
test rax, rax
jne 0x180023398
cmp rbx, 5
jae 0x18002338f
mov eax, r12d
jmp 0x180023398
mov eax, esi
cmp rbx, 5
setne al
test eax, eax
sete al
test al, al
je 0x18002343e
mov r15b, 1
mov byte [r13 + 0x133], 0
mov r9, r12
mov r8d, 5
lea rdx, [rsp + 0x290]
mov r14, qword [rsp + 0x78]
mov rcx, r14
call fcn.18000fe00
mov rbx, rax
lea rax, [rsp + 0x210]
cmp rax, rbx
je 0x180023422
cmp qword [rsp + 0x228], 0x10
jb 0x1800233f6
mov rcx, qword [rsp + 0x210]
call fcn.180038426
mov qword [rsp + 0x228], select
mov qword [rsp + 0x220], rsi
mov byte [rsp + 0x210], 0
mov rdx, rbx
lea rcx, [rsp + 0x210]
call fcn.18000d090
cmp qword [rsp + 0x2a8], 0x10
jb 0x18002371a
mov rcx, qword [rsp + 0x290]
jmp 0x180023715
mov rbx, qword [rsp + 0x58]
mov rdx, rbx
lea rcx, [rsp + 0x2d0]
call fcn.18000bc20
mov byte [rsp + 0x20], 0
xor r9d, r9d
lea r8, [rsp + 0x250]
xor edx, edx
mov rcx, rax
call fcn.180020120
mov edx, 1
lea rcx, [rsp + 0xe0]
call fcn.180012e00
nop
lea rdx, [rsp + 0x250]
cmp qword [rsp + 0x268], 0x10
cmovae rdx, qword [rsp + 0x250]
mov r9d, 0x40
lea r8d, [r9 - 0x1f]
lea rcx, [rsp + 0xf0]
call fcn.180027c60
xor r8d, r8d
test rax, rax
mov rax, qword [rsp + 0xe0]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0xe0]
jne 0x1800234d9
lea edx, [r8 + 2]
call qword [0x18003e1e0]
jmp 0x1800234e1
xor edx, edx
call qword [0x18003e1e8]
cmp qword [rsp + 0x180], 0
jne 0x18002358a
mov rdx, rbx
lea rcx, [rsp + 0x2d0]
call fcn.18000bc20
mov byte [rsp + 0x20], 0
xor r9d, r9d
lea r8, [rsp + 0x250]
mov dl, 1
mov rcx, rax
call fcn.180020120
lea rdx, [rsp + 0x250]
cmp qword [rsp + 0x268], 0x10
cmovae rdx, qword [rsp + 0x250]
mov r9d, 0x40
lea r8d, [r9 - 0x1f]
lea rcx, [rsp + 0xf0]
call fcn.180027c60
xor r8d, r8d
test rax, rax
mov rax, qword [rsp + 0xe0]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0xe0]
jne 0x180023573
lea edx, [r8 + 2]
call qword [0x18003e1e0]
jmp 0x18002357b
xor edx, edx
call qword [0x18003e1e8]
cmp qword [rsp + 0x180], 0
je 0x180023701
mov r15b, 1
xor edx, edx
lea r8d, [rdx + 2]
lea rcx, [rsp + 0xe0]
call qword [0x18003e168]
lea rdx, [rsp + 0x1f0]
lea rcx, [rsp + 0xe0]
call qword [0x18003e160]
mov edi, dword [rax + 8]
add edi, dword [rax]
mov dword [rsp + 0x44], edi
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0xe0]
call qword [0x18003e168]
test edi, edi
je 0x1800250fe
lea rbx, [r13 + 0x133]
mov r8d, 5
mov rdx, rbx
lea rcx, [rsp + 0xe0]
call qword [0x18003e170]
lea rax, [rsp + 0x270]
mov rcx, qword [rsp + 0x270]
mov rdx, qword [rsp + 0x288]
cmp rdx, 0x10
cmovae rax, rcx
movzx eax, byte [rax]
cmp byte [rbx], al
jne 0x18002369e
lea rax, [rsp + 0x270]
cmp rdx, 0x10
cmovae rax, rcx
movzx eax, byte [rax + 1]
cmp byte [r13 + 0x134], al
jne 0x18002369e
lea rax, [rsp + 0x270]
cmp rdx, 0x10
cmovae rax, rcx
movzx eax, byte [rax + 2]
cmp byte [r13 + 0x135], al
jne 0x18002369e
mov byte [r13 + 0x138], 0
lea rbx, [r13 + 0x128]
mov r8d, 0xa
mov rdx, rbx
lea rcx, [rsp + 0xe0]
call qword [0x18003e170]
mov ecx, 0xb
cmp byte [rbx], 0x7c
jne 0x18002368d
mov byte [rbx], 0
inc rbx
dec rcx
jne 0x180023685
add edi, 0xfffffff1
mov dword [rsp + 0x44], edi
jmp 0x1800236b4
mov byte [rbx], 0
xor r8d, r8d
xor edx, edx
lea rcx, [rsp + 0xe0]
call qword [0x18003e168]
mov r8d, edi
lea rdx, [rsp + 0x3e0]
lea rcx, [rsp + 0xe0]
call qword [0x18003e170]
lea rcx, [rsp + 0xf0]
call fcn.180017700
test rax, rax
jne 0x180023701
mov rax, qword [rsp + 0xe0]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0xe0]
xor r8d, r8d
lea edx, [r8 + 2]
call qword [0x18003e1e0]
nop
lea rcx, [rsp + 0xe0]
call fcn.1800142b0
mov r14, qword [rsp + 0x78]
jmp 0x18002371a
call fcn.180038426
movzx ebx, byte [rsp + 0x40]
test bl, bl
je 0x1800237f1
mov qword [rsp + 0x208], select
mov qword [rsp + 0x200], rsi
mov byte [rsp + 0x1f0], 0
cmp byte [rsp + 0x3e0], 0
jne 0x180023752
mov r8, rsi
jmp 0x18002376a
lea rax, [rsp + 0x3e0]
mov r8, r12
nop dword [rax]
inc r8
cmp byte [rax + r8], 0
jne 0x180023760
lea rdx, [rsp + 0x3e0]
lea rcx, [rsp + 0x1f0]
call fcn.18000da50
lea rdx, [rsp + 0x1f0]
mov rcx, r14
call fcn.18000bd70
cmp qword [rsp + 0x208], 0x10
jb 0x1800237a7
mov rcx, qword [rsp + 0x1f0]
call fcn.180038426
mov qword [rsp + 0x20], rsi
lea r9, [0x180040ce8]
mov r8, qword [rsp + 0x220]
xor edx, edx
lea rcx, [rsp + 0x210]
call fcn.18000e500
test eax, eax
je 0x1800237f1
lea rax, [rsp + 0x210]
cmp r14, rax
je 0x1800237f1
mov r9, r12
xor r8d, r8d
lea rdx, [rsp + 0x210]
mov rcx, r14
call fcn.18000d920
xor r8d, r8d
lea rdx, [0x180040ce8]
mov rcx, qword [rsp + 0x48]
call fcn.18000da50
test r15b, r15b
je 0x180024dc7
mov ebx, dword [rsp + 0x44]
test ebx, ebx
je 0x180024dc2
mov ecx, esi
lea rdx, [r13 + 0x128]
movzx eax, byte [rdx]
sub al, 0x20
cmp al, 0x5a
ja 0x180023838
inc ecx
inc rdx
cmp ecx, 0xa
jb 0x180023823
jmp 0x180023843
mov eax, ecx
mov byte [rax + r13 + 0x128], 0
cmp ebx, 0x82
jae 0x18002396e
mov qword [rsp + 0x20], 5
lea r9, [0x180042b7c]
mov r8, qword [rsp + 0x240]
xor edx, edx
lea rcx, [rsp + 0x230]
call fcn.18000e500
test eax, eax
je 0x18002396e
cmp byte [rsp + 0x40], 0
jne 0x18002396e
mov dword [r13 + 0x170], 0xfffffffc
cmp qword [rsp + 0x248], 0x10
jb 0x1800238ac
mov rcx, qword [rsp + 0x230]
call fcn.180038426
mov qword [rsp + 0x248], select
mov qword [rsp + 0x240], rsi
mov byte [rsp + 0x230], 0
cmp qword [rsp + 0x288], 0x10
jb 0x1800238e0
mov rcx, qword [rsp + 0x270]
call fcn.180038426
mov qword [rsp + 0x288], select
mov qword [rsp + 0x280], rsi
mov byte [rsp + 0x270], 0
cmp qword [rsp + 0x268], 0x10
jb 0x180023914
mov rcx, qword [rsp + 0x250]
call fcn.180038426
mov qword [rsp + 0x268], select
mov qword [rsp + 0x260], rsi
mov byte [rsp + 0x250], 0
cmp qword [rsp + 0x228], 0x10
jb 0x180023948
mov rcx, qword [rsp + 0x210]
call fcn.180038426
mov qword [rsp + 0x228], select
mov qword [rsp + 0x220], rsi
mov byte [rsp + 0x210], 0
mov eax, 0xfffffffc
jmp 0x18002530f
mov byte [rsp + 0x7e0], 0
xor edx, edx
mov r8d, 0x3ff
lea rcx, [rsp + 0x7e1]
call fcn.1800385ca
lea r8, [rsp + 0x7e0]
mov edx, ebx
lea rcx, [rsp + 0x3e0]
call fcn.180020ad0
mov rcx, qword [rsp + 0x58]
movzx edx, byte [rcx]
mov eax, ebx
shr eax, 1
je 0x1800239db
movzx r9d, byte [rcx + 1]
lea rcx, [rsp + 0x7e0]
mov r8d, eax
xor byte [rcx], dl
movzx eax, dl
imul eax, eax
lea eax, [rax + rax*2]
add eax, 0xa
cdq
idiv r9d
lea rcx, [rcx + 1]
dec r8
jne 0x1800239c0
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xc8], rsi
mov r13, rsi
mov qword [rsp + 0x80], rsi
mov qword [rsp + 0x88], rsi
mov qword [rsp + 0x90], rsi
mov ebx, esi
cmp ebx, 0xa
jge 0x180023b96
movsxd rax, ebx
lea rax, [rax + rax*2]
lea rcx, [rax + rax]
movzx eax, byte [rsp + rcx + 0x7e0]
mov byte [rsp + 0x2f8], al
movzx eax, byte [rsp + rcx + 0x320]
mov byte [rsp + 0x2f0], al
movzx eax, byte [rsp + rcx + 0x7e1]
mov byte [rsp + 0x2f9], al
movzx eax, byte [rsp + rcx + 0x321]
mov byte [rsp + 0x2f1], al
movzx eax, byte [rsp + rcx + 0x7e2]
mov byte [rsp + 0x2fa], al
movzx eax, byte [rsp + rcx + 0x322]
mov byte [rsp + 0x2f2], al
movzx eax, byte [rsp + rcx + 0x7e3]
mov byte [rsp + 0x2fb], al
movzx eax, byte [rsp + rcx + 0x323]
mov byte [rsp + 0x2f3], al
movzx eax, byte [rsp + rcx + 0x7e4]
mov byte [rsp + 0x2fc], al
movzx eax, byte [rsp + rcx + 0x324]
mov byte [rsp + 0x2f4], al
movzx eax, byte [rsp + rcx + 0x7e5]
mov byte [rsp + 0x2fd], al
movzx eax, byte [rsp + rcx + 0x325]
mov byte [rsp + 0x2f5], al
mov r8d, 6
lea rdx, [rsp + 0x2f8]
lea rcx, [rsp + 0x290]
call fcn.180016850
nop
lea rdx, [rsp + 0x290]
lea rcx, [rsp + 0xb8]
call fcn.18000f0a0
mov r8d, 6
lea rdx, [rsp + 0x2f0]
lea rcx, [rsp + 0x1f0]
call fcn.180016850
nop
lea rdx, [rsp + 0x1f0]
lea rcx, [rsp + 0x80]
call fcn.18000f0a0
nop
cmp qword [rsp + 0x208], 0x10
jb 0x180023b53
mov rcx, qword [rsp + 0x1f0]
call fcn.180038426
mov qword [rsp + 0x208], select
mov qword [rsp + 0x200], rsi
mov byte [rsp + 0x1f0], 0
cmp qword [rsp + 0x2a8], 0x10
jb 0x180023b87
mov rcx, qword [rsp + 0x290]
call fcn.180038426
inc ebx
mov r13, qword [rsp + 0x80]
jmp 0x180023a10
mov r12d, esi
mov ebx, esi
mov ecx, esi
mov dword [rsp + 0x2f8], ecx
mov rdx, qword [rsp + 0xc0]
mov rax, rdx
mov r15, qword [rsp + 0xb8]
sub rax, r15
sar rax, 5
cmp ecx, eax
jge 0x180023d77
movsxd rdx, ecx
shl rdx, 5
add rdx, r15
mov qword [rsp + 0x208], select
mov qword [rsp + 0x200], rsi
mov byte [rsp + 0x1f0], 0
or r9, 0xffffffffffffffff
xor r8d, r8d
lea rcx, [rsp + 0x1f0]
call fcn.18000d920
nop
lea rcx, [rsp + 0x1f0]
mov r15, qword [rsp + 0x1f0]
mov rdi, qword [rsp + 0x208]
cmp rdi, 0x10
cmovae rcx, r15
mov r8d, 0xc
mov r14, qword [rsp + 0x200]
cmp r14, r8
cmovb r8, r14
test r8, r8
jne 0x180023c3f
mov eax, esi
jmp 0x180023c4b
lea rdx, [0x180042a28]
call fcn.1800385be
cdqe
test rax, rax
jne 0x180023c66
cmp r14, 0xc
jae 0x180023c5d
or eax, 0xffffffff
jmp 0x180023c66
mov eax, esi
cmp r14, 0xc
setne al
test eax, eax
sete al
test al, al
jne 0x180023d52
lea rcx, [rsp + 0x1f0]
cmp rdi, 0x10
cmovae rcx, r15
mov r8d, 0xc
cmp r14, r8
cmovb r8, r14
test r8, r8
jne 0x180023c99
mov eax, esi
jmp 0x180023ca5
lea rdx, [0x180042a38]
call fcn.1800385be
cdqe
test rax, rax
jne 0x180023cc0
cmp r14, 0xc
jae 0x180023cb7
or eax, 0xffffffff
jmp 0x180023cc0
mov eax, esi
cmp r14, 0xc
setne al
test eax, eax
sete al
test al, al
jne 0x180023d52
inc ebx
mov dword [rsp + 0x2f0], ebx
mov ebx, esi
nop dword [rax + rax]
mov rax, qword [rsp + 0x88]
sub rax, r13
sar rax, 5
cmp ebx, eax
jge 0x180023d42
movsxd rcx, ebx
shl rcx, 5
add rcx, r13
lea r9, [rsp + 0x1f0]
cmp rdi, 0x10
cmovae r9, r15
mov qword [rsp + 0x20], r14
mov r8, qword [rcx + 0x10]
xor edx, edx
call fcn.18000e500
mov rdi, qword [rsp + 0x208]
mov r15, qword [rsp + 0x1f0]
test eax, eax
jne 0x180023d36
inc r12d
jmp 0x180023d42
inc ebx
mov r14, qword [rsp + 0x200]
jmp 0x180023ce0
cmp rdi, 0x10
jb 0x180023d62
mov rcx, r15
call fcn.180038426
jmp 0x180023d62
cmp rdi, 0x10
jb 0x180023d69
mov rcx, r15
call fcn.180038426
jmp 0x180023d69
mov ebx, dword [rsp + 0x2f0]
mov ecx, dword [rsp + 0x2f8]
inc ecx
jmp 0x180023b9d
cmp ebx, 3
jge 0x180023d81
test r12d, r12d
jg 0x180023d8c
cmp r12d, 1
jg 0x180023d8c
xor r14b, r14b
jmp 0x180023d8f
mov r14b, 1
mov r8, rdx
sub r8, r15
sar r8, 5
mov rcx, r15
call fcn.180011ef0
mov rdi, qword [rsp + 0x88]
sub rdi, r13
sar rdi, 5
mov r8, rdi
mov rdx, qword [rsp + 0x88]
mov rcx, r13
call fcn.180011ef0
mov ebx, esi
mov r12, qword [rsp + 0x300]
nop dword [rax]
cmp ebx, edi
jge 0x180023df1
movsxd rdx, ebx
shl rdx, 5
add rdx, r15
or r9, 0xffffffffffffffff
xor r8d, r8d
mov rcx, r12
call fcn.18000d5a0
inc ebx
jmp 0x180023dd0
mov qword [rsp + 0x20], 5
lea r9, [0x180042b7c]
mov r8, qword [rsp + 0x240]
xor edx, edx
lea rcx, [rsp + 0x230]
call fcn.18000e500
test eax, eax
je 0x180023e69
xor r8d, r8d
lea rdx, [0x180040ce8]
lea rcx, [rsp + 0x210]
call fcn.18000da50
mov ebx, 0x3c
mov edi, dword [rsp + 0x44]
nop dword [rax]
mov eax, edi
shr eax, 1
cmp ebx, eax
jae 0x180023e69
mov eax, ebx
movzx r8d, byte [rsp + rax + 0x7e0]
mov edx, 1
lea rcx, [rsp + 0x210]
call fcn.18000d810
inc ebx
jmp 0x180023e40
lea rdx, [rsp + 0x210]
lea rcx, [rsp + 0x2b0]
call fcn.18002fe40
nop
mov r9d, 7
xor r8d, r8d
lea rdx, [0x180042b38]
lea rcx, [rsp + 0x2b0]
call fcn.18000e800
test eax, eax
jns 0x180024051
test r14b, r14b
jne 0x180024051
mov qword [rsp + 0x20], 5
lea r9, [0x180042b74]
mov r8, qword [rsp + 0x240]
xor edx, edx
lea rcx, [rsp + 0x230]
call fcn.18000e500
test eax, eax
je 0x180024051
mov qword [rsp + 0x20], 5
lea r9, [0x180042b7c]
mov r8, qword [rsp + 0x240]
xor edx, edx
lea rcx, [rsp + 0x230]
call fcn.18000e500
test eax, eax
je 0x180024051
cmp byte [rsp + 0x40], r14b
jne 0x180024051
mov ebx, 0xfffffffe
mov r13, qword [rsp + 0xb0]
mov dword [r13 + 0x170], ebx
cmp qword [rsp + 0x2c8], 0x10
jb 0x180023f42
mov rcx, qword [rsp + 0x2b0]
call fcn.180038426
mov qword [rsp + 0x2c8], select
mov qword [rsp + 0x2c0], rsi
mov byte [rsp + 0x2b0], 0
lea rcx, [rsp + 0x80]
call fcn.18000d520
nop
lea rcx, [rsp + 0xb8]
call fcn.18000d520
nop
cmp qword [rsp + 0x248], 0x10
jb 0x180023f92
mov rcx, qword [rsp + 0x230]
call fcn.180038426
mov qword [rsp + 0x248], select
mov qword [rsp + 0x240], rsi
mov byte [rsp + 0x230], 0
cmp qword [rsp + 0x288], 0x10
jb 0x180023fc6
mov rcx, qword [rsp + 0x270]
call fcn.180038426
mov qword [rsp + 0x288], select
mov qword [rsp + 0x280], rsi
mov byte [rsp + 0x270], 0
cmp qword [rsp + 0x268], 0x10
jb 0x180023ffa
mov rcx, qword [rsp + 0x250]
call fcn.180038426
mov qword [rsp + 0x268], select
mov qword [rsp + 0x260], rsi
mov byte [rsp + 0x250], 0
cmp qword [rsp + 0x228], 0x10
jb 0x18002402e
mov rcx, qword [rsp + 0x210]
call fcn.180038426
mov qword [rsp + 0x228], select
mov qword [rsp + 0x220], rsi
mov byte [rsp + 0x210], 0
mov eax, ebx
jmp 0x18002530f
mov r9d, 1
xor r8d, r8d
lea rdx, [0x1800426b4]
lea rcx, [rsp + 0x210]
call fcn.18000e800
mov rdi, rax
or r14, 0xffffffffffffffff
test eax, eax
jle 0x180024158
inc eax
movsxd r8, eax
mov r9, r14
lea rdx, [rsp + 0x1f0]
lea rcx, [rsp + 0x210]
call fcn.18000fe00
mov rbx, rax
mov r15, qword [rsp + 0x48]
cmp r15, rax
je 0x1800240d1
cmp qword [r15 + 0x18], 0x10
jb 0x1800240b6
mov rcx, qword [r15]
call fcn.180038426
mov qword [r15 + 0x18], select
mov qword [r15 + 0x10], rsi
mov byte [r15], 0
mov rdx, rbx
mov rcx, r15
call fcn.18000d090
mov rbx, qword [rsp + 0x208]
cmp rbx, 0x10
jb 0x180024105
lea rdx, [rsp + 0x54]
lea rcx, [rsp + 0x1f0]
call fcn.18000d290
mov rcx, rax
lea r8, [rbx + 1]
mov rdx, qword [rsp + 0x1f0]
call fcn.18000e5a0
mov qword [rsp + 0x208], select
xor edx, edx
lea rcx, [rsp + 0x1f0]
call fcn.18000d270
mov rcx, r15
call fcn.18000dba0
mov rdx, rax
lea rcx, [rsp + 0x290]
call fcn.18000bc20
mov rdx, rax
mov rcx, r15
call fcn.18000bd70
lea rcx, [rsp + 0x290]
call fcn.18000bca0
mov r15d, 0x7f
jmp 0x180024161
mov r15d, 0x7f
mov edi, r15d
lea rdx, [0x180040ce8]
lea rcx, [rsp + 0x210]
call fcn.18000b660
test al, al
jne 0x1800241a8
lea rcx, [rsp + 0x210]
call fcn.18000ec50
cmp rax, 2
jbe 0x1800241a3
mov edx, 2
lea rcx, [rsp + 0x210]
call fcn.18000be10
cmp byte [rax], 0
je 0x1800241a8
xor r12b, r12b
jmp 0x1800241ab
mov r12b, 1
movsxd r9, edi
xor r8d, r8d
lea rdx, [rsp + 0x1f0]
lea rcx, [rsp + 0x210]
call fcn.18000fe00
nop
mov rcx, rax
call fcn.18000dba0
mov rdx, rax
lea rcx, [rsp + 0x290]
call fcn.18000bc20
mov rdx, rax
lea rcx, [rsp + 0x210]
call fcn.18000bd70
lea rcx, [rsp + 0x290]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x1f0]
call fcn.18000bca0
xor eax, eax
mov qword [rsp + 0x310], rax
mov word [rsp + 0x318], ax
mov byte [rsp + 0x31a], al
mov r13, qword [rsp + 0xb0]
lea rdx, [r13 + 0x128]
mov rax, r14
inc rax
cmp byte [rdx + rax], 0
jne 0x180024235
cmp eax, 0xa
jle 0x18002424a
mov eax, 0xa
jmp 0x180024259
mov rax, r14
nop dword [rax]
inc rax
cmp byte [rdx + rax], 0
jne 0x180024250
movsxd r8, eax
lea rcx, [rsp + 0x310]
call qword [0x18003e548]
lea rcx, [r13 + 0xa8]
xor edx, edx
mov r8d, 0x80
call fcn.1800385ca
lea rdx, [rsp + 0x210]
mov rbx, qword [rsp + 0xa8]
mov rcx, rbx
call fcn.18000bdc0
cmp byte [0x180052707], 0
je 0x180024470
lea rdx, [0x180040ce8]
lea rcx, [rsp + 0x210]
call fcn.18000bdf0
xor r8d, r8d
lea rdx, [0x180042a10]
mov rcx, rbx
call fcn.18001c370
test eax, eax
jle 0x1800243e2
lea rcx, [rsp + 0x1f0]
call fcn.18000bc80
nop
xor r9d, r9d
lea r8, [rsp + 0x1f0]
mov dl, 0x2c
mov rcx, rbx
call fcn.18002fad0
mov rdx, qword [rsp + 0x68]
lea rcx, [rsp + 0x290]
call fcn.18000bc20
nop
mov ebx, esi
nop dword [rax]
lea rcx, [rsp + 0x1f0]
call fcn.18000fcd0
cmp ebx, eax
jge 0x1800243c7
movsxd rdx, ebx
lea rcx, [rsp + 0x1f0]
call fcn.18000be30
mov r14, rax
lea rcx, [rsp + 0x290]
call fcn.18000ec50
mov rdi, rax
mov rcx, r14
call fcn.18000ec50
cmp rax, rdi
jbe 0x18002438a
lea r9, [rdi - 1]
xor r8d, r8d
lea rdx, [rsp + 0x2d0]
mov rcx, r14
call fcn.18000fe00
or dword [rsp + 0x50], 1
lea rdx, [rsp + 0x290]
mov rcx, rax
call fcn.180010480
test al, al
je 0x18002438a
mov dil, 1
jmp 0x18002438d
xor dil, dil
mov eax, dword [rsp + 0x50]
test al, 1
je 0x1800243a9
and eax, 0xfffffffe
mov dword [rsp + 0x50], eax
lea rcx, [rsp + 0x2d0]
call fcn.18000bca0
test dil, dil
je 0x1800243c0
mov rdx, r14
lea rcx, [rsp + 0x210]
call fcn.18000bdc0
jmp 0x1800243c7
inc ebx
jmp 0x180024310
lea rcx, [rsp + 0x290]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x1f0]
call fcn.18000bd50
lea rdx, [0x180040ce8]
lea rcx, [rsp + 0x210]
call fcn.18000b660
test al, al
je 0x180024470
mov dword [r13 + 0x170], 0xfffffffc
lea rcx, [rsp + 0x2b0]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x80]
call fcn.18000bd50
nop
lea rcx, [rsp + 0xb8]
call fcn.18000bd50
nop
lea rcx, [rsp + 0x230]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x270]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x250]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x210]
call fcn.18000bca0
mov eax, 0xfffffffc
jmp 0x18002530f
lea rcx, [rsp + 0x210]
call fcn.18000ec50
cmp eax, 0x7f
cmovg eax, r15d
movsxd rbx, eax
lea rcx, [rsp + 0x210]
call fcn.18000dba0
mov rdx, rax
lea rcx, [r13 + 0xa8]
mov r8, rbx
call qword [0x18003e548]
movzx edi, byte [rsp + 0x40]
test dil, dil
jne 0x180024549
lea rdx, [r13 + 0x133]
lea rcx, [rsp + 0x290]
call fcn.18000bc20
nop
lea rcx, [rsp + 0x210]
call fcn.18000dba0
mov rcx, rax
movzx r15d, byte [rsp + 0xc80]
mov byte [rsp + 0x30], r15b
movzx r14d, byte [rsp + 0xc50]
mov byte [rsp + 0x28], r14b
mov qword [rsp + 0x20], r13
mov r9, qword [rsp + 0x70]
lea r8, [rsp + 0x310]
mov rdx, qword [rsp + 0x68]
call fcn.180030c20
mov dword [rsp + 0x60], eax
lea rcx, [rsp + 0x290]
call fcn.18000dba0
mov rdx, rax
mov r8d, 5
lea rcx, [r13 + 0x133]
call qword [0x18003e548]
nop
lea rcx, [rsp + 0x290]
call fcn.18000bca0
jmp 0x18002457b
lea rdx, [rsp + 0x210]
lea rcx, [rsp + 0x2d0]
call fcn.18000bbe0
mov rdx, r13
mov rcx, rax
call fcn.180028310
movzx r15d, byte [rsp + 0xc80]
movzx r14d, byte [rsp + 0xc50]
lea rdx, [0x180040ce8]
mov rbx, qword [rsp + 0x48]
mov rcx, rbx
call fcn.18000b6a0
test al, al
je 0x1800247da
xor r8d, r8d
lea rdx, [0x180042a18]
mov rcx, rbx
call fcn.18001c370
mov rdi, rax
test eax, eax
jle 0x180024626
inc eax
movsxd r8, eax
lea rdx, [0x1800426b4]
mov rcx, rbx
call fcn.18001c370
mov rcx, rax
mov ebx, 0xfffffffd
mov eax, ebx
sub eax, edi
add ecx, eax
mov rax, 0xffffffffffffffff
cmovs ecx, eax
movsxd r9, ecx
lea eax, [rdi + 3]
movsxd r8, eax
lea rdx, [rsp + 0x290]
mov rdi, qword [rsp + 0x48]
mov rcx, rdi
call fcn.18000fe00
lea rcx, [rsp + 0x290]
call fcn.18000dba0
mov rcx, rax
call qword [0x18003e568]
mov dword [r13 + 0x164], eax
lea rcx, [rsp + 0x290]
call fcn.18000bca0
jmp 0x180024630
mov ebx, 0xfffffffd
mov rdi, qword [rsp + 0x48]
xor r8d, r8d
lea rdx, [0x180042a14]
mov rcx, rdi
call fcn.18001c370
mov rdi, rax
test eax, eax
jle 0x1800246c7
inc eax
movsxd r8, eax
lea rdx, [0x1800426b4]
mov rcx, qword [rsp + 0x48]
call fcn.18001c370
mov rcx, rax
mov eax, ebx
sub eax, edi
add ecx, eax
mov rax, 0xffffffffffffffff
cmovs ecx, eax
movsxd r9, ecx
lea eax, [rdi + 3]
movsxd r8, eax
lea rdx, [rsp + 0x290]
mov rcx, qword [rsp + 0x48]
call fcn.18000fe00
lea rcx, [rsp + 0x290]
call fcn.18000dba0
mov rcx, rax
call qword [0x18003e568]
mov dword [r13 + 0x168], eax
dec eax
cmp eax, 0x5f0a04a0
ja 0x1800246ba
mov dword [r13 + 0x168], esi
lea rcx, [rsp + 0x290]
call fcn.18000bca0
xor r8d, r8d
lea rdx, [0x180042964]
mov rcx, qword [rsp + 0x48]
call fcn.18001c370
mov rdi, rax
test eax, eax
jle 0x180024745
inc eax
movsxd r8, eax
lea rdx, [0x1800426b4]
mov rcx, qword [rsp + 0x48]
call fcn.18001c370
sub ebx, edi
add eax, ebx
mov rcx, 0xffffffffffffffff
cmovs eax, ecx
movsxd r9, eax
lea eax, [rdi + 3]
movsxd r8, eax
lea rdx, [rsp + 0x290]
mov rcx, qword [rsp + 0x48]
call fcn.18000fe00
nop
lea rdx, [rsp + 0x290]
mov rcx, qword [rsp + 0x98]
call fcn.18000bdc0
nop
lea rcx, [rsp + 0x290]
call fcn.18000bca0
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x1f0]
call fcn.18000bbe0
nop
xor r8d, r8d
lea rdx, [0x1800426b4]
lea rcx, [rsp + 0x1f0]
call fcn.18001c370
test eax, eax
jle 0x1800247ab
movsxd r9, eax
xor r8d, r8d
lea rdx, [rsp + 0x2d0]
lea rcx, [rsp + 0x1f0]
call fcn.18000fe00
mov rdx, rax
lea rcx, [rsp + 0x1f0]
call fcn.18000bd70
lea rcx, [rsp + 0x2d0]
call fcn.18000bca0
lea rcx, [rsp + 0x1f0]
call fcn.18000dba0
mov rcx, rax
call qword [0x18003e568]
mov dword [r13 + 0x13c], eax
lea rcx, [rsp + 0x1f0]
call fcn.18000bca0
movzx edi, byte [rsp + 0x40]
lea rcx, [rsp + 0x2b0]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x80]
call fcn.18000bd50
nop
lea rcx, [rsp + 0xb8]
call fcn.18000bd50
nop
lea rcx, [rsp + 0x230]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x270]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x250]
call fcn.18000bca0
nop
test dil, dil
je 0x180024baa
test r12b, r12b
je 0x18002485e
mov dword [r13 + 0x170], 0xfffffff9
lea rcx, [rsp + 0x210]
call fcn.18000bca0
mov eax, 0xfffffff9
jmp 0x18002530f
mov r14d, esi
xor edx, edx
mov r8d, 0x80
lea rcx, [rsp + 0x360]
call fcn.1800385ca
xor eax, eax
mov qword [rsp + 0x300], rax
mov word [rsp + 0x308], ax
mov byte [rsp + 0x30a], al
lea rdx, [rsp + 0x210]
lea rcx, [rsp + 0x290]
call fcn.18002fe40
nop
xor r8d, r8d
lea rdx, [0x180042b38]
lea rcx, [rsp + 0x290]
call fcn.18001c370
mov rbx, rax
test eax, eax
jle 0x180024b80
test r15b, r15b
jne 0x180024b80
lea rdx, [r13 + 0x128]
or r15, 0xffffffffffffffff
mov rax, r15
nop
inc rax
cmp byte [rdx + rax], 0
jne 0x1800248e0
cmp eax, 0xa
jle 0x1800248f5
mov eax, 0xa
jmp 0x180024909
mov rax, r15
nop dword [rax + rax]
inc rax
cmp byte [rdx + rax], 0
jne 0x180024900
movsxd r8, eax
lea rcx, [rsp + 0x300]
call qword [0x18003e548]
movsxd rdi, ebx
mov r9, rdi
xor r8d, r8d
lea rdx, [rsp + 0x2d0]
lea rcx, [rsp + 0x210]
call fcn.18000fe00
nop
mov r8, rax
lea rdx, [0x180042724]
lea rcx, [rsp + 0x2b0]
call fcn.18000b8e0
nop
lea rcx, [rsp + 0x2d0]
call fcn.18000bca0
lea rcx, [rsp + 0x2b0]
call fcn.18000dba0
mov rcx, rax
lea rax, [rsp + 0x360]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r14, qword [rsp + 0x70]
mov r8, r14
lea rdx, [rsp + 0x300]
call fcn.18001ddf0
mov ebx, eax
test eax, eax
jns 0x180024a40
mov r9, rdi
xor r8d, r8d
lea rdx, [rsp + 0x250]
lea rcx, [rsp + 0x210]
call fcn.18000fe00
mov rdx, rax
lea rcx, [rsp + 0x2b0]
call fcn.18000bd70
lea rcx, [rsp + 0x250]
call fcn.18000bca0
lea rcx, [rsp + 0x2b0]
call fcn.18000dba0
mov rcx, rax
lea rax, [rsp + 0x360]
mov qword [rsp + 0x20], rax
xor r9d, r9d
mov r8, r14
lea rdx, [rsp + 0x300]
call fcn.18001ddf0
mov ebx, eax
test eax, eax
jne 0x180024a40
lea rcx, [rsp + 0x2b0]
call fcn.18000dba0
mov rcx, rax
lea rax, [rsp + 0x360]
mov qword [rsp + 0x20], rax
mov r9b, 1
mov r8, r14
lea rdx, [rsp + 0x300]
call fcn.18001ddf0
mov ebx, 0xfffffffe
mov r14d, 0xffffffe8
cmp ebx, 1
cmove r14d, esi
test r14d, r14d
jne 0x180024b73
lea rdx, [0x180040ce8]
mov r12, qword [rsp + 0x78]
mov rcx, r12
call fcn.18000bdf0
lea rax, [rsp + 0x250]
mov qword [rsp + 0x98], rax
lea rax, [rsp + 0x270]
mov qword [rsp + 0xa8], rax
lea rdx, [0x180040ce8]
lea rcx, [rsp + 0x250]
call fcn.18000bc20
mov rdi, rax
lea rdx, [rsp + 0x360]
lea rcx, [rsp + 0x270]
call fcn.18000bc20
mov rbx, rax
mov rdx, qword [rsp + 0x58]
lea rcx, [rsp + 0xb8]
call fcn.18000bc20
nop
mov qword [rsp + 0x28], rdi
mov dword [rsp + 0x20], esi
lea r9, [rsp + 0x300]
mov r8, rbx
mov rdx, rax
lea rcx, [rsp + 0x230]
call fcn.18001d230
mov rdx, rax
mov rcx, r12
call fcn.18000bd70
lea rcx, [rsp + 0x230]
call fcn.18000bca0
mov r9, r15
lea r8d, [r14 + 3]
lea rdx, [rsp + 0x1f0]
mov rcx, r12
call fcn.18000fe00
nop
lea rdx, [0x18004297c]
mov rcx, rax
call fcn.18000b660
movzx ebx, al
lea rcx, [rsp + 0x1f0]
call fcn.18000bca0
test bl, bl
je 0x180024b73
mov r9, r15
lea r8d, [r14 + 0xf]
lea rdx, [rsp + 0x250]
mov rcx, r12
call fcn.18000fe00
mov rdx, rax
mov rcx, r12
call fcn.18000bd70
lea rcx, [rsp + 0x250]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x2b0]
call fcn.18000bca0
mov dword [r13 + 0x170], r14d
lea rcx, [rsp + 0x290]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x210]
call fcn.18000bca0
mov eax, r14d
jmp 0x18002530f
mov ebx, dword [rsp + 0x60]
test ebx, ebx
je 0x180024d95
lea rdx, [rsp + 0x210]
lea rcx, [rsp + 0x2b0]
call fcn.18002fe40
nop
xor r8d, r8d
lea rdx, [0x180042b38]
lea rcx, [rsp + 0x2b0]
call fcn.18001c370
test eax, eax
js 0x180024c10
mov dword [r13 + 0x170], ebx
lea rcx, [rsp + 0x2b0]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x210]
call fcn.18000bca0
mov eax, ebx
jmp 0x18002530f
xor r8d, r8d
lea rdx, [0x1800426b0]
lea rcx, [rsp + 0x210]
call fcn.18001c370
test eax, eax
js 0x180024ca6
lea eax, [rbx + 0x10]
cmp eax, 1
jbe 0x180024be7
lea rcx, [rsp + 0x210]
call fcn.18000ec50
cmp rax, 0xa
jae 0x180024c76
mov dword [r13 + 0x170], 0xfffffff9
lea rcx, [rsp + 0x2b0]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x210]
call fcn.18000bca0
mov eax, 0xfffffff9
jmp 0x18002530f
mov dword [r13 + 0x170], 0xfffffff8
lea rcx, [rsp + 0x2b0]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x210]
call fcn.18000bca0
mov eax, 0xfffffff8
jmp 0x18002530f
mov rdx, qword [rsp + 0x68]
lea rcx, [rsp + 0x250]
call fcn.18000bc20
nop
lea rdx, [0x180040ce8]
lea rcx, [rsp + 0x250]
call fcn.18000b6a0
test al, al
je 0x180024d78
test r14b, r14b
je 0x180024d78
test r15b, r15b
jne 0x180024d78
xor r8d, r8d
lea rdx, [0x180042b40]
lea rcx, [rsp + 0x250]
call fcn.18001c370
test eax, eax
jg 0x180024d16
lea rdx, [0x180042b40]
lea rcx, [rsp + 0x250]
call fcn.18000be60
lea rcx, [rsp + 0x250]
call fcn.18000dba0
mov rdx, rax
mov byte [rsp + 0x20], r14b
mov r9, r13
mov r8, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
call fcn.180030290
test eax, eax
jne 0x180024d78
mov dword [r13 + 0x170], esi
lea rcx, [rsp + 0x250]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x2b0]
call fcn.18000bca0
nop
lea rcx, [rsp + 0x210]
call fcn.18000bca0
xor eax, eax
jmp 0x18002530f
mov dword [r13 + 0x170], 0xfffffff9
lea rcx, [rsp + 0x250]
call fcn.18000bca0
jmp 0x180024c51
cmp dword [r13 + 0x170], 0
jne 0x180024da7
mov rcx, r13
call fcn.180016b00
mov ebx, dword [r13 + 0x170]
lea rcx, [rsp + 0x210]
call fcn.18000bca0
mov eax, ebx
jmp 0x18002530f
movzx ebx, byte [rsp + 0x40]
mov qword [rsp + 0x208], select
mov qword [rsp + 0x200], rsi
mov byte [rsp + 0x1f0], 0
mov rax, qword [rsp + 0x68]
cmp byte [rax], 0
jne 0x180024df2
mov r12, rsi
jmp 0x180024dfc
inc r12
cmp byte [rax + r12], 0
jne 0x180024df2
mov r8, r12
mov rdx, rax
lea rcx, [rsp + 0x1f0]
call fcn.18000da50
nop
test bl, bl
jne 0x180024fe7
mov qword [rsp + 0x20], rsi
lea r9, [0x180040ce8]
mov r8, qword [rsp + 0x200]
xor edx, edx
lea rcx, [rsp + 0x1f0]
call fcn.18000e500
test eax, eax
je 0x180024fe7
cmp byte [rsp + 0xc80], bl
jne 0x180024fe7
cmp byte [0x180052701], bl
jne 0x180024fe7
movzx ebx, byte [rsp + 0xc50]
test bl, bl
je 0x180024ea3
mov r9d, 0xc
xor r8d, r8d
lea rdx, [0x180042b40]
lea rcx, [rsp + 0x1f0]
call fcn.18000e800
test eax, eax
jg 0x180024ea3
mov r8d, 0xc
lea rdx, [0x180042b40]
lea rcx, [rsp + 0x1f0]
call fcn.18000d6c0
lea rdx, [rsp + 0x1f0]
cmp qword [rsp + 0x208], 0x10
cmovae rdx, qword [rsp + 0x1f0]
mov byte [rsp + 0x20], bl
mov r9, r13
mov r8, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x58]
call fcn.180030290
mov ebx, eax
mov dword [r13 + 0x170], eax
cmp qword [rsp + 0x208], 0x10
jb 0x180024ef4
mov rcx, qword [rsp + 0x1f0]
call fcn.180038426
mov qword [rsp + 0x208], select
mov qword [rsp + 0x200], rsi
mov byte [rsp + 0x1f0], 0
cmp qword [rsp + 0x248], 0x10
jb 0x180024f28
mov rcx, qword [rsp + 0x230]
call fcn.180038426
mov qword [rsp + 0x248], select
mov qword [rsp + 0x240], rsi
mov byte [rsp + 0x230], 0
cmp qword [rsp + 0x288], 0x10
jb 0x180024f5c
mov rcx, qword [rsp + 0x270]
call fcn.180038426
mov qword [rsp + 0x288], select
mov qword [rsp + 0x280], rsi
mov byte [rsp + 0x270], 0
cmp qword [rsp + 0x268], 0x10
jb 0x180024f90
mov rcx, qword [rsp + 0x250]
call fcn.180038426
mov qword [rsp + 0x268], select
mov qword [rsp + 0x260], rsi
mov byte [rsp + 0x250], 0
cmp qword [rsp + 0x228], 0x10
jb 0x180024fc4
mov rcx, qword [rsp + 0x210]
call fcn.180038426
mov qword [rsp + 0x228], select
mov qword [rsp + 0x220], rsi
mov byte [rsp + 0x210], 0
mov eax, ebx
jmp 0x18002530f
mov ebx, 0xfffffffd
mov dword [r13 + 0x170], ebx
cmp qword [rsp + 0x208], 0x10
jb 0x18002500b
mov rcx, qword [rsp + 0x1f0]
call fcn.180038426
mov qword [rsp + 0x208], select
mov qword [rsp + 0x200], rsi
mov byte [rsp + 0x1f0], 0
cmp qword [rsp + 0x248], 0x10
jb 0x18002503f
mov rcx, qword [rsp + 0x230]
call fcn.180038426
mov qword [rsp + 0x248], select
mov qword [rsp + 0x240], rsi
mov byte [rsp + 0x230], 0
cmp qword [rsp + 0x288], 0x10
jb 0x180025073
mov rcx, qword [rsp + 0x270]
call fcn.180038426
mov qword [rsp + 0x288], select
mov qword [rsp + 0x280], rsi
mov byte [rsp + 0x270], 0
cmp qword [rsp + 0x268], 0x10
jb 0x1800250a7
mov rcx, qword [rsp + 0x250]
call fcn.180038426
mov qword [rsp + 0x268], select
mov qword [rsp + 0x260], rsi
mov byte [rsp + 0x250], 0
cmp qword [rsp + 0x228], 0x10
jb 0x1800250db
mov rcx, qword [rsp + 0x210]
call fcn.180038426
mov qword [rsp + 0x228], select
mov qword [rsp + 0x220], rsi
mov byte [rsp + 0x210], 0
mov eax, ebx
jmp 0x18002530f
lea rcx, [rsp + 0xf0]
call fcn.180017700
test rax, rax
jne 0x180025131
mov rax, qword [rsp + 0xe0]
movsxd rcx, dword [rax + 4]
lea rcx, [rsp + rcx + 0xe0]
xor r8d, r8d
lea edx, [r8 + 2]
call qword [0x18003e1e0]
mov dword [r13 + 0x170], 0xfffffffc
lea rcx, [rsp + 0xe0]
call fcn.1800142b0
nop
cmp qword [rsp + 0x248], 0x10
jb 0x180025162
mov rcx, qword [rsp + 0x230]
call fcn.180038426
mov qword [rsp + 0x248], select
mov qword [rsp + 0x240], rsi
mov byte [rsp + 0x230], 0
cmp qword [rsp + 0x288], 0x10
jb 0x180025196
mov rcx, qword [rsp + 0x270]
call fcn.180038426
mov qword [rsp + 0x288], select
mov qword [rsp + 0x280], rsi
mov byte [rsp + 0x270], 0
cmp qword [rsp + 0x268], 0x10
jb 0x1800251ca
mov rcx, qword [rsp + 0x250]
call fcn.180038426
mov qword [rsp + 0x268], select
mov qword [rsp + 0x260], rsi
mov byte [rsp + 0x250], 0
cmp qword [rsp + 0x228], 0x10
jb 0x1800251fe
mov rcx, qword [rsp + 0x210]
call fcn.180038426
mov qword [rsp + 0x228], select
mov qword [rsp + 0x220], rsi
mov byte [rsp + 0x210], 0
mov eax, 0xfffffffc
jmp 0x18002530f
mov rcx, qword [rsp + 0xbe0]
xor rcx, rsp
call fcn.180038e10
add rsp, 0xbf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret