Function at 0x14002ee0a
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x3b8
movapd xmmword [rsp + 0x3a0], xmm7
movapd xmmword [rsp + 0x390], xmm6
mov r12, r8
mov rsi, rdx
mov qword [rsp + 0x190], rcx
mov rbx, rdx
shr rbx, 0x20
add bx, si
mov eax, 0xffff
cmovb ebx, eax
cmp bx, si
jbe 0x14002ee99
mov ebp, esi
shr ebp, 0x10
mov r14, rsi
shr r14, 0x30
add r14w, bp
cmovb r14d, eax
mov edi, esi
cmp r14w, bp
jbe 0x14002ee92
mov r8d, ebp
lea r15d, [r8 + 1]
mov rcx, r12
mov edx, edi
call fcn.1400446bf
mov rcx, rax
call fcn.140044674
mov r8d, r15d
cmp r15w, r14w
jb 0x14002ee73
inc edi
cmp di, bx
jb 0x14002ee6a
mov al, byte [0x14009e330]
mov edx, 0x3c
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x140032225
mov rdi, rax
mov rax, rsi
shr rax, 0x30
movabs rcx, 0xffff000000000000
mov rdx, rsi
and rdx, rcx
add rdx, rcx
test rax, rax
cmove rdx, rax
movabs rcx, 0xffffffffffff
and rcx, rsi
or rcx, rdx
mov dword [rdi], 0x30002
mov dword [rdi + 0xc], 0x70003
mov dword [rdi + 0x18], 0xb0002
mov dword [rdi + 0x24], 0x50004
mov dword [rdi + 0x30], 0x10002
mov eax, 5
lea rdx, [rsp + 0x1c0]
mov qword [rdx], rax
mov qword [rdx + 8], rdi
mov qword [rdx + 0x10], rax
mov dword [rdx + 0x18], 0
mov word [rdx + 0x1c], 0x101
call fcn.140040203
mov rbx, rax
mov r14, rdx
mov rcx, qword [0x14009e2b0]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
test r14, r14
je 0x140032140
cmp r14, 1
je 0x140032149
cmp r14, 2
jbe 0x140032152
cmp r14, 3
je 0x140032168
cmp r14, 4
jbe 0x14003217e
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x60], rax
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x180], rax
mov rsi, qword [rbx + 0x20]
mov rax, qword [rbx + 0x28]
mov qword [rsp + 0x2e0], rax
mov r15, qword [rbx + 0x30]
mov al, byte [0x14009e330]
mov edx, 0x18
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x140032216
mov rdi, rax
mov eax, 0x320000
mov dword [rdi], eax
mov dword [rdi + 0xc], eax
mov eax, 2
lea rdx, [rsp + 0x1c0]
mov qword [rdx], rax
mov qword [rdx + 8], rdi
mov qword [rdx + 0x10], rax
mov dword [rdx + 0x18], 0
mov word [rdx + 0x1c], 0x100
mov rcx, rsi
call fcn.140040203
mov rsi, rax
mov r13, rdx
mov rcx, qword [0x14009e2b0]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
test r13, r13
je 0x140032194
cmp r13, 1
je 0x14003219d
mov qword [rsp + 0x318], r13
mov qword [rsp + 0x328], r15
mov qword [rsp + 0x330], r14
mov qword [rsp + 0x338], rbx
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0x1b0], rax
mov qword [rsp + 0x320], rsi
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x2d8], rax
mov rdx, qword [rsp + 0x190]
mov rcx, qword [rdx + 0xb8]
mov rax, qword [rdx + 0xc8]
mov qword [rsp + 0x1a8], rcx
add rax, rcx
mov rcx, qword [rdx + 0xd0]
mov qword [rsp + 0x340], rcx
add rax, rcx
movq xmm0, rax
movdqa xmm1, xmmword [0x1400781f0]
punpckldq xmm0, xmm1
movapd xmm2, xmmword [0x140078200]
subpd xmm0, xmm2
movapd xmm6, xmm0
unpckhpd xmm6, xmm0
addsd xmm6, xmm0
mov rax, qword [rdx + 0xd8]
cmp rax, 1
adc rax, 0
movq xmm0, rax
punpckldq xmm0, xmm1
subpd xmm0, xmm2
movapd xmm1, xmm0
unpckhpd xmm1, xmm0
addsd xmm1, xmm0
divsd xmm6, xmm1
mov rcx, qword [rdx + 0x48]
mov edx, dword [rdx + 0x50]
call fcn.14005e770
movabs rcx, 0x8000000000000000
lea rsi, [rsp + 0x1c0]
mov qword [rsi], rcx
mov cl, 0x13
mov byte [rsi + 0x18], cl
mov byte [rsi + 0x1c], cl
xor r13d, r13d
mov dword [rsi + 0x20], r13d
mov byte [rsi + 0x24], cl
mov byte [rsi + 0x28], cl
mov dword [rsi + 0x2c], r13d
mov word [rsi + 0x30], 0
mov byte [rsi + 0x32], 0xf
lea rcx, [0x1400742c3]
lea rdi, [rsp + 0xd0]
mov qword [rdi], rcx
mov rcx, qword [rdi]
mov rdx, 0xffffffffdc8c8312
xor rdx, qword [0x14009d608]
imul rdx, rdx, 0xffffffffee54616f
movabs r8, 0xfd9128a79e677a25
add r8, rdx
rol r8, 4
mov rbp, rax
mov r15d, 0xffff
and r8, r15
movabs rbx, 0x14a2ccaee4e4fcd1
xor rbx, qword [rcx + r8]
movzx r14d, word [rcx + r8 + 8]
xor r14d, 0x6c95
mov ecx, 0xa
call fcn.140025085
mov qword [rdx], rbx
mov word [rdx + 8], r14w
mov qword [rdi], rax
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], 0xa
mov dword [rdi + 0x20], r13d
movabs rbx, 0x100000010
mov qword [rdi + 0x18], rbx
lea r14, [rsp + 0x130]
mov rcx, r14
mov rdx, rdi
call fcn.140044a27
mov rcx, rsi
call fcn.14002ed9d
mov rax, qword [r14 + 0x10]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [r14]
movaps xmmword [rsi], xmm0
mov rcx, qword [rsi]
movupd xmm0, xmmword [rsi + 0x18]
movapd xmmword [r14 + 0x10], xmm0
mov rax, qword [rsi + 8]
mov qword [r14], rax
mov rax, qword [rsi + 0x10]
mov qword [r14 + 8], rax
mov al, byte [rsi + 0x31]
mov byte [rsp + 0x68], al
mov dl, byte [rsi + 0x32]
mov eax, dword [rsi + 0x33]
mov dword [rsp + 0x2e8], eax
mov al, byte [rsi + 0x37]
mov byte [rsp + 0x2ec], al
mov dword [r14 + 0x18], r13d
movabs rax, 0x100000009
mov qword [r14 + 0x10], rax
mov rax, qword [r14]
mov r9, qword [r14 + 8]
mov r8, qword [r14 + 0x10]
mov qword [rsi + 0x10], r8
mov r8d, dword [r14 + 0x18]
mov dword [rsi + 0x18], r8d
mov r8d, dword [r14 + 0x1c]
mov dword [rsi + 0x1c], r8d
mov qword [rsi], rax
mov qword [rsi + 8], r9
mov dword [rsi + 0x24], r13d
mov qword [rsi + 0x1c], rbx
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsi]
mov r9, qword [rsi + 8]
mov r8, qword [rsi + 0x10]
mov qword [rsp + 0x90], r8
mov r8d, dword [rsi + 0x18]
mov dword [rsp + 0x98], r8d
mov r8d, dword [rsi + 0x1c]
mov dword [rsp + 0x9c], r8d
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], r9
mov qword [rsp + 0x78], rcx
mov byte [rsp + 0xc8], dl
mov r8, qword [rsp + 0x60]
call fcn.140044a87
mov r8, rax
shr r8, 0x20
movabs rcx, 0xfffe00000000
add rcx, rax
movabs rdx, 0xffff00000000
and rcx, rdx
cmp r8w, 3
cmovae r13, rcx
xorpd xmm0, xmm0
ucomisd xmm6, xmm0
jb 0x140032234
movsd xmm0, qword [0x140078210]
ucomisd xmm0, xmm6
jb 0x140032234
lea rcx, [rax + 1]
movabs r8, 0xffff0000ffff0000
mov qword [rsp + 0x58], rax
mov rdx, rax
and rdx, r8
mov qword [rsp + 0x38], rcx
and r15, rcx
mov qword [rsp + 0x120], rdx
or r15, rdx
mov qword [rsp + 0x70], r13
or r15, r13
lea r14, [rsp + 0x40]
mov rcx, r14
mov rdx, rbp
call fcn.1400322ad
lea rax, [0x140078ddf]
mov qword [rsp + 0x1c0], rax
mov rax, qword [rsp + 0x1c0]
mov rcx, qword [0x14009d610]
mov rdx, rcx
shr rdx, 0x1e
xor rdx, rcx
add rdx, 0x10998f86
rol rdx, 7
mov ecx, 0xffff
and rdx, rcx
movzx r8d, byte [rax + rdx + 2]
movzx eax, word [rax + rdx]
xor eax, 0x2e6c
xor r8b, 0xb5
lea rdx, [rsp + 0x358]
mov byte [rdx + 2], r8b
mov word [rdx], ax
lea r11, [rsp + 0x2b8]
mov qword [r11], rdx
mov eax, 3
mov qword [r11 + 8], rax
movsd xmm7, qword [0x140078218]
mulsd xmm7, xmm6
lea r8, [rsp + 0x2f8]
movsd qword [r8], xmm7
lea rdx, [0x14008003c]
mov qword [rsp + 0x1c0], rdx
mov rdx, qword [rsp + 0x1c0]
mov r9, 0xffffffff8e068d35
xor r9, qword [0x14009d618]
mov r10d, 0x828cc5fb
add r10, r9
rol r10, 3
and r10, rcx
mov cl, byte [rdx + r10]
lea rbp, [rsp + 0x348]
lea rbx, [rsp + 0x168]
mov qword [rbx], rbp
mov edx, 1
mov qword [rbx + 8], rdx
mov qword [rsp + 0xd0], r14
lea r9, [0x140017010]
mov qword [rsp + 0xd8], r9
mov qword [rsp + 0xe0], r11
lea r11, [0x14001b970]
mov qword [rsp + 0xe8], r11
mov qword [rsp + 0xf0], r8
mov r9d, 2
mov qword [rsp + 0x1c0], r9
mov qword [rsp + 0x1c8], rdx
mov qword [rsp + 0x1d0], r9
mov qword [rsp + 0x1d8], r9
xor r13d, r13d
mov qword [rsp + 0x1e0], r13
mov r10d, 0x20
mov qword [rsp + 0x1e8], r10
mov r8b, 3
mov byte [rsp + 0x1f0], r8b
mov qword [rsp + 0x1f8], r9
mov qword [rsp + 0x200], rdx
mov qword [rsp + 0x208], r9
mov qword [rsp + 0x210], r9
mov qword [rsp + 0x218], rdx
mov qword [rsp + 0x220], r10
mov byte [rsp + 0x228], r8b
mov qword [rsp + 0x230], r13
mov qword [rsp + 0x238], rdx
mov qword [rsp + 0x240], r9
mov qword [rsp + 0x248], r9
mov qword [rsp + 0x250], r9
mov qword [rsp + 0x258], r10
mov byte [rsp + 0x260], r8b
mov qword [rsp + 0x268], r9
mov qword [rsp + 0x270], rdx
mov qword [rsp + 0x278], r9
mov qword [rsp + 0x280], r9
mov qword [rsp + 0x288], rax
mov qword [rsp + 0x290], r10
lea rax, [0x140080188]
lea rdx, [rsp + 0x130]
mov qword [rdx], rax
mov eax, 4
mov qword [rdx + 8], rax
mov qword [rdx + 0x20], rsi
mov qword [rdx + 0x28], rax
mov qword [rdx + 0x10], rdi
xor cl, 2
mov byte [rbp], cl
mov byte [rsp + 0x298], r8b
mov qword [rdx + 0x18], rax
lea rax, [0x140022cc0]
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rbx
mov qword [rsp + 0x108], r11
lea rcx, [rsp + 0xb0]
call fcn.140017380
cmp qword [r14], r13
je 0x14002f5d4
mov r8, qword [rsp + 0x48]
mov rcx, qword [0x14009e2b0]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov rsi, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
mov rax, qword [rsp + 0xc0]
lea rdi, [rsp + 0x228]
movzx ecx, word [rdi - 0x68]
mov word [rsp + 0x168], cx
mov cl, byte [rdi - 0x66]
mov byte [rsp + 0x16a], cl
lea rcx, [rsp + 0xd0]
movzx edx, word [rcx]
mov word [rsp + 0x2b8], dx
mov dl, byte [rcx + 2]
mov byte [rsp + 0x2ba], dl
movups xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movups xmmword [rdi - 0x60], xmm0
movups xmmword [rdi - 0x50], xmm1
movups xmmword [rdi - 0x40], xmm2
mov edx, dword [rsp + 0x130]
mov r8d, dword [rsp + 0x133]
mov dword [rsp + 0x43], r8d
mov dword [rsp + 0x40], edx
movabs rbx, 0x8000000000000001
mov qword [rdi - 0x68], rbx
mov qword [rdi - 0x30], rsi
mov qword [rdi - 0x28], r14
mov qword [rdi - 0x20], rax
mov al, 0x13
mov byte [rdi - 0x18], al
mov dl, byte [rsp + 0x16a]
mov byte [rdi - 0x15], dl
movzx edx, word [rsp + 0x168]
mov word [rdi - 0x17], dx
mov byte [rdi - 0x14], al
mov al, byte [rsp + 0x2ba]
mov byte [rdi - 0x11], al
movzx eax, word [rsp + 0x2b8]
mov word [rdi - 0x13], ax
mov dword [rdi - 0x10], r13d
movsd qword [rdi - 8], xmm6
mov al, 0xb
mov byte [rdi], al
mov byte [rdi + 3], r13b
mov word [rdi + 1], r13w
mov dl, 1
mov byte [rdi + 4], dl
mov byte [rdi + 7], r13b
mov word [rdi + 5], r13w
mov dword [rdi + 8], r13d
lea rbp, [rsp + 0x234]
mov byte [rbp], al
mov byte [rbp + 3], r13b
mov word [rbp + 1], r13w
mov byte [rbp + 4], dl
mov byte [rbp + 7], r13b
mov word [rbp + 5], r13w
mov dword [rbp + 8], 4
mov byte [rbp + 0xc], r13b
mov eax, dword [rsp + 0x40]
mov r8d, dword [rsp + 0x43]
mov dword [rbp + 0x10], r8d
mov dword [rbp + 0xd], eax
mov rax, qword [rsp + 0x78]
mov qword [rcx], rax
movapd xmm0, xmmword [rsp + 0x80]
movapd xmm1, xmmword [rsp + 0x90]
movupd xmmword [rcx + 8], xmm0
movupd xmmword [rcx + 0x18], xmm1
mov rax, qword [rsp + 0xa0]
mov qword [rcx + 0x28], rax
mov byte [rcx + 0x30], dl
mov al, byte [rsp + 0x68]
mov byte [rcx + 0x31], al
mov al, byte [rsp + 0xc8]
mov byte [rcx + 0x32], al
mov eax, dword [rsp + 0x2e8]
mov dword [rcx + 0x33], eax
mov al, byte [rsp + 0x2ec]
mov byte [rcx + 0x37], al
mov rdx, qword [rsp + 0x60]
mov r8, r12
call fcn.140044b53
mov rcx, r12
mov rdx, r15
mov r8, rdi
call fcn.14004494c
mov qword [rbp - 0x74], rbx
mov rdi, qword [rsp + 0x58]
shr rdi, 0x30
mov rcx, r12
mov rdx, r15
mov r8, rbp
call fcn.14004494c
mov rax, rdi
mov qword [rsp + 0x58], rdi
test rdi, rdi
mov qword [rsp + 0x60], r12
je 0x14002f839
shr qword [rsp + 0x70], 0x20
movapd xmm0, xmm7
call fcn.140066848
movsd qword [rsp + 0x168], xmm0
cmp rsi, rbx
jne 0x14002f876
lea rax, [rsp + 0x168]
mov qword [rsp + 0x40], rax
lea rax, [0x140022cc0]
mov qword [rsp + 0x48], rax
lea rax, [0x140081d60]
lea rdx, [rsp + 0xd0]
mov qword [rdx], rax
mov qword [rdx + 8], 2
mov qword [rdx + 0x20], 0
lea rax, [rsp + 0x40]
mov qword [rdx + 0x10], rax
mov qword [rdx + 0x18], 1
lea rsi, [rsp + 0x130]
mov rcx, rsi
call fcn.140017380
mov al, 0x13
mov byte [rsi + 0x18], al
mov byte [rsi + 0x1c], al
mov dword [rsi + 0x20], 0
jmp 0x14002f8a1
movabs rax, 0x8000000000000002
cmp rsi, rax
movabs r13, 0x100000010
jl 0x14002fa95
test rsi, rsi
je 0x14002fa95
mov rcx, qword [0x14009e2b0]
xor edx, edx
mov r8, r14
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x14002fa95
lea rax, [rsp + 0x200]
mov qword [rsp + 0x130], rsi
movupd xmm0, xmmword [rax]
movupd xmm1, xmmword [rax + 0x10]
movupd xmmword [rsp + 0x138], xmm0
movupd xmmword [rsp + 0x148], xmm1
mov rdi, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x140]
mov qword [rsp + 0xc8], rcx
mov qword [rsp + 0x78], rdx
call fcn.140062982
mov rbp, rax
mov r14, qword [rsp + 0x70]
cmp r14w, bp
cmovb ebp, r14d
mov eax, r14d
sub eax, ebp
movzx r15d, ax
shr r15d, 1
add r15d, edi
mov rbx, qword [rsp + 0x120]
shr ebx, 0x10
movzx esi, word [rsp + 0x58]
mov r13d, esi
shr r13d, 1
add r13d, ebx
movzx eax, r14w
xorps xmm0, xmm0
cvtsi2sd xmm0, eax
mulsd xmm6, xmm0
movapd xmm0, xmm6
call fcn.140066848
mov r8, rbx
add si, r8w
mov eax, 0xffff
cmovae eax, esi
mov dword [rsp + 0x58], eax
cmp ax, r8w
jbe 0x14002fa35
mov dword [rsp + 0x198], r13d
mov qword [rsp + 0x1a0], rbp
mov dword [rsp + 0x120], r15d
xorpd xmm1, xmm1
maxsd xmm1, xmm0
movsd xmm0, qword [0x1400781e0]
minsd xmm0, xmm1
cvttsd2si eax, xmm0
mov qword [rsp + 0x70], rax
add eax, edi
mov dword [rsp + 0x68], eax
mov r12d, dword [rsp + 0x234]
mov r15d, dword [rsp + 0x238]
xor eax, eax
cmp r15b, 0x13
cmove r15d, eax
cmp r12b, 0x13
cmove r12d, eax
mov r14, qword [rsp + 0x60]
mov rax, qword [rsp + 0x70]
mov ebx, eax
mov edx, edi
cmp word [rsp + 0x68], di
lea rsi, [0x1400830d1]
jbe 0x14002f9eb
lea ebp, [rdx + 1]
mov rcx, r14
mov r13, r8
call fcn.1400446bf
mov rdi, rax
mov qword [rax + 0x10], 0
mov rcx, rax
lea rdx, [0x1400830d0]
mov r8, rsi
call fcn.140023b94
mov r8, r13
mov dword [rdi + 0x18], r15d
mov dword [rdi + 0x1c], r12d
mov edx, ebp
dec bx
jne 0x14002f9ae
inc r8d
cmp r8w, word [rsp + 0x58]
mov rdi, qword [rsp + 0x38]
jb 0x14002f997
movzx eax, word [rsp + 0x1a0]
lea rsi, [rsp + 0x148]
mov qword [rsp + 0x30], rsi
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rax
mov rcx, qword [rsp + 0x60]
mov edx, dword [rsp + 0x120]
mov r8d, dword [rsp + 0x198]
jmp 0x14002fa5d
movzx eax, bp
lea rsi, [rsp + 0x148]
mov qword [rsp + 0x30], rsi
mov rcx, qword [rsp + 0x78]
mov qword [rsp + 0x20], rcx
mov qword [rsp + 0x28], rax
mov rcx, r12
mov edx, r15d
mov r8d, r13d
mov rdi, qword [rsp + 0xc8]
mov r9, rdi
call fcn.140044702
mov rax, qword [rsi - 0x18]
shl rax, 1
test rax, rax
je 0x14002fa8b
mov rcx, qword [0x14009e2b0]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
movabs r13, 0x100000010
lea rsi, [rsp + 0x1c0]
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov al, 0x13
mov byte [rsi + 0x18], al
mov byte [rsi + 0x1c], al
xor ebx, ebx
mov dword [rsi + 0x20], ebx
mov byte [rsi + 0x24], al
mov byte [rsi + 0x28], al
mov dword [rsi + 0x2c], ebx
mov word [rsi + 0x30], 0
mov byte [rsi + 0x32], 0xf
lea rax, [0x140076ede]
lea rdi, [rsp + 0xd0]
mov qword [rdi], rax
mov rax, qword [rdi]
mov rcx, qword [0x14009d620]
mov rdx, rcx
shr rdx, 0x15
xor rdx, rcx
rol rdx, 2
neg rdx
mov rcx, rdx
shr rcx, 0x1a
xor rcx, rdx
rol rcx, 1
movzx ecx, cx
movabs r14, 0x371bbc7bdba27593
xor r14, qword [rax + rcx]
mov ebp, 0x520b7a11
xor ebp, dword [rax + rcx + 8]
mov r15b, byte [rax + rcx + 0xc]
xor r15b, 0x15
mov ecx, 0xd
call fcn.140025085
mov qword [rdx], r14
mov dword [rdx + 8], ebp
mov byte [rdx + 0xc], r15b
mov qword [rdi], rax
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], 0xd
mov dword [rdi + 0x20], ebx
mov qword [rdi + 0x18], r13
lea r14, [rsp + 0x130]
mov rcx, r14
mov rdx, rdi
call fcn.140044a27
mov rcx, rsi
call fcn.14002ed9d
mov rax, qword [r14 + 0x10]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [r14]
movaps xmmword [rsi], xmm0
mov r12, qword [rsi]
movups xmm0, xmmword [rsi + 0x18]
movaps xmmword [r14 + 0x10], xmm0
mov rax, qword [rsi + 8]
mov qword [r14], rax
mov rax, qword [rsi + 0x10]
mov qword [r14 + 8], rax
mov bpl, byte [rsi + 0x31]
mov r15b, byte [rsi + 0x32]
mov eax, dword [rsi + 0x33]
mov dword [rsp + 0x188], eax
mov al, byte [rsi + 0x37]
mov byte [rsp + 0x18c], al
mov dword [r14 + 0x18], ebx
movabs rax, 0x100000009
mov qword [r14 + 0x10], rax
mov rax, qword [r14]
mov rcx, qword [r14 + 8]
mov rdx, qword [r14 + 0x10]
mov qword [rsi + 0x10], rdx
mov edx, dword [r14 + 0x18]
mov dword [rsi + 0x18], edx
mov edx, dword [r14 + 0x1c]
mov dword [rsi + 0x1c], edx
mov qword [rsi], rax
mov qword [rsi + 8], rcx
mov dword [rsi + 0x24], ebx
mov qword [rsi + 0x1c], r13
mov rax, qword [rsi + 0x20]
mov qword [rsp + 0xa0], rax
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov qword [rsp + 0x90], rdx
mov edx, dword [rsi + 0x18]
mov dword [rsp + 0x98], edx
mov edx, dword [rsi + 0x1c]
mov dword [rsp + 0x9c], edx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rcx
mov al, byte [0x14009e330]
mov edx, 0x18
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x140032216
mov rdi, rax
mov rcx, r12
mov edx, r15d
mov r8, qword [rsp + 0x180]
call fcn.140044a87
mov rcx, rax
shr rcx, 0x20
movabs rdx, 0xfffe00000000
add rdx, rax
movabs r8, 0xffff00000000
and rdx, r8
xor r8d, r8d
cmp cx, 3
cmovb rdx, r8
mov r8, rax
movabs rcx, 0xffff0000ffff0000
and r8, rcx
inc eax
movzx ecx, ax
or rcx, r8
or rcx, rdx
mov dword [rdi], 4
mov dword [rdi + 0xc], 0x10002
mov eax, 2
lea rdx, [rsp + 0x1c0]
mov qword [rdx], rax
mov qword [rdx + 8], rdi
mov qword [rdx + 0x10], rax
mov dword [rdx + 0x18], 0
mov word [rdx + 0x1c], 0x101
call fcn.140040203
mov rsi, rax
mov r14, rdx
mov rcx, qword [0x14009e2b0]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
test r14, r14
mov rbx, qword [rsp + 0x190]
je 0x1400321a6
cmp r14, 1
je 0x1400321b6
mov qword [rsp + 0x38], r12
mov byte [rsp + 0x70], r15b
mov byte [rsp + 0x58], bpl
mov qword [rsp + 0xc8], r14
movzx ecx, word [rsi + 0x14]
test rcx, rcx
je 0x14003226e
mov eax, dword [rsi + 0x10]
mov qword [rsp + 0x120], rax
movzx eax, word [rsi + 0x16]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x1a0], rsi
mov rax, qword [rsi + 0x18]
mov qword [rsp + 0x198], rax
mov r13, qword [rbx + 0x10]
xor r14d, r14d
mov r15, r13
sub r15, rcx
cmovb r15, r14
mov qword [rsp + 0x68], rcx
cmovae r13, rcx
shl r15, 3
add r15, qword [rbx + 8]
lea rdi, [rsp + 0x218]
mov qword [rdi - 0x58], r14
movabs rax, 0x8000000000000001
mov qword [rdi - 0x48], rax
mov qword [rdi - 0x10], r15
mov qword [rdi - 8], r13
lea rdx, [0x140081bc8]
mov r8d, 0x90
mov rcx, rdi
call fcn.1400712b0
mov al, 0x13
mov byte [rdi - 0x30], al
mov byte [rdi - 0x2c], al
mov dword [rdi - 0x28], r14d
mov byte [rdi - 0x24], 0xf
mov word [rdi - 0x23], 0
mov dword [rdi - 0x21], 0x100
mov byte [rdi - 0x1d], 0
mov dword [rdi - 0x1c], r14d
mov dword [rdi - 0x19], r14d
movups xmm0, xmmword [rdi - 0x40]
movaps xmmword [rsp + 0x130], xmm0
mov al, byte [rdi - 0x30]
mov byte [rsp + 0x140], al
movzx eax, word [rdi - 0x2f]
mov word [rsp + 0x141], ax
mov al, byte [rdi - 0x2d]
mov byte [rsp + 0x143], al
mov al, byte [rdi - 0x2c]
mov byte [rsp + 0x144], al
movzx eax, word [rdi - 0x2b]
mov word [rsp + 0x145], ax
mov al, byte [rdi - 0x29]
mov byte [rsp + 0x147], al
mov eax, dword [rdi - 0x28]
mov dword [rsp + 0x148], eax
mov al, byte [rdi - 0x24]
mov byte [rsp + 0x14c], al
movzx eax, word [rdi - 0x23]
mov word [rsp + 0x14d], ax
mov al, byte [rdi - 0x21]
mov byte [rsp + 0x14f], al
movups xmm0, xmmword [rdi - 0x20]
movaps xmmword [rsp + 0x150], xmm0
mov rdx, qword [rbx + 0xa8]
lea rcx, [rsp + 0x2b8]
call fcn.140032649
lea rax, [0x1400791b2]
mov qword [rdi - 0x58], rax
mov rax, qword [rdi - 0x58]
mov rcx, qword [0x14009d628]
movabs rdx, 0x3ffe701e96e
xor rdx, rcx
shr rcx, 0x16
xor rdx, rcx
mov rcx, rdx
shr rcx, 1
xor rcx, rdx
rol rcx, 7
mov r12d, 0xffff
and rcx, r12
mov edx, 0xd759777d
xor edx, dword [rax + rcx]
lea rax, [rsp + 0x36c]
mov dword [rax], edx
lea rsi, [rsp + 0x380]
mov qword [rsi], rax
mov qword [rsi + 8], 4
mov rdx, qword [rbx + 0xb0]
lea rcx, [rsp + 0x168]
call fcn.140032649
lea rax, [0x1400741a7]
mov qword [rdi - 0x58], rax
mov rax, qword [rdi - 0x58]
mov rcx, qword [0x14009d630]
mov rdx, rcx
shr rdx, 0x12
xor rdx, rcx
mov rcx, 0xffffffffca05c472
sub rcx, rdx
xor rcx, 0x6840e8d3
inc rcx
rol rcx, 6
and rcx, r12
movabs rdx, 0xab0856e27cfcb7a6
xor rdx, qword [rax + rcx]
mov r8d, 0x9b5c8708
xor r8d, dword [rax + rcx + 8]
lea rax, [rsp + 0x370]
mov qword [rax], rdx
mov dword [rax + 8], r8d
mov qword [rsp + 0x348], rax
mov qword [rsp + 0x350], 0xc
mov rdx, qword [rbx + 0x88]
lea rbp, [rsp + 0xb0]
mov rcx, rbp
call fcn.140032649
lea rax, [0x14007708e]
mov qword [rdi - 0x58], rax
mov rax, qword [rdi - 0x58]
imul rcx, qword [0x14009d638], 0xffffffff9d1e66e7
mov rdx, rcx
shr rdx, 1
xor rdx, rcx
neg rdx
rol rdx, 1
and rdx, r12
movzx eax, word [rax + rdx]
xor eax, 0xbe8c
lea rcx, [rsp + 0x1be]
mov word [rcx], ax
mov qword [rsp + 0x358], rcx
mov qword [rsp + 0x360], 2
mov rdx, qword [rbx + 0x90]
lea rbx, [rsp + 0x40]
mov rcx, rbx
call fcn.140032649
lea rax, [0x14007aa86]
mov qword [rdi - 0x58], rax
mov rax, qword [rdi - 0x58]
mov rcx, qword [0x14009d640]
mov rdx, rcx
shr rdx, 0x19
xor rdx, rcx
neg rdx
rol rdx, 3
movabs rcx, 0xc000000000000e6d
xor rcx, rdx
rol rcx, 2
and rcx, r12
mov al, byte [rax + rcx]
xor al, 0x2d
lea rcx, [rsp + 0x12f]
mov byte [rcx], al
lea rax, [rsp + 0x2e8]
mov qword [rax], rcx
lea rcx, [rsp + 0x2b8]
mov qword [rdi - 0x58], rcx
lea r8, [0x140017010]
mov qword [rdi - 0x50], r8
mov qword [rdi - 0x48], rsi
lea rcx, [0x14001b970]
mov qword [rdi - 0x40], rcx
lea rdx, [rsp + 0x168]
mov qword [rdi - 0x38], rdx
mov qword [rdi - 0x30], r8
lea rdx, [rsp + 0x348]
mov qword [rdi - 0x28], rdx
mov qword [rdi - 0x20], rcx
mov qword [rdi - 0x18], rbp
mov qword [rdi - 0x10], r8
lea rdx, [rsp + 0x358]
mov qword [rdi - 8], rdx
mov qword [rdi], rcx
mov qword [rdi + 8], rbx
mov qword [rdi + 0x10], r8
mov qword [rax + 8], 1
mov qword [rdi + 0x18], rax
mov qword [rdi + 0x20], rcx
lea rax, [0x140080210]
lea rdx, [rsp + 0xd0]
mov qword [rdx], rax
mov eax, 8
mov qword [rdx + 8], rax
mov qword [rdx + 0x20], r14
lea rcx, [rsp + 0x1c0]
mov qword [rdx + 0x10], rcx
mov qword [rdx + 0x18], rax
lea rcx, [rsp + 0x2f8]
call fcn.140017380
cmp qword [rsp + 0x40], r14
je 0x140030108
mov r8, qword [rsp + 0x48]
mov rcx, qword [0x14009e2b0]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0xb0], 0
je 0x14003012a
mov r8, qword [rsp + 0xb8]
mov rcx, qword [0x14009e2b0]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x168], 0
mov rbx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x38]
je 0x140030156
mov r8, qword [rsp + 0x170]
mov rcx, qword [0x14009e2b0]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x2b8], 0
je 0x140030178
mov r8, qword [rsp + 0x2c0]
mov rcx, qword [0x14009e2b0]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov r12, qword [rsp + 0x2f8]
mov rsi, qword [rsp + 0x300]
mov rax, qword [rsp + 0x308]
movabs rcx, 0x8000000000000000
cmp r12, rcx
jne 0x14003022a
test rax, rax
je 0x1400302ff
xor edx, edx
lea rcx, [rsp + 0xd0]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
mov qword [rcx + 0x10], rsi
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rdx
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], 1
movabs rax, 0xa0000000a
mov qword [rcx + 0x38], rax
mov word [rcx + 0x40], 0
call fcn.14003fbba
test rax, rax
je 0x14003021c
mov r8, rdx
lea rsi, [rsp + 0x1c0]
mov rcx, rsi
mov rdx, rax
call fcn.14003fe56
movabs rax, 0x8000000000000000
cmp qword [rsi], rax
jne 0x14003038c
mov ebp, 8
xor edi, edi
xor esi, esi
jmp 0x1400305e6
test rax, rax
je 0x140030336
xor edx, edx
lea rcx, [rsp + 0xd0]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
mov qword [rsp + 0x310], rsi
mov qword [rcx + 0x10], rsi
mov qword [rcx + 0x18], rax
mov qword [rcx + 0x20], rdx
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], 1
movabs rax, 0xa0000000a
mov qword [rcx + 0x38], rax
mov word [rcx + 0x40], 0
call fcn.14003fbba
test rax, rax
je 0x1400302f1
mov rdi, rax
mov rsi, rdx
mov rcx, rdx
call fcn.140025085
mov r14, rax
mov qword [rsp + 0x2d0], r12
mov r12, rdx
mov rcx, rdx
mov rdx, rdi
mov r8, rsi
call fcn.1400712b0
lea rdx, [rsp + 0x1c0]
mov qword [rdx], r14
mov qword [rdx + 8], r12
mov r12, qword [rsp + 0x2d0]
mov r14, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x60]
mov qword [rdx + 0x10], rsi
lea rsi, [rsp + 0x40]
mov rcx, rsi
call fcn.14003fd01
movabs rax, 0x8000000000000000
cmp qword [rsi], rax
jne 0x140030469
mov ebp, 8
xor edi, edi
xor esi, esi
jmp 0x1400305ca
mov al, byte [0x14009e330]
mov edx, 0x18
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x140032295
mov rbp, rax
lea rdx, [0x14008d200]
mov rcx, rax
xor r8d, r8d
call fcn.14003fe56
mov edi, 1
jmp 0x140030382
mov al, byte [0x14009e330]
mov edx, 0x18
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x140032295
mov rbp, rax
lea rdx, [0x14008d200]
mov rcx, rax
xor r8d, r8d
call fcn.14003fe56
mov edi, 1
test r12, r12
je 0x140030382
mov rcx, qword [0x14009e2b0]
xor edx, edx
mov r8, rsi
call qword [sym.imp.kernel32.dll_HeapFree]
mov esi, 1
jmp 0x1400305e6
call fcn.14003fd68
mov r12, rax
lea r14, [rsp + 0x1c0]
movups xmm0, xmmword [r14]
movups xmmword [rax], xmm0
mov rax, qword [r14 + 0x10]
mov qword [r12 + 0x10], rax
lea rax, [rsp + 0xb0]
mov qword [rax], 4
mov qword [rax + 8], r12
mov qword [rax + 0x10], 1
lea rsi, [rsp + 0xd0]
mov ecx, 9
mov rdi, r14
rep movsq qword [rdi], qword [rsi]
mov esi, 1
mov ebx, 0x18
lea rbp, [rsp + 0x40]
mov rcx, r14
call fcn.14003fbba
test rax, rax
je 0x140030582
mov r8, rdx
mov rcx, rbp
mov rdx, rax
call fcn.14003fe56
mov rdi, qword [rsp + 0xb0]
movabs rax, 0x8000000000000000
cmp qword [rsp + 0x40], rax
je 0x14003058a
cmp rsi, rdi
je 0x14003044f
mov rax, qword [rsp + 0x50]
mov qword [r12 + rbx + 0x10], rax
movups xmm0, xmmword [rsp + 0x40]
movups xmmword [r12 + rbx], xmm0
inc rsi
mov qword [rsp + 0xc0], rsi
add rbx, 0x18
jmp 0x1400303e9
lea rcx, [rsp + 0xb0]
mov rdx, rsi
call fcn.14007564d
mov r12, qword [rsp + 0xb8]
jmp 0x14003042a
call fcn.14003fd68
mov rbp, rax
lea rbx, [rsp + 0x40]
movups xmm0, xmmword [rbx]
movups xmmword [rax], xmm0
mov rax, qword [rbx + 0x10]
mov qword [rbp + 0x10], rax
lea rax, [rsp + 0x168]
mov qword [rax], 4
mov qword [rax + 8], rbp
mov qword [rax + 0x10], 1
lea r12, [rsp + 0x1c0]
lea rsi, [rsp + 0xd0]
mov ecx, 9
mov rdi, r12
rep movsq qword [rdi], qword [rsi]
mov esi, 1
mov rcx, r12
call fcn.14003fbba
test rax, rax
je 0x14003059e
mov r14, rax
mov rdi, rdx
mov rcx, rdx
call fcn.140025085
mov rsi, rax
mov rbp, rdx
mov rcx, rdx
mov rdx, r14
mov r8, rdi
call fcn.1400712b0
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rbp
mov qword [rsp + 0x50], rdi
lea rcx, [rsp + 0xb0]
mov rdx, rbx
call fcn.14003fd01
mov rdi, qword [rsp + 0x168]
movabs rax, 0x8000000000000000
cmp qword [rsp + 0xb0], rax
je 0x1400305a8
mov rsi, qword [rsp + 0x178]
cmp rsi, rdi
je 0x140030570
mov rbp, qword [rsp + 0x170]
lea rax, [rsi + rsi*2]
mov rcx, qword [rsp + 0xc0]
mov qword [rbp + rax*8 + 0x10], rcx
movups xmm0, xmmword [rsp + 0xb0]
movups xmmword [rbp + rax*8], xmm0
inc rsi
mov qword [rsp + 0x178], rsi
jmp 0x1400304bf
lea rcx, [rsp + 0x168]
mov rdx, rdi
call fcn.14007564d
jmp 0x14003053a
mov rdi, qword [rsp + 0xb0]
mov rbp, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x38]
jmp 0x1400305e6
mov rdi, qword [rsp + 0x168]
jmp 0x1400305b8
mov rbp, qword [rsp + 0x170]
mov rsi, qword [rsp + 0x178]
mov rbx, qword [rsp + 0x60]
mov r14, qword [rsp + 0x38]
mov r12, qword [rsp + 0x2d0]
test r12, r12
je 0x1400305e6
mov rcx, qword [0x14009e2b0]
xor edx, edx
mov r8, qword [rsp + 0x310]
call qword [sym.imp.kernel32.dll_HeapFree]
mov dword [rsp + 0x211], 0x1000000
mov word [rsp + 0x215], 0
mov byte [rsp + 0x217], 0
mov qword [rsp + 0x1c0], rdi
mov qword [rsp + 0x1c8], rbp
mov qword [rsp + 0x1d0], rsi
movabs rax, 0x8000000000000001
mov qword [rsp + 0x1d8], rax
lea rsi, [rsp + 0xd0]
movups xmm0, xmmword [rsi]
movups xmm1, xmmword [rsi + 0x10]
movups xmm2, xmmword [rsi + 0x20]
movups xmmword [rsp + 0x1e0], xmm0
movups xmmword [rsp + 0x1f0], xmm1
movups xmmword [rsp + 0x200], xmm2
mov byte [rsp + 0x210], 0x10
mov qword [rsp + 0x218], 0
mov byte [rsp + 0x220], 2
mov eax, dword [rsp + 0x41]
mov dword [rsp + 0x222], eax
movzx eax, word [rsp + 0x45]
mov word [rsp + 0x226], ax
mov al, 1
mov byte [rsp + 0x221], al
mov qword [rsi], r14
movaps xmm0, xmmword [rsp + 0x80]
movaps xmm1, xmmword [rsp + 0x90]
movups xmmword [rsi + 8], xmm0
movups xmmword [rsi + 0x18], xmm1
mov rcx, qword [rsp + 0xa0]
mov qword [rsi + 0x28], rcx
mov byte [rsi + 0x30], al
mov al, byte [rsp + 0x58]
mov byte [rsi + 0x31], al
mov al, byte [rsp + 0x70]
mov byte [rsi + 0x32], al
mov eax, dword [rsp + 0x188]
mov dword [rsi + 0x33], eax
mov al, byte [rsp + 0x18c]
mov byte [rsi + 0x37], al
mov rcx, rsi
mov rdx, qword [rsp + 0x180]
mov r8, rbx
call fcn.140044b53
mov rax, qword [rsp + 0x78]
shl rax, 0x30
add rax, qword [rsp + 0x120]
mov rdi, qword [rsp + 0x68]
shl rdi, 0x20
or rdi, rax
movabs rcx, 0x8000000000000000
mov qword [rsi], rcx
movaps xmm0, xmmword [rsp + 0x130]
movaps xmm1, xmmword [rsp + 0x140]
movaps xmm2, xmmword [rsp + 0x150]
movups xmmword [rsi + 0x28], xmm2
movups xmmword [rsi + 8], xmm0
movups xmmword [rsi + 0x18], xmm1
mov dl, byte [rsi + 0x32]
mov r8, rdi
call fcn.140044a87
mov r14, rax
lea rcx, [rsp + 0xd0]
mov rdx, rdi
mov r8, rbx
call fcn.140044b53
mov r12, r14
shr r12, 0x30
je 0x1400309a6
mov rax, r14
shr rax, 0x20
test r13, r13
je 0x1400307b9
mov rcx, r15
cmp r13, 1
je 0x1400307bb
lea rdx, [r15 + 8]
lea rcx, [r13 - 1]
movabs r8, 0x1fffffffffffffff
and r8, rcx
mov r9, qword [r15]
mov rcx, r15
mov r10, qword [rdx]
cmp r9, r10
cmovbe r9, r10
cmovbe rcx, rdx
add rdx, 8
dec r8
jne 0x1400307a0
jmp 0x1400307bb
xor ecx, ecx
test rcx, rcx
lea rdx, [0x140081ea8]
cmovne rdx, rcx
movzx eax, ax
cmp rax, r13
cmovb r13, rax
test r13, r13
mov qword [rsp + 0x68], r14
je 0x140030868
mov rsi, qword [rdx]
lea rdi, [r13*8]
mov al, byte [0x14009e330]
xor ecx, ecx
mov rdx, rdi
call fcn.14005ea40
test rax, rax
je 0x14003229f
mov rcx, rax
mov qword [rsp + 0xd0], r13
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], 0
lea r8, [r12*8]
xor r9d, r9d
test rsi, rsi
je 0x140030843
mov rax, qword [r15 + r9*8]
imul rax, r8
xor edx, edx
div rsi
jmp 0x140030845
xor eax, eax
mov qword [rcx + r9*8], rax
inc r9
cmp r13, r9
jne 0x14003082f
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x78], rax
mov rdi, qword [rsp + 0xd8]
jmp 0x140030895
xor ecx, ecx
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xd8], 8
xor eax, eax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0xe0], rcx
mov edi, 8
xor r9d, r9d
test r12w, r12w
je 0x140030987
mov rax, qword [rsp + 0x68]
shr eax, 0x10
mov qword [rsp + 0x180], rax
lea rax, [r9*8]
mov qword [rsp + 0x38], rax
xor esi, esi
mov qword [rsp + 0x70], r9
dec r12d
mov qword [rsp + 0x58], r12
test r9, r9
je 0x140030973
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x180]
lea ebp, [rax + rcx]
xor ebx, ebx
mov rax, qword [rsp + 0x68]
mov r14d, eax
mov rax, qword [rdi + rbx]
mov r15d, 3
lea r12, [0x140081bb0]
cmp rax, 7
ja 0x14003091b
lea rcx, [0x14008d850]
mov r12, qword [rcx + rax*8]
lea rcx, [0x14008d890]
mov r15, qword [rcx + rax*8]
mov rcx, qword [rsp + 0x60]
mov edx, r14d
mov r8d, ebp
call fcn.1400446bf
mov r13, rax
mov qword [rax + 0x10], rsi
add r15, r12
mov rcx, rax
mov rdx, r12
mov r8, r15
call fcn.140023b94
movabs rax, 0x10000000f
mov qword [r13 + 0x18], rax
mov rax, qword [rdi + rbx]
sub rax, 8
cmovb rax, rsi
mov qword [rdi + rbx], rax
inc r14d
add rbx, 8
cmp qword [rsp + 0x38], rbx
jne 0x1400308ee
mov r12, qword [rsp + 0x58]
test r12w, r12w
mov r9, qword [rsp + 0x70]
jne 0x1400308c3
cmp qword [rsp + 0x78], 0
mov rbx, qword [rsp + 0x60]
je 0x1400309a6
mov rcx, qword [0x14009e2b0]
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapFree]
mov rdi, qword [rsp + 0x190]
lea rax, [rdi + 0xb8]
mov qword [rsp + 0x58], rax
lea rax, [rdi + 0xc8]
mov qword [rsp + 0x70], rax
lea rax, [rdi + 0xd0]
mov qword [rsp + 0x68], rax
lea rax, [rdi + 0xd8]
mov qword [rsp + 0x180], rax
lea rcx, [rsp + 0x1c0]
mov rdx, qword [rsp + 0x198]
mov r8, rbx
call fcn.140045336
mov rcx, qword [rsp + 0x1a0]
mov rdx, qword [rsp + 0xc8]
call fcn.140040194
xor esi, esi
lea rax, [rsp + 0x80]
mov qword [rax], rsi
mov qword [rax + 8], 8
mov qword [rax + 0x10], rsi
mov r14, qword [rdi + 0x58]
mov r15, qword [rdi + 0x70]
movdqa xmm0, xmmword [r14]
pmovmskb ebx, xmm0
not ebx
lea r12, [r14 + 0x10]
mov ebp, 8
mov r13d, 1
sub r15, 1
jb 0x140030b29
test bx, bx
jne 0x140030a77
movdqa xmm0, xmmword [r12]
pmovmskb ebx, xmm0
add r14, 0xfffffffffffffe80
add r12, 0x10
cmp ebx, 0xffff
je 0x140030a58
not ebx
mov al, byte [0x14009e330]
mov edx, 0x28
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x1400321cc
mov rdi, rax
bsf eax, ebx
neg rax
lea rax, [rax + rax*2]
movdqu xmm0, xmmword [r14 + rax*8 - 0x10]
movabs rax, 0x8000000000000000
mov qword [rdi], rax
movdqu xmmword [rdi + 8], xmm0
movabs rax, 0x100000010
mov qword [rdi + 0x18], rax
mov dword [rdi + 0x20], 0
cmp rsi, qword [rsp + 0x80]
jne 0x140030af7
lea rcx, [rsp + 0x80]
mov rdx, rsi
call fcn.14002ecf4
mov rbp, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x90]
lea eax, [rbx - 1]
and eax, ebx
lea rcx, [rsi + rsi*2]
mov qword [rbp + rcx*8], r13
mov qword [rbp + rcx*8 + 8], rdi
mov qword [rbp + rcx*8 + 0x10], r13
mov rsi, qword [rsp + 0x90]
inc rsi
mov qword [rsp + 0x90], rsi
mov ebx, eax
jmp 0x140030a49
lea rsi, [rsp + 0x1c0]
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov r13b, 0x13
mov byte [rsi + 0x18], r13b
mov byte [rsi + 0x1c], r13b
xor r12d, r12d
mov dword [rsi + 0x20], r12d
mov byte [rsi + 0x24], r13b
mov byte [rsi + 0x28], r13b
mov dword [rsi + 0x2c], r12d
mov word [rsi + 0x30], r12w
mov al, 0xf
mov byte [rsi + 0x32], al
lea rax, [0x140074364]
lea rdi, [rsp + 0xd0]
mov qword [rdi], rax
mov rax, qword [rdi]
mov ecx, 0x123ee92
sub rcx, qword [0x14009d648]
imul rcx, rcx, 0x2c7c76de
add rcx, 0x32bf50a6
xor rcx, 0x275c
rol rcx, 1
and ecx, 0xfffd
movabs rbx, 0x314df258d0849893
xor rbx, qword [rax + rcx]
mov ebp, 0x6fd00ebb
xor ebp, dword [rax + rcx + 8]
movzx r14d, byte [rax + rcx + 0xe]
movzx r15d, word [rax + rcx + 0xc]
xor r15d, 0x6eb8
xor r14b, 0xec
mov ecx, 0xf
call fcn.140025085
mov qword [rdx], rbx
mov dword [rdx + 8], ebp
mov word [rdx + 0xc], r15w
mov byte [rdx + 0xe], r14b
mov qword [rdi], rax
mov qword [rdi + 8], rdx
mov qword [rdi + 0x10], 0xf
mov dword [rdi + 0x20], r12d
movabs rax, 0x100000010
mov qword [rdi + 0x18], rax
mov rbx, rax
lea r15, [rsp + 0x130]
mov rcx, r15
mov rdx, rdi
call fcn.140044a27
mov rcx, rsi
call fcn.14002ed9d
mov rax, qword [r15 + 0x10]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [r15]
movaps xmmword [rsi], xmm0
mov r14, qword [rsi]
movups xmm0, xmmword [rsi + 0x18]
movaps xmmword [r15 + 0x10], xmm0
mov rax, qword [rsi + 8]
mov qword [r15], rax
mov rax, qword [rsi + 0x10]
mov qword [r15 + 8], rax
mov al, byte [rsi + 0x31]
mov byte [rsp + 0x38], al
mov bpl, byte [rsi + 0x32]
mov eax, dword [rsi + 0x33]
mov dword [rsp + 0x40], eax
mov al, byte [rsi + 0x37]
mov byte [rsp + 0x44], al
mov dword [r15 + 0x18], r12d
movabs rax, 0x100000009
mov qword [r15 + 0x10], rax
mov rax, qword [r15]
mov rcx, qword [r15 + 8]
mov rdx, qword [r15 + 0x10]
mov qword [rsi + 0x10], rdx
mov edx, dword [r15 + 0x18]
mov dword [rsi + 0x18], edx
mov edx, dword [r15 + 0x1c]
mov dword [rsi + 0x1c], edx
mov qword [rsi], rax
mov qword [rsi + 8], rcx
mov dword [rsi + 0x24], r12d
mov qword [rsi + 0x1c], rbx
mov rax, qword [rsi + 0x20]
mov qword [rdi + 0x28], rax
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov qword [rdi + 0x18], rdx
mov edx, dword [rsi + 0x18]
mov dword [rdi + 0x20], edx
mov edx, dword [rsi + 0x1c]
mov dword [rdi + 0x24], edx
mov qword [rdi + 8], rax
mov qword [rdi + 0x10], rcx
mov rcx, r14
mov edx, ebp
mov rbx, qword [rsp + 0x1b0]
mov r8, rbx
call fcn.140044a87
mov rcx, rax
shr rcx, 0x20
movabs rdx, 0xfffe00000000
add rdx, rax
movabs r8, 0xffff00000000
and rdx, r8
cmp cx, 3
cmovb rdx, r12
lea ecx, [rax + 1]
movabs r8, 0xffff0000ffff0000
and rax, r8
movzx r15d, cx
or r15, rax
or r15, rdx
movups xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsi], xmm0
mov rax, qword [rsp + 0x90]
mov qword [rsi + 0x10], rax
mov word [rsi + 0x51], r12w
mov dword [rsi + 0x53], 0x100
mov byte [rsi + 0x57], 0
movabs rax, 0x8000000000000001
mov qword [rsi + 0x18], rax
mov byte [rsi + 0x50], 0x10
mov qword [rsi + 0x58], r12
mov word [rsi + 0x60], 2
mov qword [rdi], r14
mov byte [rdi + 0x30], 1
mov al, byte [rsp + 0x38]
mov byte [rdi + 0x31], al
mov byte [rdi + 0x32], bpl
mov eax, dword [rsp + 0x40]
mov dword [rdi + 0x33], eax
mov al, byte [rsp + 0x44]
mov byte [rdi + 0x37], al
lea rsi, [rsp + 0xd0]
mov rcx, rsi
mov rdx, rbx
mov rbx, qword [rsp + 0x60]
mov r8, rbx
call fcn.140044b53
lea rdi, [rsp + 0x1c0]
mov rcx, rdi
mov rdx, r15
mov r8, rbx
call fcn.140045336
movabs rax, 0x8000000000000000
mov qword [rdi], rax
mov byte [rdi + 0x18], r13b
mov byte [rdi + 0x1c], r13b
mov dword [rdi + 0x20], r12d
mov byte [rdi + 0x24], r13b
mov byte [rdi + 0x28], r13b
movabs rbp, 0x100000010
mov dword [rdi + 0x2c], r12d
mov word [rdi + 0x30], r12w
mov al, 0xf
mov byte [rdi + 0x32], al
lea rax, [0x140079b12]
mov qword [rsi], rax
mov rax, qword [rsi]
movabs rcx, 0xfc00000000000274
xor rcx, qword [0x14009d650]
rol rcx, 4
xor rcx, 0x25d6
rol rcx, 2
movzx ecx, cx
movabs rdi, 0x2b644a14da3505d3
xor rdi, qword [rax + rcx]
mov ebx, 0xe6f5fbe7
xor ebx, dword [rax + rcx + 8]
mov ecx, 0xc
call fcn.140025085
mov qword [rdx], rdi
mov dword [rdx + 8], ebx
mov qword [rsi], rax
mov qword [rsi + 8], rdx
mov qword [rsi + 0x10], 0xc
mov dword [rsi + 0x20], r12d
mov qword [rsi + 0x18], rbp
lea rdi, [rsp + 0x130]
lea rdx, [rsp + 0xd0]
mov rcx, rdi
call fcn.140044a27
lea rsi, [rsp + 0x1c0]
mov rcx, rsi
call fcn.14002ed9d
mov rax, qword [rdi + 0x10]
mov qword [rsi + 0x10], rax
movups xmm0, xmmword [rdi]
movaps xmmword [rsi], xmm0
mov r14, qword [rsi]
movups xmm0, xmmword [rsi + 0x18]
movaps xmmword [rdi + 0x10], xmm0
mov rax, qword [rsi + 8]
mov qword [rdi], rax
mov rax, qword [rsi + 0x10]
mov qword [rdi + 8], rax
mov r15b, byte [rsi + 0x31]
mov bl, byte [rsi + 0x32]
mov eax, dword [rsi + 0x33]
mov dword [rsp + 0x80], eax
mov al, byte [rsi + 0x37]
mov byte [rsp + 0x84], al
mov dword [rdi + 0x18], r12d
movabs rax, 0x100000009
mov qword [rdi + 0x10], rax
mov rax, qword [rdi]
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
mov qword [rsi + 0x10], rdx
mov edx, dword [rdi + 0x18]
mov dword [rsi + 0x18], edx
mov edx, dword [rdi + 0x1c]
mov dword [rsi + 0x1c], edx
mov qword [rsi], rax
mov qword [rsi + 8], rcx
mov dword [rsi + 0x24], r12d
mov r12, rbp
mov qword [rsi + 0x1c], rbp
mov rax, qword [rsi + 0x20]
mov qword [rdi + 0x20], rax
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov qword [rdi + 0x10], rdx
mov edx, dword [rsi + 0x18]
mov dword [rdi + 0x18], edx
mov edx, dword [rsi + 0x1c]
mov dword [rdi + 0x1c], edx
mov qword [rdi], rax
mov qword [rdi + 8], rcx
mov rcx, r14
mov edx, ebx
mov r8, qword [rsp + 0x2d8]
call fcn.140044a87
mov rsi, rax
mov al, byte [0x14009e330]
mov edx, 0x90
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x140032286
mov rdi, rax
mov qword [rsp + 0x1b0], rsi
mov qword [rsp + 0x78], r14
mov byte [rsp + 0xc8], bl
mov al, byte [0x14009e330]
mov edx, 0x50
xor ecx, ecx
call fcn.14005ea40
mov qword [rsp + 0x38], rax
test rax, rax
je 0x1400321db
mov qword [rsp + 0x120], rdi
lea rax, [0x14007866a]
lea rsi, [rsp + 0x1c0]
mov qword [rsi], rax
mov rax, qword [rsi]
mov ecx, 0x3bf5c1b0
sub rcx, qword [0x14009d658]
rol rcx, 6
mov edx, ecx
shr edx, 7
xor rdx, rcx
xor rdx, 0x5f9
rol rdx, 3
movzx ecx, dx
movabs rbx, 0x9578deca7fc188e4
xor rbx, qword [rax + rcx]
mov ebp, 0x5a9aeada
xor ebp, dword [rax + rcx + 8]
mov ecx, 0xc
call fcn.140025085
mov rdi, rax
mov r14, rdx
mov qword [rdx], rbx
mov dword [rdx + 8], ebp
mov rcx, rsi
mov rdx, qword [rsp + 0x58]
call fcn.140032970
cmp qword [rsp + 0x1a8], 0
je 0x140031041
movabs rax, 0x10000000b
mov qword [rsp + 0xd0], rax
jmp 0x140031049
mov qword [rsp + 0xd0], r12
mov dword [rsp + 0xd8], 0
mov byte [rsp + 0x58], r15b
mov rax, qword [rsp + 0x1d0]
mov rcx, qword [rsp + 0x38]
mov qword [rcx + 0x38], rax
movups xmm0, xmmword [rsp + 0x1c0]
movups xmmword [rcx + 0x28], xmm0
mov rax, qword [rsp + 0xd0]
mov qword [rcx + 0x40], rax
mov eax, dword [rsp + 0xd8]
mov dword [rcx + 0x48], eax
mov qword [rcx], rdi
mov qword [rcx + 8], r14
mov qword [rcx + 0x10], 0xc
mov qword [rcx + 0x18], r12
mov dword [rcx + 0x20], 0
mov al, byte [0x14009e330]
xor ebx, ebx
mov edx, 0x50
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x1400321db
mov r13, rax
lea rax, [0x14007fed6]
lea rsi, [rsp + 0x1c0]
mov qword [rsi], rax
mov rax, qword [rsi]
imul rcx, qword [0x14009d660], 0x2b82e3dc
xor rcx, 0xffffffffe2928e2b
add rcx, 0x3a148402
rol rcx, 3
and ecx, 0xffef
movabs r15, 0xb643c68f63b23924
xor r15, qword [rax + rcx]
mov ebp, 0x1cda7906
xor ebp, dword [rax + rcx + 8]
mov ecx, 0xc
call fcn.140025085
mov rdi, rax
mov r14, rdx
mov qword [rdx], r15
mov dword [rdx + 8], ebp
mov rax, qword [rsp + 0x190]
lea rdx, [rax + 0xc0]
mov rcx, rsi
call fcn.140032970
mov rax, qword [rsi + 0x10]
mov qword [r13 + 0x38], rax
movups xmm0, xmmword [rsi]
movups xmmword [r13 + 0x28], xmm0
mov qword [r13 + 0x40], r12
mov dword [r13 + 0x48], ebx
mov qword [r13], rdi
mov qword [r13 + 8], r14
mov qword [r13 + 0x10], 0xc
mov qword [r13 + 0x18], r12
mov dword [r13 + 0x20], ebx
mov al, byte [0x14009e330]
mov edx, 0x50
xor ecx, ecx
call fcn.14005ea40
test rax, rax
mov qword [rsp + 0x1a8], r13
je 0x1400321db
mov r15, rax
mov r13, r12
lea rax, [0x14007c37c]
lea rsi, [rsp + 0x1c0]
mov qword [rsi], rax
mov rax, qword [rsi]
mov rcx, qword [0x14009d668]
mov rdx, rcx
neg rdx
shr rdx, 0xe
dec rcx
xor rcx, rdx
mov rdx, rcx
shr rdx, 0x18
xor rdx, rcx
rol rdx, 7
movzx ecx, dx
movabs rbx, 0xae8eb5c6c95c3280
xor rbx, qword [rax + rcx]
mov ebp, 0x7eff727d
xor ebp, dword [rax + rcx + 8]
mov ecx, 0xc
call fcn.140025085
mov rdi, rax
mov r14, rdx
mov qword [rdx], rbx
mov dword [rdx + 8], ebp
mov rcx, rsi
mov rdx, qword [rsp + 0x70]
call fcn.140032970
mov rax, qword [rsi + 0x10]
mov qword [r15 + 0x38], rax
movups xmm0, xmmword [rsi]
movups xmmword [r15 + 0x28], xmm0
mov qword [r15 + 0x40], r12
xor eax, eax
mov dword [r15 + 0x48], eax
mov qword [r15], rdi
mov qword [r15 + 8], r14
mov qword [r15 + 0x10], 0xc
mov qword [r15 + 0x18], r12
mov qword [rsp + 0x70], r15
mov dword [r15 + 0x20], eax
mov al, byte [0x14009e330]
mov edx, 0x50
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x1400321db
mov rsi, rax
lea rax, [0x14007da44]
lea rdi, [rsp + 0x1c0]
mov qword [rdi], rax
mov rax, qword [rdi]
mov rcx, 0xffffffff822f89af
xor rcx, qword [0x14009d670]
add rcx, 0xffffffffac36b3dc
rol rcx, 1
add rcx, 0xffffffff8bb83402
rol rcx, 4
movzx ecx, cx
movabs rbx, 0xd62575651a1fdd1b
xor rbx, qword [rax + rcx]
mov ebp, 0x69b4cd01
xor ebp, dword [rax + rcx + 8]
mov ecx, 0xc
call fcn.140025085
mov r14, rax
mov r12, rdx
mov qword [rdx], rbx
mov dword [rdx + 8], ebp
mov rcx, rdi
mov rdx, qword [rsp + 0x68]
call fcn.140032970
movabs rax, 0x10000000a
cmp qword [rsp + 0x340], 0
je 0x1400312fa
mov qword [rsp + 0xd0], rax
jmp 0x140031302
mov qword [rsp + 0xd0], r13
mov dword [rsp + 0xd8], 0
mov rax, qword [rsp + 0x1d0]
mov qword [rsi + 0x38], rax
movups xmm0, xmmword [rsp + 0x1c0]
movups xmmword [rsi + 0x28], xmm0
mov rax, qword [rsp + 0xd0]
mov qword [rsi + 0x40], rax
mov eax, dword [rsp + 0xd8]
mov dword [rsi + 0x48], eax
mov qword [rsi], r14
mov qword [rsi + 8], r12
mov qword [rsi + 0x10], 0xc
mov qword [rsi + 0x18], r13
mov dword [rsi + 0x20], 0
mov al, byte [0x14009e330]
xor ebx, ebx
mov edx, 0x50
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x1400321db
mov r12, rax
lea rax, [0x14007d81d]
lea rdi, [rsp + 0x1c0]
mov qword [rdi], rax
mov rax, qword [rdi]
mov rcx, qword [0x14009d678]
mov rdx, rcx
shr rdx, 4
xor rdx, rcx
imul rcx, rdx, 0x6937f9a4
movabs rdx, 0x59b735de6d60c4c
add rdx, rcx
rol rdx, 4
and edx, 0xffcf
movabs r15, 0xb67db879f284a01a
xor r15, qword [rax + rdx]
mov ebp, 0x2f2180c0
xor ebp, dword [rax + rdx + 8]
mov ecx, 0xc
call fcn.140025085
mov r14, rax
mov r13, rdx
mov qword [rdx], r15
mov dword [rdx + 8], ebp
mov rcx, rdi
mov rdx, qword [rsp + 0x180]
call fcn.140032970
mov rax, qword [rdi + 0x10]
mov qword [r12 + 0x38], rax
movups xmm0, xmmword [rdi]
movups xmmword [r12 + 0x28], xmm0
movabs rax, 0x100000010
mov qword [r12 + 0x40], rax
mov dword [r12 + 0x48], ebx
mov qword [r12], r14
mov qword [r12 + 8], r13
mov qword [r12 + 0x10], 0xc
mov qword [r12 + 0x18], rax
mov dword [r12 + 0x20], ebx
mov al, byte [0x14009e330]
mov edx, 0x50
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x1400321db
mov r14, rax
mov r8, qword [rsp + 0x1b0]
mov rcx, r8
shr rcx, 0x20
movabs rax, 0xfffe00000000
add rax, r8
movabs rdx, 0xffff00000000
and rax, rdx
xor edx, edx
cmp cx, 3
cmovb rax, rdx
mov rcx, r8
movabs rdx, 0xffff0000ffff0000
and rcx, rdx
lea edx, [r8 + 1]
movzx edx, dx
or rdx, rcx
mov r9, rdx
lea rcx, [0x14007cb78]
lea r13, [rsp + 0x1c0]
mov qword [r13], rcx
mov rcx, qword [r13]
mov rdx, qword [0x14009d680]
mov r8, rdx
shr r8, 0x1c
xor r8, rdx
mov edx, 0x96505dd
sub rdx, r8
xor rdx, 0x7414
rol rdx, 1
movzx edx, dx
movabs rbx, 0xce93f47ed7ba2acf
xor rbx, qword [rcx + rdx]
or r9, rax
mov qword [rsp + 0x68], r9
mov edi, 0xb391e270
xor edi, dword [rcx + rdx + 8]
mov ecx, 0xc
call fcn.140025085
mov rbp, rax
mov r15, rdx
mov qword [rdx], rbx
xor ebx, ebx
mov dword [rdx + 8], edi
mov rdi, qword [rsp + 0x190]
lea rdx, [rdi + 0xe0]
mov rcx, r13
call fcn.140032970
mov rax, qword [r13 + 0x10]
mov qword [r14 + 0x38], rax
movups xmm0, xmmword [r13]
movups xmmword [r14 + 0x28], xmm0
movabs rax, 0x100000010
mov qword [r14 + 0x40], rax
mov dword [r14 + 0x48], ebx
mov qword [r14], rbp
mov qword [r14 + 8], r15
mov qword [r14 + 0x10], 0xc
mov qword [r14 + 0x18], rax
mov dword [r14 + 0x20], ebx
mov eax, 2
mov rcx, qword [rsp + 0x120]
mov qword [rcx], rax
mov rdx, qword [rsp + 0x38]
mov qword [rcx + 8], rdx
mov qword [rcx + 0x10], rax
mov qword [rcx + 0x18], rax
mov rdx, qword [rsp + 0x1a8]
mov qword [rcx + 0x20], rdx
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], rax
mov rdx, qword [rsp + 0x70]
mov qword [rcx + 0x38], rdx
mov qword [rcx + 0x40], rax
mov qword [rcx + 0x48], rax
mov qword [rcx + 0x50], rsi
mov qword [rcx + 0x58], rax
mov qword [rcx + 0x60], rax
mov qword [rcx + 0x68], r12
mov qword [rcx + 0x70], rax
mov qword [rcx + 0x78], rax
mov qword [rcx + 0x80], r14
mov qword [rcx + 0x88], rax
mov al, 0x13
mov byte [r13 + 0x50], al
mov byte [r13 + 0x54], al
mov qword [r13 + 0x58], rbx
mov eax, 6
mov qword [r13], rax
mov qword [r13 + 8], rcx
mov qword [r13 + 0x10], rax
movabs rax, 0x8000000000000001
mov qword [r13 + 0x18], rax
mov word [r13 + 0x60], 2
lea rcx, [rsp + 0xd0]
mov rax, qword [rsp + 0x78]
mov qword [rcx], rax
mov rax, qword [rsp + 0x150]
mov qword [rcx + 0x28], rax
movaps xmm0, xmmword [rsp + 0x130]
movaps xmm1, xmmword [rsp + 0x140]
movups xmmword [rcx + 8], xmm0
movups xmmword [rcx + 0x18], xmm1
mov byte [rcx + 0x30], 1
mov al, byte [rsp + 0x58]
mov byte [rcx + 0x31], al
mov al, byte [rsp + 0xc8]
mov byte [rcx + 0x32], al
mov eax, dword [rsp + 0x80]
mov dword [rcx + 0x33], eax
mov al, byte [rsp + 0x84]
mov byte [rcx + 0x37], al
mov rdx, qword [rsp + 0x2d8]
mov rsi, qword [rsp + 0x60]
mov r8, rsi
call fcn.140044b53
lea rcx, [rsp + 0x1c0]
mov rdx, qword [rsp + 0x68]
mov r8, rsi
call fcn.140045336
mov r15, qword [rsp + 0x2e0]
shr r15, 0x30
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x48], 8
mov qword [rsp + 0x50], rbx
add r15, 0xfffffffffffffffe
je 0x140031c71
mov r12, qword [rdi + 0x38]
mov rax, qword [rdi + 0x40]
shl rax, 3
lea r14, [rax + rax*4]
lea rax, [r12 - 0x24]
mov qword [rsp + 0x38], rax
mov ebp, 8
xor esi, esi
test r14, r14
je 0x140031c71
mov eax, dword [r12 + r14 - 0x28]
cmp rax, 1
je 0x14003177b
cmp eax, 5
je 0x140031a91
cmp eax, 6
jne 0x140031c61
mov al, byte [0x14009e330]
mov edx, 0x50
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x1400321db
mov rdi, rax
lea rax, [0x14007b695]
mov qword [rsp + 0x1c0], rax
mov rax, qword [rsp + 0x1c0]
xor ecx, ecx
sub rcx, qword [0x14009d698]
mov rdx, rcx
shr rdx, 0x1d
xor rdx, rcx
rol rdx, 1
not rdx
rol rdx, 7
movzx ecx, dx
mov rbx, qword [rax + rcx]
movabs rdx, 0x5fa8feafa82d563a
xor rbx, rdx
mov bpl, byte [rax + rcx + 8]
xor bpl, 0xb1
jmp 0x140031aff
mov rdi, r12
mov rax, qword [rsp + 0x38]
add rax, r14
mov qword [rsp + 0x168], rax
mov al, byte [0x14009e330]
mov edx, 0x50
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x1400321db
mov r13, rax
lea rax, [0x140072788]
mov qword [rsp + 0x1c0], rax
mov rax, qword [rsp + 0x1c0]
mov rcx, qword [0x14009d688]
mov rdx, 0xffffffffc3897507
add rcx, rdx
rol rcx, 1
mov edx, ecx
shr edx, 0xc
xor rdx, rcx
rol rdx, 1
movzx ecx, dx
movzx eax, word [rax + rcx]
xor eax, 0x6ee0
mov word [rsp + 0x2f8], ax
lea rax, [rsp + 0x2f8]
mov qword [rsp + 0xb0], rax
mov edx, 2
mov qword [rsp + 0xb8], rdx
lea rax, [0x140073ceb]
mov qword [rsp + 0x1c0], rax
mov rax, qword [rsp + 0x1c0]
mov rcx, qword [0x14009d690]
movabs r8, 0x26ca68a5292752a2
imul rcx, r8
movabs r8, 0x7c9f66e44fc01592
add rcx, r8
rol rcx, 3
and ecx, 0xfff7
movzx eax, word [rax + rcx]
xor eax, 0xac5d
mov word [rsp + 0x2b8], ax
lea rax, [rsp + 0x2b8]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rdx
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x1c0], rax
lea rcx, [0x14001b970]
mov qword [rsp + 0x1c8], rcx
lea rax, [rsp + 0x168]
mov qword [rsp + 0x1d0], rax
lea rax, [0x14002e609]
mov qword [rsp + 0x1d8], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], rcx
lea rax, [0x140080290]
mov qword [rsp + 0xd0], rax
mov eax, 3
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xf0], rbx
lea r12, [rsp + 0x1c0]
mov qword [rsp + 0xe0], r12
mov qword [rsp + 0xe8], rax
lea rcx, [rsp + 0x130]
lea rdx, [rsp + 0xd0]
call fcn.140017380
movabs rax, 0x10000000a
lea rcx, [rsp + 0x148]
mov qword [rcx], rax
mov dword [rcx + 8], 0
mov rcx, qword [rdi + r14 - 0x18]
mov rdx, qword [rdi + r14 - 0x10]
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], 1
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0x1f0], 0x20
mov byte [rsp + 0x1f8], 3
mov qword [rsp + 0x1c0], rbx
mov qword [rsp + 0x1d0], rbx
lea rax, [rsp + 0x80]
mov qword [rsp + 0x1e0], rax
lea rax, [0x14007f960]
mov qword [rsp + 0x1e8], rax
mov r8, r12
call fcn.140057cc0
test al, al
jne 0x1400321ea
movups xmm0, xmmword [rsp + 0x80]
movaps xmmword [rsp + 0xd0], xmm0
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xe0], rax
movabs rax, 0x100000010
lea rcx, [rsp + 0xe8]
mov qword [rcx], rax
mov dword [rcx + 8], 0
mov rax, qword [rsp + 0x150]
mov qword [r13 + 0x20], rax
movups xmm0, xmmword [rsp + 0x130]
movups xmm1, xmmword [rsp + 0x140]
movups xmmword [r13 + 0x10], xmm1
movups xmmword [r13], xmm0
mov rax, qword [rsp + 0xf0]
mov qword [r13 + 0x48], rax
movaps xmm0, xmmword [rsp + 0xd0]
mov rax, qword [rsp + 0xe0]
mov qword [r13 + 0x38], rax
mov rax, qword [rsp + 0xe8]
mov qword [r13 + 0x40], rax
movups xmmword [r13 + 0x28], xmm0
cmp rsi, qword [rsp + 0x40]
jne 0x140031a6c
lea rcx, [rsp + 0x40]
mov rdx, rsi
call fcn.14002ecf4
mov rbp, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov r12, rdi
lea rax, [rsi + rsi*2]
mov ecx, 2
mov qword [rbp + rax*8], rcx
mov qword [rbp + rax*8 + 8], r13
mov qword [rbp + rax*8 + 0x10], rcx
mov rsi, qword [rsp + 0x50]
jmp 0x140031c59
mov al, byte [0x14009e330]
mov edx, 0x50
xor ecx, ecx
call fcn.14005ea40
test rax, rax
je 0x1400321db
mov rdi, rax
lea rax, [0x14007ddf3]
mov qword [rsp + 0x1c0], rax
mov rax, qword [rsp + 0x1c0]
imul rcx, qword [0x14009d6a0], 0x43e0a59f
rol rcx, 3
mov rdx, 0xffffffffca2d8c60
sub rdx, rcx
rol rdx, 1
movzx ecx, dx
mov rbx, qword [rax + rcx]
movabs rdx, 0xca0ed3aaa14cb51d
xor rbx, rdx
mov bpl, byte [rax + rcx + 8]
xor bpl, 0x77
mov ecx, 9
call fcn.140025085
mov rsi, rax
mov r13, rdx
mov qword [rdx], rbx
mov byte [rdx + 8], bpl
mov rcx, qword [r12 + r14 - 0x18]
mov rdx, qword [r12 + r14 - 0x10]
xor ebx, ebx
mov qword [rsp + 0x130], rbx
mov qword [rsp + 0x138], 1
mov qword [rsp + 0x140], rbx
mov qword [rsp + 0x1f0], 0x20
mov byte [rsp + 0x1f8], 3
mov qword [rsp + 0x1c0], rbx
mov qword [rsp + 0x1d0], rbx
lea rax, [rsp + 0x130]
mov qword [rsp + 0x1e0], rax
lea rax, [0x14007f960]
mov qword [rsp + 0x1e8], rax
lea r8, [rsp + 0x1c0]
call fcn.140057cc0
test al, al
jne 0x1400321ea
movups xmm0, xmmword [rsp + 0x130]
movaps xmmword [rsp + 0xd0], xmm0
mov rax, qword [rsp + 0x140]
mov qword [rsp + 0xe0], rax
lea rcx, [rsp + 0xe8]
mov dword [rcx + 8], ebx
movabs rax, 0x100000010
mov qword [rcx], rax
mov qword [rdi], rsi
mov qword [rdi + 8], r13
mov qword [rdi + 0x10], 9
movabs rax, 0x10000000a
mov qword [rdi + 0x18], rax
mov dword [rdi + 0x20], ebx
mov rax, qword [rsp + 0xf0]
mov qword [rdi + 0x48], rax
movaps xmm0, xmmword [rsp + 0xd0]
mov rax, qword [rsp + 0xe0]
mov qword [rdi + 0x38], rax
mov rax, qword [rsp + 0xe8]
mov qword [rdi + 0x40], rax
movups xmmword [rdi + 0x28], xmm0
mov rsi, qword [rsp + 0x50]
cmp rsi, qword [rsp + 0x40]
jne 0x140031c3c
lea rcx, [rsp + 0x40]
mov rdx, rsi
call fcn.14002ecf4
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x48]
lea rax, [rsi + rsi*2]
mov ecx, 2
mov qword [rbp + rax*8], rcx
mov qword [rbp + rax*8 + 8], rdi
mov qword [rbp + rax*8 + 0x10], rcx
inc rsi
mov qword [rsp + 0x50], rsi
dec r15
add r14, 0xffffffffffffffd8
test r15, r15
jne 0x1400316dd
lea rdi, [rsp + 0x1c0]
movabs rax, 0x8000000000000000
mov qword [rdi], rax
mov al, 0x13
mov byte [rdi + 0x18], al
mov byte [rdi + 0x1c], al
mov dword [rdi + 0x20], ebx
mov byte [rdi + 0x24], al
mov byte [rdi + 0x28], al
mov dword [rdi + 0x2c], ebx
mov word [rdi + 0x30], bx
mov byte [rdi + 0x32], 0xf
lea rax, [0x1400777ab]
lea r14, [rsp + 0xd0]
mov qword [r14], rax
mov rax, qword [r14]
mov rcx, 0xffffffff93ef9407
xor rcx, qword [0x14009d6a8]
add rcx, 0x6dfeb52e
rol rcx, 3
movabs rdx, 0xf000000000000a4f
xor rdx, rcx
rol rdx, 4
mov ecx, 0xffff
and rdx, rcx
movabs rsi, 0x12c6a4345513e658
xor rsi, qword [rax + rdx]
mov ecx, 8
call fcn.140025085
mov qword [rdx], rsi
mov qword [r14], rax
mov qword [r14 + 8], rdx
mov qword [r14 + 0x10], 8
movabs r12, 0x100000010
mov qword [r14 + 0x18], r12
mov dword [r14 + 0x20], ebx
lea rsi, [rsp + 0x130]
mov rcx, rsi
mov rdx, r14
call fcn.140044a27
mov rcx, rdi
call fcn.14002ed9d
mov rax, qword [rsi + 0x10]
mov qword [rdi + 0x10], rax
movups xmm0, xmmword [rsi]
movaps xmmword [rdi], xmm0
mov rbx, qword [rdi]
movups xmm0, xmmword [rdi + 0x18]
movaps xmmword [rsi + 0x10], xmm0
mov rax, qword [rdi + 8]
mov qword [rsi], rax
mov rax, qword [rdi + 0x10]
mov qword [rsi + 8], rax
mov r15d, 0
mov al, byte [rdi + 0x31]
mov byte [rsp + 0x38], al
mov bpl, byte [rdi + 0x32]
mov eax, dword [rdi + 0x33]
mov dword [rsp + 0x80], eax
mov al, byte [rdi + 0x37]
mov byte [rsp + 0x84], al
mov dword [rsi + 0x18], r15d
movabs rax, 0x100000009
mov qword [rsi + 0x10], rax
mov rax, qword [rsi]
mov rcx, qword [rsi + 8]
mov rdx, qword [rsi + 0x10]
mov qword [rdi + 0x10], rdx
mov edx, dword [rsi + 0x18]
mov dword [rdi + 0x18], edx
mov edx, dword [rsi + 0x1c]
mov dword [rdi + 0x1c], edx
mov qword [rdi], rax
mov qword [rdi + 8], rcx
mov dword [rdi + 0x24], r15d
mov qword [rdi + 0x1c], r12
mov rax, qword [rdi + 0x20]
mov qword [r14 + 0x28], rax
mov rax, qword [rdi]
mov rcx, qword [rdi + 8]
mov rdx, qword [rdi + 0x10]
mov qword [r14 + 0x18], rdx
mov edx, dword [rdi + 0x18]
mov dword [r14 + 0x20], edx
mov edx, dword [rdi + 0x1c]
mov dword [r14 + 0x24], edx
mov qword [r14 + 8], rax
mov qword [r14 + 0x10], rcx
mov rcx, rbx
mov edx, ebp
mov r13, qword [rsp + 0x2e0]
mov r8, r13
call fcn.140044a87
mov rcx, rax
shr rcx, 0x20
movabs rdx, 0xfffe00000000
add rdx, rax
movabs r8, 0xffff00000000
and rdx, r8
cmp cx, 3
cmovb rdx, r15
lea ecx, [rax + 1]
movabs r8, 0xffff0000ffff0000
and r8, rax
movzx r12d, cx
or r12, r8
or r12, rdx
movups xmm0, xmmword [rsp + 0x40]
movaps xmmword [rdi], xmm0
mov rax, qword [rsp + 0x50]
mov qword [rdi + 0x10], rax
mov word [rdi + 0x51], r15w
mov dword [rdi + 0x53], 0x100
mov byte [rdi + 0x57], r15b
movabs rax, 0x8000000000000001
mov qword [rdi + 0x18], rax
mov byte [rdi + 0x50], 0x10
mov qword [rdi + 0x58], r15
mov word [rdi + 0x60], 2
mov qword [r14], rbx
mov byte [r14 + 0x30], 1
mov al, byte [rsp + 0x38]
mov byte [r14 + 0x31], al
mov byte [r14 + 0x32], bpl
mov eax, dword [rsp + 0x80]
mov dword [r14 + 0x33], eax
mov al, byte [rsp + 0x84]
mov byte [r14 + 0x37], al
lea rcx, [rsp + 0xd0]
mov rdx, r13
mov rbx, qword [rsp + 0x60]
mov r8, rbx
call fcn.140044b53
lea rdi, [rsp + 0x1c0]
mov rcx, rdi
mov rdx, r12
mov r8, rbx
call fcn.140045336
movabs rax, 0x8000000000000000
mov qword [rsi], rax
mov word [rsi + 0x30], r15w
mov byte [rsi + 0x32], r15b
mov al, 0x13
mov byte [rsi + 0x18], al
mov byte [rsi + 0x1c], al
mov dword [rsi + 0x20], r15d
mov byte [rsi + 0x24], al
mov byte [rsi + 0x28], al
mov dword [rsi + 0x2c], r15d
lea rax, [0x1400738c6]
mov qword [rdi], rax
mov rcx, qword [rdi]
mov rax, qword [0x14009d6b0]
rol rax, 1
imul rax, rax, 0xffffffff83bf2759
add rax, 0xfffffffff4954eb2
rol rax, 0xa
mov edx, 0xffff
and rax, rdx
add rax, rcx
xorps xmm0, xmm0
movaps xmmword [rdi + 0x30], xmm0
movaps xmmword [rdi + 0x20], xmm0
movaps xmmword [rdi + 0x10], xmm0
movaps xmmword [rdi], xmm0
mov rcx, 0xfffffffffffffff8
lea rdx, [0x1400802c0]
mov r8, qword [rcx + rdx + 8]
xor r8, qword [rax + rcx + 8]
mov qword [rsp + rcx + 0x1c8], r8
add rcx, 8
cmp rcx, 0x38
jb 0x140031f62
mov ecx, 0x501a5097
xor ecx, dword [rax + 0x40]
lea rdx, [rsp + 0x1c0]
mov dword [rdx + 0x40], ecx
movzx ecx, byte [rax + 0x46]
movzx eax, word [rax + 0x44]
xor eax, 0xff3
mov word [rdx + 0x44], ax
xor cl, 0x1f
mov byte [rdx + 0x46], cl
lea rdi, [rsp + 0xd0]
mov r8d, 0x47
mov rcx, rdi
call fcn.1400712b0
mov ecx, 0x47
call fcn.140025085
mov r14, rax
mov r15, rdx
mov r8d, 0x47
mov rcx, rdx
mov rdx, rdi
call fcn.1400712b0
lea rdx, [rsp + 0x40]
mov qword [rdx], r14
mov qword [rdx + 8], r15
mov qword [rdx + 0x10], 0x47
lea rdi, [rsp + 0x1c0]
mov rcx, rdi
call fcn.14003fd01
lea r14, [rsp + 0x130]
mov rcx, r14
call fcn.14002ed9d
mov rax, qword [rdi + 0x10]
mov qword [r14 + 0x10], rax
movups xmm0, xmmword [rdi]
movaps xmmword [r14], xmm0
mov rax, qword [r14 + 0x20]
mov qword [rsp + 0xa0], rax
movaps xmmword [rsp + 0x80], xmm0
mov rax, qword [r14 + 0x10]
mov qword [rsp + 0x90], rax
mov rax, qword [r14 + 0x18]
mov qword [rsp + 0x98], rax
mov eax, dword [rsi + 0x31]
mov ecx, dword [rsi + 0x34]
mov dword [rsp + 0xb0], eax
mov dword [rsp + 0xb3], ecx
movabs rax, 0x100000010
mov qword [rsp + 0xa4], rax
mov dword [rsp + 0xac], 0
movaps xmm0, xmmword [rsp + 0x80]
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rsp + 0xa0]
mov qword [rdi + 0x20], rdx
mov edx, dword [rsp + 0xa8]
mov dword [rdi + 0x28], edx
mov edx, dword [rsp + 0xac]
mov dword [rdi + 0x2c], edx
mov qword [rdi + 0x10], rax
mov qword [rdi + 0x18], rcx
movaps xmmword [rdi], xmm0
mov byte [rdi + 0x30], 1
mov eax, dword [rsp + 0xb0]
mov ecx, dword [rsp + 0xb3]
mov dword [rdi + 0x34], ecx
mov dword [rdi + 0x31], eax
lea rcx, [rsp + 0x1c0]
mov rdx, qword [rsp + 0x328]
mov r8, rbx
call fcn.140044b53
mov rcx, qword [rsp + 0x320]
mov rdx, qword [rsp + 0x318]
call fcn.140040194
mov rcx, qword [rsp + 0x338]
mov rdx, qword [rsp + 0x330]
call fcn.140040194
movaps xmm6, xmmword [rsp + 0x390]
movaps xmm7, xmmword [rsp + 0x3a0]
add rsp, 0x3b8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str.__W_U_9n_ujsu_Lm_5__X___q_h
jmp 0x1400321ad
lea r8, str.__W_U_9n_ujsu_Lm_5__X___q_h
jmp 0x1400321bd
lea r8, str.__W_U_9n_ujsu_Lm_5__X___q_h
mov ecx, 2
mov edx, 2
call fcn.1400736b0
lea r8, str.__W_U_9n_ujsu_Lm_5__X___q_h
mov ecx, 3
mov edx, 3
call fcn.1400736b0
lea r8, str.__W_U_9n_ujsu_Lm_5__X___q_h
mov ecx, 4
mov edx, 4
call fcn.1400736b0
lea r8, str.__W_U_9n_ujsu_Lm_5__X___q_h
jmp 0x1400321ad
lea r8, str.__W_U_9n_ujsu_Lm_5__X___q_h
jmp 0x1400321bd
lea r8, str.__W_U_9n_ujsu_Lm_5__X___q_h
xor ecx, ecx
xor edx, edx
call fcn.1400736b0
lea r8, str.__W_U_9n_ujsu_Lm_5__X___q_h
mov ecx, 1
mov edx, 1
call fcn.1400736b0
mov ecx, 8
mov edx, 0x28
call fcn.140072100
mov ecx, 8
mov edx, 0x50
call fcn.140072100
lea rax, [0x140081798]
mov qword [rsp + 0x20], rax
lea rcx, str.a_Display_implementation_returned_an_error_unexpectedly
lea r9, [0x14007faf8]
lea r8, [rsp + 0xb0]
mov edx, 0x37
call fcn.140073b40
mov ecx, 4
mov edx, 0x18
call fcn.140072100
mov ecx, 4
mov edx, 0x3c
call fcn.140072100
lea rax, [0x140081d30]
lea rcx, [rsp + 0x1c0]
mov qword [rcx], rax
mov qword [rcx + 8], 1
lea rax, [0x14008d200]
mov qword [rcx + 0x10], rax
xorpd xmm0, xmm0
movupd xmmword [rcx + 0x18], xmm0
lea rdx, [0x140081d40]
call fcn.1400735f0
lea rcx, [0x14007fad8]
lea r8, str.__W_U_9n_ujsu_Lm_5__X___q_h
mov edx, 0x1c
call fcn.140073c00
mov ecx, 8
mov edx, 0x90
call fcn.140072100
mov ecx, 8
jmp 0x14003221b
mov ecx, 8
mov rdx, rdi
call fcn.140072100
int3