Function at 0x14011a110
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x220]
sub rsp, 0x320
mov rax, qword [0x1402a83b0]
xor rax, rsp
mov qword [rbp + 0x1f0], rax
cmp dword [rcx + 0x24668], 0
mov ebx, edx
mov dword [rbp - 0x18], edx
mov r13, rcx
mov qword [rsp + 0x68], rcx
je 0x14011a16e
call fcn.1401be514
lea rdx, str._d_pass_X_Trans_interpolation..._n
mov r8d, ebx
lea rcx, [rax + 0x60]
call fcn.1401be844
xor r8d, r8d
xor edx, edx
mov rcx, r13
call fcn.1400f47b0
xor esi, esi
cmp ebx, 1
setg cl
mov edi, 4
shl edi, cl
mov dword [rbp - 0x50], edi
imul eax, edi, 0x2c0000
add eax, 0x180000
movsxd rcx, eax
call fcn.1401bee78
lea r8, str.xtrans_interpolate__
mov rcx, r13
mov rdx, rax
mov rbx, rax
mov qword [rbp - 0x80], rax
call fcn.140106a20
lea ecx, [rdi + rdi*2]
mov qword [rbp - 0x30], rbx
shl ecx, 0x13
mov dword [rsp + 0x50], esi
mov qword [rbp - 0x60], rsi
movsxd rax, ecx
add rax, rbx
mov qword [rbp], rax
lea eax, [rcx + 0x180000]
cdqe
add rax, rbx
mov qword [rbp + 8], rax
lea eax, [rdi + rdi*4]
mov edi, esi
shl eax, 0x13
add eax, 0x180000
cdqe
add rax, rbx
mov qword [rbp - 0x20], rax
nop word [rax + rax]
lea ecx, [rdi + 6]
mov eax, 0x2aaaaaab
mov r11d, esi
mov dword [rsp + 0x30], esi
mov qword [rbp - 0x40], rsi
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
lea r8, [rax + rax*2]
add r8, r8
mov qword [rsp + 0x48], r8
nop dword [rax]
nop word [rax + rax]
lea ecx, [r11 + 6]
mov eax, 0x2aaaaaab
mov r9d, esi
mov r14d, esi
mov r10, rsi
mov qword [rbp - 0x68], rsi
imul ecx
mov eax, edx
lea rsi, [0x1402222fe]
mov ebx, 5
shr eax, 0x1f
mov qword [rbp - 8], rsi
mov qword [rsp + 0x38], rbx
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
add rax, r8
cmp byte [rax + r13 + 0x35d], 1
sete r9b
mov dword [rbp - 0x38], r9d
nop dword [rax]
nop word [rax + rax]
movsx r15d, word [rsi - 6]
movsx r12d, word [rsi - 2]
lea ecx, [rdi + 6]
add ecx, r15d
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
lea ecx, [r11 + 6]
lea r8, [rax + rax*2]
add ecx, r12d
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
xor edx, edx
add eax, eax
sub ecx, eax
movsxd rcx, ecx
add rcx, r13
cmp byte [rcx + r8*2 + 0x35d], 1
jne 0x14011a304
mov r14d, edx
mov dword [rsp + 0x20], edx
jmp 0x14011a31d
inc r14d
mov dword [rsp + 0x20], r14d
cmp r14d, 4
jne 0x14011a31d
mov word [rsp + 0x5c], di
mov word [rsp + 0x78], r11w
lea eax, [r9 + 1]
cmp r14d, eax
jne 0x14011a404
movsx eax, word [rsi - 4]
mov rdi, qword [rbp - 0x60]
movzx r13d, word [r13 + 0x44f6]
add rdi, qword [rbp - 0x40]
mov dword [rsp + 0x54], eax
movsx eax, word [rsi]
mov esi, dword [rsp + 0x54]
mov dword [rbp - 0x48], eax
lea eax, [r9 + r9]
mov r14d, dword [rbp - 0x48]
movsxd rbx, eax
movsxd r9, r9d
and rbx, r10
lea rax, [0x140222310]
shl r9, 5
shl rdi, 4
mov r11d, 8
add r9, rax
mov r10, rdx
nop dword [rax + rax]
movsx ecx, word [r9 + 2]
movsx r8d, word [r9]
lea r9, [r9 + 4]
mov edx, ecx
mov eax, r8d
imul ecx, r14d
imul r8d, r12d
add r8d, ecx
mov rcx, r10
inc r10
xor rcx, rbx
add rcx, rdi
imul eax, r15d
imul edx, esi
add edx, eax
movzx eax, r13w
imul ax, dx
add ax, r8w
mov word [rbp + rcx*2 + 0xd0], ax
mov eax, 0x200
imul dx, ax
add dx, r8w
mov word [rbp + rcx*2 + 0xe0], dx
dec r11
jne 0x14011a380
mov rsi, qword [rbp - 8]
mov r14d, dword [rsp + 0x20]
mov r9d, dword [rbp - 0x38]
mov r10, qword [rbp - 0x68]
mov r11d, dword [rsp + 0x30]
mov rbx, qword [rsp + 0x38]
mov edi, dword [rsp + 0x50]
mov r13, qword [rsp + 0x68]
add r10, 2
add rsi, 4
dec rbx
mov qword [rsp + 0x38], rbx
mov qword [rbp - 0x68], r10
mov qword [rbp - 8], rsi
jne 0x14011a2a0
inc qword [rbp - 0x40]
mov r8, qword [rsp + 0x48]
inc r11d
mov dword [rsp + 0x30], r11d
mov esi, 0
cmp r11d, 3
jl 0x14011a240
add qword [rbp - 0x60], 3
inc edi
mov dword [rsp + 0x50], edi
cmp edi, 3
jl 0x14011a200
movzx eax, word [r13 + 0x44f4]
mov ebx, 2
mov ecx, 0xffff
sub eax, ebx
cmp eax, ebx
jle 0x14011a642
movzx r15d, word [rsp + 0x5c]
xor r12d, r12d
nop dword [rax + rax]
movzx esi, word [r13 + 0x44f6]
mov r11d, 2
movzx r9d, r12w
lea eax, [rsi - 2]
movzx r10d, cx
cmp eax, r11d
jle 0x14011a62d
lea edi, [r11 + 6]
lea r14d, [rbx + 6]
nop word [rax + rax]
mov eax, 0x2aaaaaab
imul r14d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r14d
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
cdqe
lea r8, [rax + rax*2]
mov eax, 0x2aaaaaab
imul edi
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edi
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
movsxd rcx, eax
add rcx, r13
cmp byte [rcx + r8*2 + 0x35d], 1
jne 0x14011a507
mov ecx, 0xffff
mov r9d, r12d
mov r10d, ecx
jmp 0x14011a614
imul esi, ebx
movsxd rax, r11d
movsxd rcx, esi
add rcx, rax
mov rax, qword [r13 + 0x4510]
lea rsi, [rax + rcx*8]
mov eax, 0x55555556
mov ecx, ebx
imul ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
mov ecx, r11d
lea r8, [rax + rax*2]
mov eax, 0x55555556
imul r11d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
add r8, rax
shl r8, 5
lea r8, [rbp + r8 + 0xd0]
test r9w, r9w
jne 0x14011a599
mov rdx, r12
nop dword [rax]
movsx rax, word [r8 + rdx*2]
movzx ecx, word [rsi + rax*8 + 2]
movzx eax, r10w
cmp eax, ecx
movzx eax, r9w
cmovg r10w, cx
cmp eax, ecx
cmovl r9w, cx
inc rdx
cmp rdx, 6
jl 0x14011a570
movzx eax, r15w
mov ecx, ebx
mov word [rsi + 2], r10w
sub ecx, eax
mov eax, 0x55555556
mov word [rsi + 6], r9w
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
dec ecx
je 0x14011a5f6
dec ecx
mov ecx, 0xffff
jne 0x14011a614
movzx eax, word [r13 + 0x44f6]
add r11d, 2
add edi, 2
sub eax, 3
movzx r9d, r12w
movzx r10d, cx
cmp r11d, eax
jge 0x14011a614
cmp ebx, 2
jle 0x14011a614
dec ebx
dec r14d
jmp 0x14011a614
movzx eax, word [r13 + 0x44f4]
mov ecx, 0xffff
sub eax, 3
cmp ebx, eax
jge 0x14011a614
inc ebx
inc r14d
dec r11d
dec edi
movzx esi, word [r13 + 0x44f6]
inc r11d
inc edi
lea eax, [rsi - 2]
cmp r11d, eax
jl 0x14011a4b0
movzx eax, word [r13 + 0x44f4]
inc ebx
sub eax, 2
cmp ebx, eax
jl 0x14011a480
movzx eax, word [r13 + 0x44f4]
mov r11d, 3
sub eax, 0x13
mov dword [rsp + 0x2c], r11d
cmp eax, r11d
jle 0x14011bef3
movaps xmmword [rsp + 0x310], xmm6
movss xmm6, dword [0x140220c88]
movaps xmmword [rsp + 0x300], xmm7
movss xmm7, dword [0x140231710]
mov r9d, r11d
mov qword [rbp - 0x60], r11
nop dword [rax + rax]
movzx ecx, word [r13 + 0x44f6]
mov r12d, 3
lea eax, [rcx - 0x13]
mov r8d, r12d
mov dword [rsp + 0x28], r12d
mov qword [rbp - 0x40], r12
cmp eax, r8d
jle 0x14011beb8
movsxd rdx, dword [rbp - 0x50]
mov r15, qword [rbp - 0x80]
lea r10d, [r11 + 0x200]
mov eax, edx
mov qword [rbp - 0x68], rdx
mov edx, 8
shl eax, 0x12
cmp r11d, edx
lea r14, [r15 + 0x180000]
cmovl edx, r11d
cdqe
mov qword [rbp + 0x20], r14
mov dword [rbp - 8], edx
mov qword [rbp + 0x18], rax
jmp 0x14011a6f4
mov r15, qword [rbp - 0x80]
movzx edi, word [r13 + 0x44f4]
lea esi, [rcx - 3]
lea eax, [r12 + 0x200]
add edi, 0xfffffffd
cmp r10d, edi
cmovl edi, r10d
cmp eax, esi
cmovl esi, eax
mov dword [rsp + 0x58], edi
mov dword [rsp + 0x24], esi
cmp r11d, edi
jge 0x14011a7ad
mov eax, edi
movsxd r11, r11d
mov rbx, r11
sub rbx, r9
shl rbx, 9
sub rbx, r8
sub eax, dword [rsp + 0x2c]
movsxd rdi, eax
mov eax, 0x200
cmp r12d, esi
jge 0x14011a799
movsxd r9, r12d
lea rax, [rbx + r9]
lea rcx, [rax + rax*2]
mov eax, esi
sub eax, r12d
lea r8, [r15 + rcx*2]
movsxd r10, eax
mov rcx, qword [r13 + 0x4510]
movzx edx, word [r13 + 0x44f6]
lea r8, [r8 + 6]
imul rdx, r11
add rdx, r9
inc r9
mov eax, dword [rcx + rdx*8]
mov dword [r8 - 6], eax
movzx eax, word [rcx + rdx*8 + 4]
mov word [r8 - 2], ax
dec r10
jne 0x14011a761
mov eax, 0x200
inc r11
add rbx, rax
dec rdi
jne 0x14011a745
mov edi, dword [rsp + 0x58]
mov r11d, dword [rsp + 0x2c]
mov r8, r14
mov r9d, 3
nop word [rax + rax]
mov rax, r8
mov rcx, r15
mov edx, 0x3000
nop dword [rax + rax]
movups xmm0, xmmword [rcx]
lea rax, [rax + 0x80]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm1, xmmword [rcx - 0x70]
movups xmmword [rax - 0x70], xmm1
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x60], xmm0
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x50], xmm1
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x40], xmm0
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x30], xmm1
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x20], xmm0
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x10], xmm1
dec rdx
jne 0x14011a7d0
add r8, 0x180000
dec r9
jne 0x14011a7c0
mov r8d, r11d
mov dword [rsp + 0x30], r11d
cmp r11d, edi
jge 0x14011ab2f
mov r10d, dword [rsp + 0x28]
movsxd r12, r11d
nop word [rax + rax]
mov r13d, r10d
mov dword [rsp + 0x20], r10d
cmp r10d, esi
jge 0x14011ab08
lea ecx, [r8 + 6]
mov eax, 0x2aaaaaab
movsxd r15, r10d
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
lea r9, [rax + rax*2]
add r9, r9
mov qword [rsp + 0x48], r9
nop dword [rax]
lea ecx, [r13 + 6]
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
mov rdx, qword [rsp + 0x68]
add eax, eax
sub ecx, eax
movsxd rax, ecx
add rax, r9
movsx rbx, byte [rax + rdx + 0x35d]
cmp ebx, 1
je 0x14011aaeb
movzx eax, word [rdx + 0x44f6]
mov rdi, rbx
mov esi, 2
imul eax, r8d
movsxd rcx, eax
mov rax, qword [rdx + 0x4510]
add rcx, r15
lea r11, [rax + rcx*8]
mov ecx, r8d
mov eax, 0x55555556
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
mov ecx, r13d
lea r10, [rax + rax*2]
mov eax, 0x55555556
imul r13d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
add r10, rax
shl r10, 5
movsx r9, word [rbp + r10 + 0xd2]
movsx rdx, word [rbp + r10 + 0xd0]
movzx ecx, word [r11 + rdx*8 + 2]
movzx eax, word [r11 + r9*8 + 2]
add rdx, rdx
add ecx, eax
add r9, r9
movzx eax, word [r11 + r9*8 + 2]
movzx r9d, word [r11 + rbx*2]
imul r8d, ecx, 0xae
movzx ecx, word [r11 + rdx*8 + 2]
lea r14d, [r9 + r9]
add ecx, eax
imul eax, ecx, 0x2e
mov rcx, rbx
lea rbx, [rbp + 0x98]
sub r8d, eax
mov dword [rbp + 0x90], r8d
movsx r8, word [rbp + r10 + 0xd4]
lea rax, [r8*4]
sub rcx, rax
movzx eax, word [r11 + rcx*2]
mov ecx, r9d
sub ecx, eax
movsx rax, word [rbp + r10 + 0xd6]
lea r10, [rbp + r10 + 0xd8]
imul edx, ecx, 0x5c
movzx ecx, word [r11 + rax*8 + 2]
imul eax, ecx, 0xdf
add edx, eax
movzx eax, word [r11 + r8*8 + 2]
imul ecx, eax, 0x21
add edx, ecx
mov dword [rbp + 0x94], edx
nop word [rax + rax]
movsx r9, word [r10]
mov r8d, r14d
lea rbx, [rbx + 4]
lea rax, [r9 + r9*2]
lea r10, [r10 + 2]
lea rdx, [rax*4]
lea rax, [rdx + rdi]
movzx ecx, word [r11 + rax*2]
mov rax, rdi
sub rax, rdx
sub r8d, ecx
movzx ecx, word [r11 + rax*2]
mov rax, r11
sub r8d, ecx
mov rcx, r9
shl rcx, 4
sub rax, rcx
imul edx, r8d, 0x21
movzx eax, word [rax + 2]
imul ecx, eax, 0x5c
movzx eax, word [r11 + r9*8 + 2]
add edx, ecx
imul ecx, eax, 0xa4
add edx, ecx
mov dword [rbx - 4], edx
dec rsi
jne 0x14011a9e0
movzx eax, word [rsp + 0x5c]
mov ecx, dword [rsp + 0x30]
mov r13, qword [rbp - 0x80]
sub ecx, eax
mov eax, 0x55555556
lea r9, [rbp + 0x90]
lea ebx, [rsi + 4]
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
mov rax, rsi
mov rdi, rax
sete dil
mov r10, rax
nop
movzx r8d, word [r11 + 6]
mov ecx, dword [r9]
movzx edx, word [r11 + 2]
sar ecx, 8
mov eax, r8d
cmp ecx, r8d
cmovl eax, ecx
cmp edx, eax
jg 0x14011aaa6
mov edx, r8d
cmp ecx, r8d
cmovl edx, ecx
mov rax, r10
add r9, 4
inc r10
xor rax, rdi
shl rax, 9
sub rax, qword [rbp - 0x60]
add rax, r12
shl rax, 9
sub rax, qword [rbp - 0x40]
add rax, r15
lea rax, [rax + rax*2]
mov word [r13 + rax*2 + 2], dx
dec rbx
jne 0x14011aa80
mov r13d, dword [rsp + 0x20]
mov r8d, dword [rsp + 0x30]
mov r9, qword [rsp + 0x48]
mov esi, dword [rsp + 0x24]
inc r13d
inc r15
mov dword [rsp + 0x20], r13d
cmp r13d, esi
jl 0x14011a890
mov edi, dword [rsp + 0x58]
mov r10d, dword [rsp + 0x28]
inc r8d
inc r12
mov dword [rsp + 0x30], r8d
cmp r8d, edi
jl 0x14011a850
mov r13, qword [rsp + 0x68]
mov r15, qword [rbp - 0x80]
mov r12d, dword [rsp + 0x28]
mov r11d, dword [rsp + 0x2c]
xor ecx, ecx
mov r8d, ecx
mov dword [rbp - 0x48], ecx
cmp dword [rbp - 0x18], ecx
jle 0x14011b76d
movzx r14d, word [rsp + 0x5c]
mov ecx, r11d
mov eax, 0x55555556
sub ecx, r14d
lea r9d, [r11 + 2]
mov dword [rsp + 0x30], r14d
add ecx, 4
mov dword [rbp - 0x38], r9d
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea r10d, [r14 + rdx*2]
add r10d, edx
add edi, 0xfffffffe
mov dword [rsp + 0x50], edi
mov dword [rsp + 0x54], r10d
jmp 0x14011ab8a
mov r13, qword [rsp + 0x68]
mov r11d, dword [rsp + 0x2c]
cmp r8d, 1
jne 0x14011abfa
mov rax, qword [rbp - 0x30]
mov rcx, r15
mov edx, 0xc000
add rax, 0x600000
mov qword [rbp - 0x30], rax
movups xmm0, xmmword [rcx]
lea rax, [rax + 0x80]
lea rcx, [rcx + 0x80]
movups xmmword [rax - 0x80], xmm0
movups xmm1, xmmword [rcx - 0x70]
movups xmmword [rax - 0x70], xmm1
movups xmm0, xmmword [rcx - 0x60]
movups xmmword [rax - 0x60], xmm0
movups xmm1, xmmword [rcx - 0x50]
movups xmmword [rax - 0x50], xmm1
movups xmm0, xmmword [rcx - 0x40]
movups xmmword [rax - 0x40], xmm0
movups xmm1, xmmword [rcx - 0x30]
movups xmmword [rax - 0x30], xmm1
movups xmm0, xmmword [rcx - 0x20]
movups xmmword [rax - 0x20], xmm0
movups xmm1, xmmword [rcx - 0x10]
movups xmmword [rax - 0x10], xmm1
dec rdx
jne 0x14011aba6
jmp 0x14011ac03
test r8d, r8d
je 0x14011ae8f
mov ebx, r9d
mov dword [rsp + 0x20], ebx
cmp r9d, edi
jge 0x14011ae8f
mov eax, ebx
lea edx, [r12 + 2]
lea r8d, [r9 + 6]
sub eax, r11d
lea ecx, [rsi - 2]
mov dword [rsp + 0x60], edx
movsxd rsi, eax
mov dword [rsp + 0x40], r8d
mov qword [rsp + 0x38], rsi
nop word [rax + rax]
movsxd r10, edx
cmp r10d, ecx
jge 0x14011ae63
mov eax, 0x2aaaaaab
mov r12, r10
lea r11d, [r10 + 6]
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
cdqe
lea r8, [rax + rax*2]
mov eax, r10d
add r8, r8
sub eax, dword [rsp + 0x28]
movsxd r15, eax
mov qword [rbp - 0x78], r8
nop dword [rax]
nop word [rax + rax]
mov eax, 0x2aaaaaab
imul r11d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r11d
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
movsxd rcx, eax
add rcx, r8
movsx r9, byte [rcx + r13 + 0x35d]
cmp r9d, 1
je 0x14011ae3a
movzx eax, word [r13 + 0x44f6]
mov ecx, ebx
mov edi, 1
mov qword [rbp - 0x70], r9
imul eax, ebx
movsxd r13, eax
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 0x4510]
add r13, r12
mov qword [rsp + 0x48], rax
mov eax, 0x55555556
imul ebx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
mov ecx, r10d
lea r8, [rax + rax*2]
mov eax, 0x55555556
imul r10d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
mov ecx, ebx
add r8, rax
sub ecx, r14d
mov eax, 0x55555556
shl r8, 5
lea r14d, [rdi + 2]
imul ecx
mov eax, edx
lea rbx, [rbp + r8 + 0xe6]
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
cmp ecx, eax
mov ecx, 0
sete cl
mov qword [rsp + 0x70], rcx
nop dword [rax + rax]
movsx r8, word [rbx]
mov rax, rdi
xor rax, rcx
mov rcx, qword [rbp - 0x30]
shl rax, 9
add rax, rsi
shl rax, 9
add rax, r15
lea rax, [rax + rax*2]
lea rsi, [rcx + rax*2]
lea rax, [r8 + r8*2]
lea r9, [rax + rax]
mov rax, qword [rbp - 0x70]
movzx edx, word [r9 + rsi + 2]
lea rcx, [rax + r8*2]
add rcx, r8
movzx eax, word [rsi + rcx*2]
lea rcx, [r8 + r8*2]
sub edx, eax
shl rcx, 2
mov rax, rsi
sub rax, rcx
mov rcx, qword [rbp - 0x70]
movzx eax, word [rax + 2]
lea r8d, [rax + rdx*2]
mov rax, rcx
sub rax, r9
movzx eax, word [rsi + rax*2]
sub r8d, eax
movzx eax, word [rsi + rcx*2]
lea ecx, [rax + rax*2]
mov eax, 0x55555556
add r8d, ecx
mov rcx, qword [rsp + 0x48]
movzx r9d, word [rcx + r13*8 + 6]
movzx ecx, word [rcx + r13*8 + 2]
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r9d
cmp edx, r9d
cmovl eax, edx
cmp ecx, eax
jg 0x14011ae0a
mov ecx, r9d
cmp edx, r9d
cmovl ecx, edx
mov word [rsi + 2], cx
mov rcx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x38]
inc rdi
add rbx, 2
dec r14
jne 0x14011ad60
mov ebx, dword [rsp + 0x20]
mov r8, qword [rbp - 0x78]
mov r14d, dword [rsp + 0x30]
mov r13, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x24]
inc r10d
inc r11d
add ecx, 0xfffffffe
inc r12
inc r15
cmp r10d, ecx
jl 0x14011ac90
mov r8d, dword [rsp + 0x40]
mov edx, dword [rsp + 0x60]
mov edi, dword [rsp + 0x50]
inc ebx
inc r8d
inc rsi
mov dword [rsp + 0x20], ebx
mov dword [rsp + 0x40], r8d
mov qword [rsp + 0x38], rsi
cmp ebx, edi
jl 0x14011ac40
mov r10d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x24]
mov r12d, dword [rsp + 0x28]
cmp r10d, edi
jge 0x14011b198
movzx r8d, word [rsp + 0x78]
mov eax, 0x55555556
mov ecx, r12d
sub ecx, r8d
lea ebx, [rsi - 2]
add ecx, 4
mov dword [rsp + 0x38], ebx
imul ecx
mov r11d, edx
mov ecx, edi
shr r11d, 0x1f
sub ecx, r10d
add r11d, edx
dec ecx
lea eax, [r8 + r11*2]
lea r8d, [r10 + 6]
add r11d, eax
mov eax, r10d
mov dword [rsp + 0x60], r8d
sub eax, dword [rsp + 0x2c]
mov dword [rbp - 0x70], r11d
movsxd r9, eax
mov eax, 0xaaaaaaab
shl r9, 9
mov qword [rbp - 0x78], r9
mul ecx
shr edx, 1
lea eax, [rdx + 1]
mov qword [rsp + 0x70], rax
nop dword [rax]
cmp r11d, ebx
jge 0x14011b16d
mov eax, 0x2aaaaaab
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
lea r8d, [r11 + 7]
lea ecx, [rdx + rdx*2]
mov dword [rbp - 0x58], r8d
add ecx, ecx
sub eax, ecx
cdqe
lea r10, [rax + rax*2]
mov eax, r11d
sub eax, r12d
add r10, r10
movsxd rcx, eax
mov qword [rsp + 0x48], r10
add rcx, r9
lea rax, [rcx + rcx*2]
mov rcx, qword [rbp - 0x30]
lea r9, [rcx + rax*2]
mov eax, 0xaaaaaaab
mov ecx, ebx
sub ecx, r11d
mov qword [rbp - 0x10], r9
dec ecx
mul ecx
shr edx, 1
lea eax, [rdx + 1]
mov qword [rbp - 0x28], rax
nop dword [rax + rax]
mov eax, 0x2aaaaaab
mov rsi, r9
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
mov r8d, 1
lea ecx, [rdx + rdx*2]
mov dword [rsp + 0x20], r8d
add ecx, ecx
sub eax, ecx
movsxd rcx, eax
add rcx, r10
xor eax, eax
movsx edx, byte [rcx + r13 + 0x35d]
mov qword [rbp + 0x38], rax
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], rax
mov edi, eax
mov r10d, eax
mov dword [rsp + 0x40], edx
jmp 0x14011afc2
xor eax, eax
movzx r14d, word [rsi + 2]
mov r15d, r8d
mov ebx, eax
add r14d, r14d
neg r15d
mov ecx, ebx
movsxd rdx, edx
mov eax, r15d
shl eax, cl
mov r11d, r14d
movsxd r9, eax
lea rax, [r9 + r9*2]
movzx r12d, word [rsi + rax*2 + 2]
mov eax, r8d
shl eax, cl
lea rcx, [rdx + r9*2]
sub r11d, r12d
add rcx, r9
movsxd r8, eax
movzx r9d, word [rsi + rcx*2]
lea rax, [r8 + r8*2]
lea rcx, [rdx + r8*2]
movzx r13d, word [rsi + rax*2 + 2]
add rcx, r8
lea rax, [r10 + rdx*8]
movzx r8d, word [rsi + rcx*2]
sub r11d, r13d
lea ecx, [r9 + r8]
add ecx, r11d
mov dword [rbp + rax*4 + 0x70], ecx
cmp r10, 1
jle 0x14011b05a
sub r9d, r12d
imul r11d, r11d
sub r9d, r8d
lea eax, [r9 + r13]
imul eax, eax
add eax, r11d
movd xmm0, eax
cvtdq2ps xmm0, xmm0
addss xmm0, dword [rbp + r10*4 + 0x38]
movss dword [rbp + r10*4 + 0x38], xmm0
mov edx, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x20]
inc ebx
xor edx, 2
mov dword [rsp + 0x40], edx
cmp ebx, 2
jl 0x14011afd2
cmp edi, 1
jle 0x14011b0a9
test dil, 1
je 0x14011b0a9
movss xmm0, dword [rbp + r10*4 + 0x38]
comiss xmm0, dword [rbp + r10*4 + 0x34]
jbe 0x14011b0a9
mov eax, dword [rbp + r10*4 + 0x6c]
mov dword [rbp + r10*4 + 0x70], eax
mov eax, dword [rbp + r10*4 + 0xac]
mov dword [rbp + r10*4 + 0xb0], eax
cmp edi, 2
jl 0x14011b0b4
test dil, 1
je 0x14011b100
lea r8, [rbp + 0x70]
mov r9, rsi
mov r11d, 2
lea r8, [r8 + r10*4]
mov eax, dword [r8]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
cmp eax, 0xffffffff
jg 0x14011b0d8
xor eax, eax
jmp 0x14011b0e4
mov edx, 0xffff
mov eax, edx
cmp ecx, edx
cmovl eax, ecx
mov word [r9], ax
add r9, 4
add r8, 0x40
dec r11
jne 0x14011b0c5
mov edx, dword [rsp + 0x40]
add rsi, 0x180000
mov r8d, dword [rsp + 0x20]
xor edx, 2
inc edi
xor r8d, 0x201
inc r10
mov dword [rsp + 0x40], edx
mov dword [rsp + 0x20], r8d
cmp edi, 6
jl 0x14011afc0
mov r9, qword [rbp - 0x10]
mov r8d, dword [rbp - 0x58]
mov r10, qword [rsp + 0x48]
mov r13, qword [rsp + 0x68]
add r9, 0x12
add r8d, 3
dec qword [rbp - 0x28]
mov qword [rbp - 0x10], r9
mov dword [rbp - 0x58], r8d
jne 0x14011af70
mov r11d, dword [rbp - 0x70]
mov r8d, dword [rsp + 0x60]
mov r9, qword [rbp - 0x78]
mov rax, qword [rsp + 0x70]
mov ebx, dword [rsp + 0x38]
mov r12d, dword [rsp + 0x28]
mov r13, qword [rsp + 0x68]
add r8d, 3
add r9, 0x600
dec rax
mov dword [rsp + 0x60], r8d
mov qword [rbp - 0x78], r9
mov qword [rsp + 0x70], rax
jne 0x14011af00
mov edi, dword [rsp + 0x50]
mov ebx, dword [rsp + 0x2c]
mov r8d, dword [rsp + 0x58]
lea edx, [rbx + 3]
add r8d, 0xfffffffd
cmp edx, r8d
jge 0x14011b487
mov ecx, dword [rsp + 0x30]
mov esi, dword [rsp + 0x24]
mov eax, edx
sub eax, ebx
mov r11d, edx
add esi, 0xfffffffd
movsxd rdi, eax
sub r11d, ecx
mov eax, r8d
shl rdi, 9
add ecx, 6
sub eax, edx
lea r10d, [r12 + 3]
mov dword [rbp - 0x70], esi
mov dword [rsp + 0x20], r11d
mov qword [rsp + 0x48], rax
mov qword [rbp - 0x10], rdi
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], r10d
mov edx, 0x200
nop dword [rax]
cmp r10d, esi
jge 0x14011b462
add ecx, r11d
mov eax, 0x2aaaaaab
lea r8d, [r10 + 6]
mov dword [rbp - 0x58], r8d
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
movsxd rax, ecx
lea rbx, [rax + rax*2]
mov eax, r10d
sub eax, r12d
add rbx, rbx
movsxd r9, eax
mov eax, esi
mov qword [rbp + 0x10], rbx
sub eax, r10d
mov qword [rbp - 0x78], r9
mov r10d, eax
mov qword [rbp - 0x28], r10
mov eax, 0x2aaaaaab
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, r8d
mov r8d, 2
lea ecx, [rdx + rdx*2]
add ecx, ecx
sub eax, ecx
movsxd rcx, eax
mov rax, qword [rsp + 0x68]
add rcx, rbx
movsx eax, byte [rcx + rax + 0x35d]
sub r8d, eax
cmp r8d, 1
je 0x14011b428
lea rax, [rdi + r9]
mov r13d, 1
movsxd r9, r8d
lea rcx, [rax + rax*2]
mov rax, qword [rbp - 0x30]
mov qword [rsp + 0x70], r9
lea r15, [rax + rcx*2]
mov eax, 0x55555556
imul r11d
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0x200
lea ecx, [rdx + rdx*2]
cmp r11d, ecx
cmovne r13d, eax
mov eax, r13d
movsxd r11, r13d
xor eax, 0x201
xor r12d, r12d
lea ecx, [rax + rax*2]
mov dword [rsp + 0x60], ecx
cmp r12d, 1
jg 0x14011b390
mov eax, r13d
xor eax, r12d
test al, 1
jne 0x14011b390
movzx r14d, word [r15 + 2]
movsxd rax, ecx
lea rcx, [rax + rax*2]
mov r9d, r14d
mov edi, r14d
lea rdx, [rcx + rcx]
mov rax, r15
sub rax, rdx
movzx ecx, word [rax + 2]
movzx eax, word [rdx + r15 + 2]
sub r9d, eax
sub edi, ecx
lea rax, [r11 + r11*2]
lea rdx, [rax + rax]
mov r10d, r9d
mov r11d, r14d
sar r10d, 0x1f
mov rax, r15
mov esi, edi
sub rax, rdx
sar esi, 0x1f
mov r8d, r10d
movzx ecx, word [rax + 2]
movzx eax, word [rdx + r15 + 2]
xor r8d, r9d
mov r9, qword [rsp + 0x70]
sub r14d, eax
sub r11d, ecx
mov eax, esi
mov edx, r14d
mov ebx, r11d
xor eax, edi
sar edx, 0x1f
sar ebx, 0x1f
add r8d, eax
mov ecx, edx
mov eax, ebx
xor ecx, r14d
xor eax, r11d
sub r8d, r10d
add ecx, eax
mov eax, dword [rsp + 0x60]
sub r8d, esi
sub ecx, edx
add r8d, r8d
sub ecx, ebx
cmp ecx, r8d
jge 0x14011b393
mov eax, r13d
cdqe
lea rcx, [rax + rax*2]
lea rax, [rax + rax*2]
lea rdx, [rax + rax]
lea rax, [rcx + r9]
movzx r8d, word [r15 + rax*2]
mov rax, r9
sub rax, rcx
movzx eax, word [r15 + rax*2]
add r8d, eax
mov rax, r15
sub rax, rdx
movzx ecx, word [rax + 2]
movzx eax, word [rdx + r15 + 2]
sub r8d, ecx
sub r8d, eax
movzx eax, word [r15 + 2]
lea eax, [r8 + rax*2]
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
cmp eax, 0xffffffff
jg 0x14011b3e7
xor eax, eax
jmp 0x14011b3f3
mov edx, 0xffff
mov eax, edx
cmp ecx, edx
cmovl eax, ecx
mov ecx, dword [rsp + 0x60]
inc r12d
mov word [r15 + r9*2], ax
add r15, 0x180000
movsxd r11, r13d
cmp r12d, 4
jl 0x14011b2e0
mov r9, qword [rbp - 0x78]
mov r10, qword [rbp - 0x28]
mov r11d, dword [rsp + 0x20]
mov rbx, qword [rbp + 0x10]
mov rdi, qword [rbp - 0x10]
mov r8d, dword [rbp - 0x58]
inc r9
inc r8d
dec r10
mov qword [rbp - 0x78], r9
mov qword [rbp - 0x28], r10
mov dword [rbp - 0x58], r8d
jne 0x14011b250
mov r10d, dword [rsp + 0x38]
mov rax, qword [rsp + 0x48]
mov esi, dword [rbp - 0x70]
mov ecx, dword [rsp + 0x40]
mov r12d, dword [rsp + 0x28]
mov edx, 0x200
add rdi, rdx
inc r11d
dec rax
mov qword [rsp + 0x48], rax
mov qword [rbp - 0x10], rdi
mov dword [rsp + 0x20], r11d
jne 0x14011b200
mov edi, dword [rsp + 0x50]
mov ebx, dword [rsp + 0x2c]
mov r9d, dword [rbp - 0x38]
mov r8d, r9d
mov dword [rsp + 0x20], r9d
cmp r9d, edi
jge 0x14011b73b
mov eax, r9d
mov r10d, r9d
sub r10d, dword [rsp + 0x30]
sub eax, ebx
movsxd r9, eax
mov dword [rsp + 0x60], r10d
shl r9, 9
mov qword [rsp + 0x38], r9
nop word [rax + rax]
mov eax, 0x55555556
imul r10d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [rdx + rdx*2]
cmp r10d, ecx
je 0x14011b70c
mov eax, dword [rsp + 0x24]
lea esi, [r12 + 2]
add eax, 0xfffffffe
cmp esi, eax
jge 0x14011b70c
movzx eax, word [rsp + 0x78]
mov r15d, esi
sub r15d, eax
mov eax, esi
sub eax, r12d
movsxd r13, eax
nop dword [rax]
nop word [rax + rax]
mov eax, 0x55555556
imul r15d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea ecx, [rdx + rdx*2]
cmp r15d, ecx
je 0x14011b6ec
lea rax, [r9 + r13]
lea r14, [rbp + 0xe0]
lea rcx, [rax + rax*2]
mov rax, qword [rbp - 0x30]
lea r9, [rax + rcx*2]
mov ecx, r8d
mov eax, 0x55555556
imul r8d
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
mov ecx, esi
lea r8, [rax + rax*2]
mov eax, 0x55555556
imul esi
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
add r8, rax
mov eax, dword [rbp - 0x50]
shl r8, 5
add r14, r8
test eax, eax
jle 0x14011b6e2
lea r12d, [rax - 1]
shr r12d, 1
inc r12d
nop word [rax + rax]
movsx r10d, word [r14]
movsx r8d, word [r14 + 2]
mov rbx, r9
mov ecx, r10d
movsx rax, r10w
mov edi, 2
add ecx, r8d
lea rcx, [rax + rax*2]
je 0x14011b657
movzx edx, word [r9 + rcx*2 + 2]
movzx eax, word [r9 + 2]
lea r11d, [rax + rax*2]
movsx rax, r8w
add edx, edx
lea rcx, [rax + rax*2]
sub r11d, edx
movzx eax, word [r9 + rcx*2 + 2]
sub r11d, eax
movsx rax, r8w
lea rcx, [rax + rax*2]
movsx rax, r10w
lea r8, [r9 + rcx*2]
lea rcx, [rax + rax*2]
lea r10, [r9 + rcx*2]
nop dword [rax]
nop word [rax + rax]
movzx ecx, word [r8]
movzx edx, word [r10]
mov eax, 0x55555556
add ecx, r11d
lea edx, [rcx + rdx*2]
imul edx
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edx, 0xffffffff
jg 0x14011b635
xor eax, eax
jmp 0x14011b641
mov ecx, 0xffff
mov eax, ecx
cmp edx, ecx
cmovl eax, edx
mov word [rbx], ax
add rbx, 4
add r10, 4
add r8, 4
dec rdi
jne 0x14011b610
jmp 0x14011b6ce
movzx eax, word [r9 + rcx*2 + 2]
movzx r11d, word [r9 + 2]
add r11d, r11d
sub r11d, eax
movsx rax, r8w
lea rcx, [rax + rax*2]
movzx eax, word [r9 + rcx*2 + 2]
sub r11d, eax
movsx rax, r10w
lea rcx, [rax + rax*2]
movsx rax, r8w
lea r10, [r9 + rcx*2]
lea rcx, [rax + rax*2]
lea r8, [r9 + rcx*2]
movzx ecx, word [r10]
movzx eax, word [r8]
add ecx, r11d
add eax, ecx
cdq
sub eax, edx
sar eax, 1
mov ecx, eax
cmp eax, 0xffffffff
jg 0x14011b6ae
xor eax, eax
jmp 0x14011b6ba
mov edx, 0xffff
mov eax, edx
cmp ecx, edx
cmovl eax, ecx
mov word [rbx], ax
add rbx, 4
add r8, 4
add r10, 4
dec rdi
jne 0x14011b691
add r14, 4
add r9, 0x180000
dec r12
jne 0x14011b5a0
mov r9, qword [rsp + 0x38]
mov r8d, dword [rsp + 0x20]
mov eax, dword [rsp + 0x24]
inc esi
inc r15d
add eax, 0xfffffffe
inc r13
cmp esi, eax
jl 0x14011b510
mov r10d, dword [rsp + 0x60]
mov edi, dword [rsp + 0x50]
mov r12d, dword [rsp + 0x28]
inc r8d
inc r10d
mov eax, 0x200
mov dword [rsp + 0x20], r8d
mov dword [rsp + 0x60], r10d
add r9, rax
mov qword [rsp + 0x38], r9
cmp r8d, edi
jl 0x14011b4c0
mov r9d, dword [rbp - 0x38]
mov r8d, dword [rbp - 0x48]
mov r14d, dword [rsp + 0x30]
mov r10d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x24]
mov r15, qword [rbp - 0x80]
mov r12d, dword [rsp + 0x28]
inc r8d
mov dword [rbp - 0x48], r8d
cmp r8d, dword [rbp - 0x18]
jl 0x14011ab80
mov edi, dword [rsp + 0x58]
xor ecx, ecx
sub edi, dword [rsp + 0x2c]
sub esi, dword [rsp + 0x28]
mov r8d, dword [rbp - 0x50]
mov r10, qword [rbp - 0x80]
mov dword [rsp + 0x58], edi
mov dword [rsp + 0x24], esi
mov qword [rbp - 0x30], r10
test r8d, r8d
jle 0x14011b9f7
mov r11, qword [rbp]
lea edx, [rdi - 2]
lea r9d, [rdi - 3]
mov r14, r11
mov dword [rbp - 0x70], edx
mov dword [rsp + 0x54], r9d
sub r14, r10
mov r13, rcx
mov qword [rbp - 0x48], rcx
mov rax, rcx
mov qword [rbp - 0x38], rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x70], r14
mov qword [rbp - 0x58], r8
cmp edx, 2
jle 0x14011b842
mov r13, qword [rsp + 0x68]
lea r15d, [rsi - 2]
lea r12d, [rdx - 2]
mov esi, 2
nop
cmp r15d, 2
jle 0x14011b821
lea rax, [rcx + rsi]
lea rbx, [r10 + 0xc]
lea edi, [r15 - 2]
lea rcx, [rax + rax*2]
shl rcx, 0xa
add rbx, rcx
nop dword [rax]
lea r8, [rbx + r14]
mov rdx, rbx
mov rcx, r13
call fcn.1400f47b0
add rbx, 6
dec rdi
jne 0x14011b800
mov rcx, qword [rsp + 0x60]
mov r10, qword [rbp - 0x80]
inc rsi
dec r12
jne 0x14011b7e0
mov r13, qword [rbp - 0x48]
mov rax, qword [rbp - 0x38]
mov r8, qword [rbp - 0x58]
mov r9d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x24]
mov r11, qword [rbp]
cmp r9d, 3
jle 0x14011b9b0
mov r14, qword [rbp - 0x48]
and eax, 3
lea rcx, [0x140222350]
movsx rcx, word [rcx + rax*2]
mov rdi, r11
lea edx, [rsi - 3]
lea rax, [rcx + rcx*2]
mov dword [rsp + 0x38], edx
mov r15d, 3
lea rbx, [rax + rax]
lea eax, [r9 - 3]
sub rdi, rbx
mov qword [rsp + 0x48], rax
add rdi, 0x2414
nop word [rax + rax]
cmp edx, 3
jle 0x14011b97d
mov rsi, qword [rbp + 8]
lea rax, [r14 + r15]
mov r11, rdi
add rsi, 0xc
shl rax, 0xb
lea r13, [rbx + rbx]
add rsi, rax
lea r12d, [rdx - 3]
nop word [rax + rax]
movsx eax, word [r11 + rbx*2 - 2]
movsx r10d, word [rbx + r11 - 2]
movsx r9d, word [rbx + r11 + 2]
movsx ecx, word [rbx + r11]
add r9d, r9d
add r10d, r10d
sub r10d, eax
movsx eax, word [r11 - 2]
add ecx, ecx
sub r10d, eax
movsx eax, word [r11 + rbx*2 + 2]
lea rsi, [rsi + 4]
sub r9d, eax
movsx eax, word [r11 + 2]
imul r8d, r10d, 0x1f4
imul r10d, r10d
sub r9d, eax
mov eax, 0xe1fc780f
lea r11, [r11 + 6]
imul r8d
add edx, r8d
sar edx, 9
mov eax, edx
shr eax, 0x1f
add edx, eax
movsx eax, word [r13 + r11 - 6]
sub r9d, edx
sub ecx, eax
mov eax, 0x8d3dcb09
imul r8d
movsx eax, word [r11 - 6]
add edx, r8d
imul r9d, r9d
sar edx, 7
mov r8d, edx
add edx, ecx
shr r8d, 0x1f
add r8d, edx
sub r8d, eax
imul r8d, r8d
add r8d, r9d
add r8d, r10d
movd xmm0, r8d
cvtdq2ps xmm0, xmm0
movss dword [rsi - 4], xmm0
dec r12
jne 0x14011b8c0
mov rax, qword [rsp + 0x48]
mov edx, dword [rsp + 0x38]
inc r15
add rdi, 0xc00
dec rax
mov qword [rsp + 0x48], rax
jne 0x14011b890
mov r14, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x60]
mov r13, qword [rbp - 0x48]
mov rax, qword [rbp - 0x38]
mov r8, qword [rbp - 0x58]
mov r9d, dword [rsp + 0x54]
mov esi, dword [rsp + 0x24]
mov r10, qword [rbp - 0x80]
mov r11, qword [rbp]
mov edx, 0x200
inc rax
sub r14, 0x180000
add rcx, rdx
add r13, rdx
mov edx, dword [rbp - 0x70]
dec r8
mov qword [rbp - 0x38], rax
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x60], rcx
mov qword [rbp - 0x48], r13
mov qword [rbp - 0x58], r8
jne 0x14011b7c7
mov edi, dword [rsp + 0x58]
mov rbx, qword [rbp - 0x20]
mov r8, qword [rbp + 0x18]
xor edx, edx
mov rcx, rbx
call fcn.1401c0040
lea eax, [rdi - 4]
cmp eax, 4
jle 0x14011bbaf
add eax, 0xfffffffc
lea r15d, [rsi - 4]
mov edi, 0x800
mov r12d, eax
mov r14d, 4
mov r13, rbx
mov dword [rsp + 0x38], r15d
mov eax, 0x200
nop word [rax + rax]
cmp r15d, 4
jle 0x14011bb99
mov r8, qword [rbp - 0x68]
lea esi, [r15 - 4]
mov r15, qword [rbp + 8]
mov ebx, 4
nop dword [rax + rax]
xor edx, edx
movaps xmm0, xmm7
cmp r8, 4
jl 0x14011bad8
lea rax, [rbx + 0x80000]
add rax, rdi
lea rcx, [r15 + rax*4]
lea rax, [r8 - 4]
shr rax, 2
inc rax
lea rdx, [rax*4]
nop dword [rax]
movss xmm1, dword [rcx - 0x200000]
comiss xmm0, xmm1
jbe 0x14011baa0
movaps xmm0, xmm1
movss xmm1, dword [rcx - 0x100000]
comiss xmm0, xmm1
jbe 0x14011bab0
movaps xmm0, xmm1
movss xmm1, dword [rcx]
comiss xmm0, xmm1
jbe 0x14011babc
movaps xmm0, xmm1
movss xmm1, dword [rcx + 0x100000]
comiss xmm0, xmm1
jbe 0x14011bacc
movaps xmm0, xmm1
add rcx, 0x400000
dec rax
jne 0x14011ba90
cmp rdx, r8
jge 0x14011bb10
mov rax, rdx
shl rax, 9
add rax, r14
shl rax, 9
add rax, rbx
lea rcx, [r15 + rax*4]
mov rax, r8
sub rax, rdx
movss xmm1, dword [rcx]
comiss xmm0, xmm1
jbe 0x14011bb04
movaps xmm0, xmm1
add rcx, 0x100000
dec rax
jne 0x14011baf8
mulss xmm0, xmm6
test r8, r8
jle 0x14011bb83
lea rax, [rdi + rbx]
lea r10, [r15 - 0x804]
mov r11, r8
lea rdx, [rax + r13]
lea r10, [r10 + rax*4]
nop
mov rcx, r10
mov r9d, 3
nop dword [rax]
mov rax, rcx
mov r8d, 3
nop dword [rax]
comiss xmm0, dword [rax]
jb 0x14011bb57
inc byte [rdx]
add rax, 4
dec r8
jne 0x14011bb50
add rcx, 0x800
dec r9
jne 0x14011bb40
add r10, 0x100000
add rdx, 0x40000
dec r11
jne 0x14011bb30
mov r8, qword [rbp - 0x68]
inc rbx
dec rsi
jne 0x14011ba60
mov r15d, dword [rsp + 0x38]
mov eax, 0x200
inc r14
add rdi, rax
dec r12
jne 0x14011ba40
mov edi, dword [rsp + 0x58]
mov rbx, r13
mov r13, qword [rsp + 0x68]
mov r11d, dword [rsp + 0x2c]
movzx eax, word [r13 + 0x44f4]
sub eax, r11d
cmp eax, 0x204
jge 0x14011bbce
lea edi, [rax + 2]
movzx eax, word [r13 + 0x44f6]
mov r12d, dword [rsp + 0x28]
sub eax, r12d
lea edx, [rax + 2]
cmp eax, 0x204
jl 0x14011bbec
mov edx, dword [rsp + 0x24]
movsxd r10, dword [rbp - 8]
lea eax, [rdi - 8]
cmp r10d, eax
jge 0x14011be7a
mov ecx, 8
mov r13, r10
mov r14, r10
cmp r12d, ecx
mov r8d, 0x200
cmovl ecx, r12d
add edx, 0xfffffff8
shl r13, 9
sub eax, r10d
mov dword [rsp + 0x38], ecx
mov dword [rbp - 0x70], edx
mov qword [rbp - 0x78], rax
nop dword [rax]
cmp ecx, edx
jge 0x14011be54
mov r15d, dword [rbp - 0x50]
mov r12, qword [rbp - 0x60]
mov rdi, qword [rbp - 0x68]
add r12, r14
mov eax, edx
add r15d, 0xfffffffc
sub eax, ecx
movsxd rsi, ecx
mov qword [rsp + 0x48], r12
mov ecx, eax
mov qword [rsp + 0x70], rcx
nop
xor r9d, r9d
mov ecx, r9d
test rdi, rdi
jle 0x14011bcd8
lea rax, [rsi + r13]
lea r11, [rbx - 0x402]
add r11, rax
xor r12d, r12d
nop dword [rax]
mov r9d, r12d
mov dword [rbp + rcx*4 + 0x50], r12d
mov r8, r11
mov ebx, 5
mov rdx, r8
mov r10d, 5
nop dword [rax]
movsx eax, byte [rdx]
lea rdx, [rdx + 1]
add r9d, eax
dec r10
jne 0x14011bca0
mov eax, 0x200
add r8, rax
dec rbx
jne 0x14011bc90
mov dword [rbp + rcx*4 + 0x50], r9d
inc rcx
add r11, 0x40000
cmp rcx, rdi
jl 0x14011bc80
mov r12, qword [rsp + 0x48]
xor r9d, r9d
test r15d, r15d
jle 0x14011bd01
lea rax, [rbp + 0x60]
mov r8d, r15d
mov ecx, dword [rax - 0x10]
mov edx, dword [rax]
cmp ecx, edx
jge 0x14011bcf3
mov dword [rax - 0x10], r9d
jmp 0x14011bcf8
jle 0x14011bcf8
mov dword [rax], r9d
add rax, 4
dec r8
jne 0x14011bce4
movzx r8d, word [rbp + 0x50]
mov ecx, 1
cmp rcx, rdi
jge 0x14011bd28
movzx eax, r8w
cmp eax, dword [rbp + rcx*4 + 0x50]
jge 0x14011bd20
movzx r8d, word [rbp + rcx*4 + 0x50]
inc rcx
cmp rcx, rdi
jl 0x14011bd10
movzx eax, r8w
mov rdx, r9
shr ax, 3
sub r8w, ax
xor eax, eax
mov qword [rbp + 0x28], rax
mov r11d, dword [rbp + 0x2c]
mov qword [rbp + 0x30], rax
mov r10d, eax
mov ebx, eax
test rdi, rdi
jle 0x14011bdb7
mov rax, qword [rbp - 0x68]
mov r12, qword [rbp - 0x80]
movzx edi, r8w
mov r8, r9
mov r9d, dword [rbp + 0x34]
mov ecx, 0x200
cmp dword [rbp + rdx*4 + 0x50], edi
jl 0x14011bda1
lea rax, [r14 + r8]
shl rax, 9
add rax, rsi
lea rcx, [rax + rax*2]
movzx eax, word [r12 + rcx*2]
add ebx, eax
movzx eax, word [r12 + rcx*2 + 2]
add r11d, eax
movzx eax, word [r12 + rcx*2 + 4]
mov ecx, 0x200
add r10d, eax
mov rax, qword [rbp - 0x68]
inc r9d
inc rdx
add r8, rcx
cmp rdx, rax
jl 0x14011bd67
mov r12, qword [rsp + 0x48]
mov rdi, qword [rbp - 0x68]
jmp 0x14011bdbb
mov r9d, dword [rbp + 0x34]
mov r8, qword [rsp + 0x68]
mov eax, ebx
mov rbx, qword [rbp - 0x40]
mov rcx, qword [r8 + 0x4510]
cdq
idiv r9d
movzx edx, word [r8 + 0x44f6]
imul rdx, r12
add rdx, rbx
add rdx, rsi
mov word [rcx + rdx*8], ax
mov rcx, qword [r8 + 0x4510]
mov eax, r11d
cdq
idiv r9d
movzx edx, word [r8 + 0x44f6]
imul rdx, r12
add rdx, rbx
add rdx, rsi
mov word [rcx + rdx*8 + 2], ax
mov rcx, qword [r8 + 0x4510]
mov eax, r10d
cdq
idiv r9d
movzx edx, word [r8 + 0x44f6]
imul rdx, r12
add rdx, rbx
mov rbx, qword [rbp - 0x20]
add rdx, rsi
inc rsi
dec qword [rsp + 0x70]
mov word [rcx + rdx*8 + 4], ax
jne 0x14011bc60
mov ecx, dword [rsp + 0x38]
mov edx, dword [rbp - 0x70]
mov rax, qword [rbp - 0x78]
mov r8d, 0x200
mov rbx, qword [rbp - 0x20]
inc r14
add r13, r8
dec rax
mov qword [rbp - 0x78], rax
jne 0x14011bc30
mov r13, qword [rsp + 0x68]
mov r12d, dword [rsp + 0x28]
mov r11d, dword [rsp + 0x2c]
mov r8, qword [rbp - 0x40]
movzx ecx, word [r13 + 0x44f6]
mov r9, qword [rbp - 0x60]
mov r14, qword [rbp + 0x20]
add r12d, 0x1f0
add r8, 0x1f0
lea eax, [rcx - 0x13]
lea r10d, [r11 + 0x200]
mov dword [rsp + 0x28], r12d
mov qword [rbp - 0x40], r8
cmp r12d, eax
jl 0x14011a6f0
movzx eax, word [r13 + 0x44f4]
add r11d, 0x1f0
add r9, 0x1f0
sub eax, 0x13
mov dword [rsp + 0x2c], r11d
mov qword [rbp - 0x60], r9
cmp r11d, eax
jl 0x14011a690
movaps xmm7, xmmword [rsp + 0x300]
movaps xmm6, xmmword [rsp + 0x310]
mov rcx, qword [rbp - 0x80]
call fcn.1401be23c
mov edx, 8
mov rcx, r13
call fcn.1400f2a60
mov rcx, qword [rbp + 0x1f0]
xor rcx, rsp
call fcn.1401bd600
mov rbx, qword [rsp + 0x370]
add rsp, 0x320
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret