Function at 0x14037a110
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xe8
movaps xmmword [rsp + 0xd0], xmm6
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0x60], rcx
cmp rax, qword [rcx + 0x28]
je 0x14037a156
movaps xmm6, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rdi, qword [rsp + 0x60]
lea rax, [rdi + 0x28]
mov qword [rsp + 0xc0], rax
mov dword [rsp + 0x20], 0x868fc4c4
lea rdx, [rsp + 0x50]
lea rbx, [rsp + 0x48]
mov rcx, rdi
mov r8, rbx
mov r9d, 0x43a77977
call fcn.14037cd50
mov rsi, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
lea rcx, [rsi + 0x378]
mov dword [rsp + 0x28], 0xde5a9b9
mov dword [rsp + 0x20], 0xed662b64
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x48]
call fcn.14037c640
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x20], 0xdadab723
lea r8, [rsp + 0x48]
mov r9d, 0xac535870
call fcn.14037c800
mov r14, qword [rsp + 0x48]
sar r14, 5
movabs rax, 0xcccccccccccccccd
imul r14, rax
mov ebp, 0xb87c79c6
nop dword [rax + rax]
mov eax, dword [0x1405d3510]
mov ecx, dword [0x1405aeff0]
add ecx, ebp
cmp eax, ecx
jge 0x14037a277
mov rcx, rbx
mov edx, 0x113c2403
mov r8d, 0x7eddc361
call fcn.14037c9b0
movsxd rcx, dword [rsp + 0x48]
mov eax, dword [0x1405aeff0]
lea r8d, [rax + 0x20813868]
mov edx, eax
xor edx, 0x85d2e1ba
and eax, 0x5d2e1ba
add eax, eax
mov r9d, edx
xor r9d, eax
and eax, edx
lea r9d, [r9 + rax*2]
mov rdx, rbx
call fcn.14037c850
mov rdx, qword [rsp + 0x48]
mov r12d, dword [0x1404ac960]
mov eax, dword [0x1405d350c]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
je 0x14037a299
mov eax, dword [0x1404ac954]
mov ecx, 0x1fb3fc6c
mov edx, 0x9343c0dd
call fcn.14037c5f0
test al, 1
je 0x14037a200
jmp 0x14037a212
mov qword [rsp + 0x88], rdx
mov rcx, qword [rsi + 0x350]
sub rcx, qword [rsi + 0x348]
lea rdx, [rsp + 0x48]
mov r8d, 0xa385b372
mov r9d, 0x1d12aae1
call fcn.14037c610
mov rax, qword [rsp + 0x48]
mov qword [rsp + 0x90], rax
lea eax, [r14 + 0x1f]
cdq
idiv r14d
cmp eax, 3
mov ecx, 2
cmovge ecx, eax
mov qword [rsp + 0xa8], rcx
lea eax, [rcx + 6]
mov dword [rdi + 8], eax
xor eax, eax
sub eax, dword [0x1405aeff0]
mov ecx, eax
xor ecx, 0x2a70db9d
mov edx, eax
and edx, 0x2a70db9d
lea ecx, [rcx + rdx*2]
neg ecx
mov edx, eax
xor edx, 0x761b1f87
and eax, 0x761b1f87
lea eax, [rdx + rax*2]
neg eax
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], ecx
lea r8, [rsp + 0x50]
lea r9, [rsp + 0x48]
mov rcx, rdi
mov qword [rsp + 0xb8], r14
mov rdx, r14
call fcn.14037c8a0
mov r15, qword [rsp + 0x50]
mov r14, qword [rsp + 0x48]
mov rbx, qword [rdi + 0x18]
mov rcx, qword [r15]
mov rax, rbx
movabs r8, 0x2a499bd604241d88
add r8, qword [0x1405aeff8]
sub rax, rcx
mov rdx, rax
or rdx, r8
shr rdx, 0x20
mov dword [rsp + 0x68], r12d
je 0x14037a387
cqo
idiv r8
jmp 0x14037a38c
xor edx, edx
div r8d
movabs r9, 0xcccccccccccccccd
cmp r14, rax
jae 0x14037a3ef
mov dword [rsp + 0x20], 0xfc9424fd
lea r8, [rsp + 0x48]
mov rdx, r14
mov r9d, 0x9343c0dd
call fcn.14037ca40
mov rax, qword [rsp + 0x48]
cmp rax, rbx
je 0x14037a428
lea rcx, [rax + 0x50]
xorps xmm0, xmm0
nop word [rax + rax]
movups xmmword [rcx - 0x14], xmm0
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x30], xmm0
movups xmmword [rcx - 0x40], xmm0
movups xmmword [rcx - 0x50], xmm0
cmp rcx, rbx
je 0x14037a428
add rcx, 0x50
jmp 0x14037a3d0
jbe 0x14037a42c
mov rdx, qword [rdi + 0x20]
neg rcx
mov r8, rdx
xor r8, rcx
and rcx, rdx
lea rcx, [r8 + rcx*2]
sar rcx, 4
imul rcx, r9
cmp rcx, r14
jae 0x14037a7c8
lea r8, [rsp + 0x70]
mov rcx, r15
mov rdx, r14
call fcn.14037b840
jmp 0x14037a42c
mov qword [rdi + 0x18], rax
mov rcx, qword [rdi + 0x18]
mov qword [rsp + 0x98], r15
mov rax, qword [r15]
mov qword [rsp + 0xa0], rax
sub rcx, rax
mov qword [rsp + 0xc8], rcx
mov edx, dword [0x1405aedf0]
mov dword [rsp + 0x5c], 0
xor eax, eax
sub eax, dword [0x1405aeff0]
mov ecx, eax
xor ecx, 0x4783867d
and eax, 0x4783867d
lea eax, [rcx + rax*2]
mov ecx, edx
sub ecx, eax
mov dword [0x1405aedf0], ecx
mov dword [rsp + 0xb4], edx
mov dword [rsp + 0xb0], ecx
test edx, ecx
jne 0x14037a4a5
xor ebp, ebp
mov dword [rsp + 0x5c], 0
cmp dword [rsp + 0x68], 0
jg 0x14037a5e4
mov rax, qword [rsp + 0xc8]
shr rax, 4
imul eax, eax, 0xcccccccd
movabs rsi, 0x2a499bd604241d39
test eax, eax
mov r8, qword [rsp + 0x90]
mov r9, qword [rsp + 0x98]
mov r10, qword [rsp + 0xa0]
jle 0x14037a51d
xor eax, eax
nop
mov rcx, qword [rdi]
mov rcx, qword [rcx + 0x3a8]
lea rdx, [rax + rax*4]
shl rdx, 4
mov qword [r10 + rdx + 0x18], rcx
add rax, qword [0x1405aeff8]
add rax, rsi
mov rcx, qword [rdi + 0x18]
mov r10, qword [r9]
sub rcx, r10
shr rcx, 4
imul ecx, ecx, 0xcccccccd
movsxd rcx, ecx
cmp rax, rcx
jl 0x14037a4e0
lea rax, [rdi + 0x40]
mov qword [rsp + 0x68], rax
movsxd rbx, r8d
mov r13, qword [rdi + 0x40]
mov r15, qword [rdi + 0x48]
mov rbp, r15
sub rbp, r13
sar rbp, 1
mov r9d, dword [0x1405aeff0]
lea r8d, [r9 - 0x5a92dd74]
add r9d, 0x474145b7
mov rcx, rbx
mov rdx, rbp
call fcn.140346bc0
test al, 1
mov rcx, qword [rsp + 0xb8]
je 0x14037a57a
lea rax, [rbx*2]
add rax, r13
mov qword [rdi + 0x48], rax
jmp 0x14037a87c
mov r12, rbx
sub r12, rbp
jbe 0x14037a87c
mov r14, rcx
lea rdx, [rsp + 0x48]
mov rcx, rdi
mov r8d, 0x3d33a189
mov r9d, 0xa689108a
call fcn.14037c960
mov rax, qword [rsp + 0x48]
mov rcx, qword [0x1405aeff8]
add rcx, qword [rax]
sub rcx, r13
movabs rax, 0x2a499bd604241d38
add rax, rcx
sar rax, 1
cmp rax, rbx
jae 0x14037a857
lea r8, [rsp + 0x78]
mov rcx, qword [rsp + 0x68]
mov rdx, rbx
call fcn.14037bca0
jmp 0x14037a879
lea r14, [rsp + 0x48]
lea r12, [rsp + 0x50]
mov esi, 0xb87c79a7
mov r13b, 1
lea rax, [fcn.14037a110]
lea r15d, [rax + rax]
add r15d, 0x3ee0
mov dword [rsp + 0x5c], 0
jmp 0x14037a62f
test dil, 1
mov rdi, qword [rsp + 0x60]
jne 0x14037a4a5
mov ecx, ebp
mov rdx, r14
mov r8d, 0xdf887db0
mov r9d, 0x12e203fc
call fcn.140152500
mov rbx, qword [rsp + 0x48]
add rbx, qword [rsp + 0x88]
mov ecx, 0xc2ffe6ac
mov edx, 0x25f5a447
call fcn.14008ade0
nop word cs:[rax + rax]
mov rcx, r12
mov rdx, r14
mov r8d, 0xa8f7faa8
mov r9d, 0xe538756c
call fcn.14037c650
mov eax, dword [rsp + 0x50]
imul eax, dword [rsp + 0x48]
test al, 1
jne 0x14037a670
mov rcx, rbx
mov rdx, r14
mov r8d, 0x7d36c250
mov r9d, 0x542ae458
call fcn.14037cac0
movzx ecx, byte [rsp + 0x48]
add ebp, 0x9000f37f
mov r9d, 0xb87c7984
nop dword [rax]
mov eax, dword [0x1405d3510]
cmp eax, 0x17
jg 0x14037a6ea
mov edx, dword [0x1405d350c]
lea eax, [rdx - 1]
imul eax, edx
mov r8d, dword [0x1405aeff0]
add r8d, r9d
xor edx, edx
div r8d
test edx, edx
je 0x14037a700
mov eax, r15d
not eax
test eax, r15d
jne 0x14037a6c0
jmp 0x14037a6cb
mov eax, dword [rsp + 0x5c]
xor al, cl
mov dword [rsp + 0x5c], eax
mov eax, dword [0x1405aeff0]
mov ecx, eax
xor ecx, 0xb87c7983
and eax, 0x387c7983
lea eax, [rcx + rax*2]
mov ebx, ebp
add ebx, eax
nop word cs:[rax + rax]
mov dword [rsp + 0x28], 0x4e88db9f
mov dword [rsp + 0x20], 0x8488aff1
mov ecx, ebx
mov edx, dword [rsp + 0x68]
mov r8, r14
mov r9, r12
call fcn.14037ca60
mov ebp, dword [rsp + 0x48]
movzx edi, byte [rsp + 0x50]
mov r8d, dword [0x1405aeff0]
lea edx, [r8 + 0x5034efff]
add r8d, 0x592613c4
mov rcx, r14
call fcn.14037c540
mov ecx, dword [rsp + 0x48]
mov r8d, dword [0x1405aeff0]
mov eax, r8d
xor eax, 0x73036d51
mov edx, r8d
and edx, 0x73036d51
lea edx, [rax + rdx*2]
add r8d, 0x89f18183
call fcn.14037cc30
test al, 1
jne 0x14037a620
nop word [rax + rax]
mov eax, dword [0x1405aeff0]
add eax, esi
mov dword [0x1405d3510], eax
test r13b, r13b
je 0x14037a7b0
jmp 0x14037a730
mov r12, r14
sub r12, rax
je 0x14037a84e
movabs rcx, 0x2a499bd604241d37
add rcx, qword [0x1405aeff8]
xor rax, rcx
add r14, rax
mov rsi, r12
not rsi
mov eax, esi
and eax, 7
mov rcx, r12
and rcx, 0xfffffffffffffff8
or rcx, rax
and rsi, 0xfffffffffffffff8
or rsi, rcx
mov rcx, rsi
not rcx
mov edx, 0xcb1ca03a
mov r8d, 0xe7a86878
call fcn.14037cde0
test al, 1
je 0x14037b131
mov eax, dword [0x1405aeff0]
lea edx, [rax - 0x4cd8def3]
mov ecx, eax
xor ecx, 0xeffff9e0
and eax, 0x6ffff9e0
lea r8d, [rcx + rax*2]
mov rcx, r14
call fcn.14037c9c0
test al, 1
je 0x14037b170
mov qword [rdi + 0x18], rbx
jmp 0x14037a42c
lea rdi, [r15 + r12*2]
add r12, r12
mov rcx, r15
xor edx, edx
mov r8, r12
call fcn.14046ceb0
mov rax, qword [rsp + 0x60]
mov qword [rax + 0x48], rdi
mov rdi, qword [rsp + 0x60]
mov rcx, r14
lea r15, [rdi + 8]
test ecx, ecx
mov r14, qword [rsp + 0x98]
jle 0x14037a94e
mov r13d, ecx
xor ebp, ebp
lea rbx, [rsp + 0x50]
lea r12, [rsp + 0x48]
nop
mov rax, qword [rdi]
mov rax, qword [rax + 0x370]
lea rcx, [rbp*4]
add rcx, rbp
shl rcx, 5
lea rdx, [rax + rcx]
mov r8d, dword [rax + rcx + 0x18]
mov r9, qword [r14]
mov r10, rbp
shl r10, 4
lea r10, [r10 + r10*4]
mov qword [r9 + r10], 1
mov dword [r9 + r10 + 0x44], r8d
mov r8, qword [r14]
mov qword [r8 + r10 + 0x10], rdx
mov edx, dword [rax + rcx + 0x24]
mov dword [rsp + 0x28], 0xe93e8e08
mov dword [rsp + 0x20], 0x95000eb5
mov rcx, r15
mov r8, rbx
mov r9, r12
call fcn.14037c8b0
mov rax, qword [rsp + 0x48]
mov rcx, qword [rdi + 0x40]
movzx edx, word [rcx + rax*2]
movzx r8d, word [rsp + 0x50]
xor r8w, dx
mov r9d, r8d
not r9d
and r9d, edx
add r9d, r9d
mov edx, r8d
xor edx, r9d
and r9d, r8d
lea edx, [rdx + r9*2]
mov word [rcx + rax*2], dx
add rbp, qword [0x1405aeff8]
add rbp, rsi
cmp rbp, r13
jne 0x14037a8a0
xor r13d, r13d
mov rbx, qword [rsp + 0x90]
test ebx, ebx
jle 0x14037a9a9
movabs r14, 0x2a499bd704241d37
add r14, qword [0x1405aeff8]
mov rax, rbx
not rax
mov rcx, rbx
xor rcx, r14
not r14
and r14, rax
or r14, rcx
not r14
lea rcx, [r14 - 1]
and ebx, 3
mov edx, 0x23520831
mov r8d, 0x99a48271
call fcn.14037c5c0
test al, 1
je 0x14037a9b8
xor r12d, r12d
jmp 0x14037ab07
movabs rbp, 0xcccccccccccccccd
jmp 0x14037ab46
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0x90], rbx
sub r14, rbx
mov qword [rsp + 0x98], r14
xor eax, eax
xor r12d, r12d
xor r13d, r13d
xor ebx, ebx
mov r15, qword [rsp + 0x68]
nop word cs:[rax + rax]
mov rcx, qword [r15]
mov qword [rsp + 0x88], rax
add rcx, rax
mov eax, dword [0x1405aeff0]
lea edx, [rax - 0x7a9ea631]
add eax, 0x85357a7a
mov dword [rsp + 0x38], eax
mov dword [rsp + 0x30], edx
lea rbp, [rsp + 0x48]
mov qword [rsp + 0x28], rbp
lea r14, [rsp + 0x50]
mov qword [rsp + 0x20], r14
mov edx, r13d
mov r8, r12
mov r9, r15
call fcn.14037c780
mov ecx, dword [rsp + 0x50]
mov rdi, qword [rsp + 0x48]
movzx edx, word [rdi]
mov dword [rsp + 0x28], 0xdcf86882
mov dword [rsp + 0x20], 0x99143545
mov r8, rbp
mov r9, r14
call fcn.14037c630
mov ecx, dword [rsp + 0x48]
movzx eax, word [rsp + 0x50]
mov word [rdi], ax
mov edi, r12d
and edi, 3
xor rdi, r12
xor rdi, 3
mov r14, qword [r15]
movzx edx, word [r14 + rdi*2]
mov dword [rsp + 0x20], 0x407c64e4
mov r8, rbp
mov r9d, 0xccb900f8
call fcn.1401463b0
mov r13d, dword [rsp + 0x48]
mov word [r14 + rdi*2], r13w
mov eax, dword [0x1405aeff0]
lea r8d, [rax + 0x45543b2a]
mov ecx, eax
xor ecx, 0x7f9ab5dc
and eax, 0x7f9ab5dc
lea r9d, [rcx + rax*2]
mov rcx, rbx
mov rdx, rbp
call fcn.1402d29c0
mov rbx, qword [rsp + 0x48]
cmp rbx, qword [rsp + 0x98]
je 0x14037aaee
mov rax, qword [rsp + 0x88]
add rax, 8
add r12, 4
jmp 0x14037a9f0
add r12, 4
mov rdi, qword [rsp + 0x60]
mov rbx, qword [rsp + 0x90]
mov r15, qword [rsp + 0xa0]
test rbx, rbx
movabs rbp, 0xcccccccccccccccd
je 0x14037ab43
dec rbx
nop dword [rax]
mov eax, r13d
mov rcx, qword [rsp + 0x68]
mov rcx, qword [rcx]
movzx r13d, word [rcx + r12*2]
add r13d, eax
mov word [rcx + r12*2], r13w
sub rbx, 1
jb 0x14037ab43
inc r12
jmp 0x14037ab20
mov r13d, r13d
mov r12, qword [rdi + 0x28]
mov r14, qword [rdi + 0x30]
mov rbx, r14
sub rbx, r12
sar rbx, 4
imul rbx, rbp
cmp r13, rbx
jae 0x14037abaf
lea rcx, [r13*4]
add rcx, r13
shl rcx, 4
lea rax, [r12 + rcx]
cmp rax, r14
je 0x14037abfc
add rcx, r12
add rcx, 0x50
xorps xmm0, xmm0
nop word [rax + rax]
movups xmmword [rcx - 0x14], xmm0
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x30], xmm0
movups xmmword [rcx - 0x40], xmm0
movups xmmword [rcx - 0x50], xmm0
cmp rcx, r14
je 0x14037abfc
add rcx, 0x50
jmp 0x14037ab90
mov rcx, r13
mov rdx, rbx
mov r8d, 0xd9fbcafe
mov r9d, 0x34489f5a
call fcn.14037c840
test al, 1
je 0x14037ac00
mov rax, qword [rdi + 0x38]
sub rax, r12
sar rax, 4
imul rax, rbp
cmp rax, r13
jae 0x14037b081
lea r8, [rsp + 0x80]
mov rcx, qword [rsp + 0xc0]
mov rdx, r13
call fcn.14037b840
jmp 0x14037ac00
mov qword [rdi + 0x30], rax
mov eax, 0xb87c7982
add eax, dword [0x1405aeff0]
mov rcx, qword [rsp + 0xb8]
cmp ecx, eax
jle 0x14037afc4
mov eax, ecx
mov qword [rsp + 0x68], rax
mov r9, qword [rsp + 0xa8]
mov eax, r9d
not eax
mov ecx, r9d
xor ecx, 1
and eax, 0xfffffffe
or eax, ecx
and r9d, 0x7ffffffe
xor eax, 0xffffffff
sete al
setne cl
movzx r10d, byte [0x1405d0870]
mov edx, r10d
xor dl, 1
and cl, dl
mov r8d, r10d
and r8b, al
or r8b, cl
mov ecx, r8d
not cl
xor r8b, r10b
and cl, dl
or cl, r8b
xor cl, 1
xor r10b, al
or r10b, cl
mov byte [rsp + 0x88], r10b
add r9d, 0xfffffffe
mov qword [rsp + 0xa8], r9
xor r13d, r13d
lea rdi, [rsp + 0x50]
xor edx, edx
mov r12, qword [rsp + 0xc0]
jmp 0x14037ad04
mov eax, dword [0x1405aeff0]
mov edx, eax
xor edx, 0x1b23444c
mov r8d, eax
and r8d, 0x1b23444c
lea edx, [rdx + r8*2]
add eax, 0xd136c8e3
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], edx
lea rax, [rsp + 0x48]
mov qword [rsp + 0x20], rax
mov rdx, r13
mov r8, qword [rsp + 0x68]
mov r9, rdi
call fcn.14037cb50
mov edx, dword [rsp + 0x50]
mov r13, qword [rsp + 0x48]
test al, 1
jne 0x14037afc4
mov r10, qword [rsp + 0x60]
mov rax, qword [r10]
mov rax, qword [rax + 0x370]
lea rcx, [r13*4]
add rcx, r13
shl rcx, 5
mov r8d, dword [0x1405aeff0]
mov r9d, r8d
xor r9d, 0xc26a9fcc
and r8d, 0x426a9fcc
lea r8d, [r9 + r8*2]
mov r9d, r8d
xor r9d, 0xf611d9b6
and r8d, 0x7611d9b6
lea r8d, [r9 + r8*2]
movsxd rbx, edx
cmp dword [r10 + 8], r8d
jle 0x14037ad97
lea rdx, [rax + rcx]
xor r8d, r8d
nop word cs:[rax + rax]
lea r9, [r8 + rbx]
mov r10, qword [r12]
lea r9, [r9 + r9*4]
shl r9, 4
mov qword [r10 + r9 + 0x10], rdx
add r8, qword [0x1405aeff8]
add r8, rsi
movsxd r9, dword [r15]
cmp r8, r9
jl 0x14037ad70
mov eax, dword [rax + rcx + 0x18]
mov ecx, eax
xor ecx, 0xcfffffff
and ecx, eax
mov edx, eax
not edx
mov r8d, eax
and r8d, 0x403fff
mov r9d, edx
and r9d, 0xffbfc000
or r9d, r8d
and edx, 0x403fff
or edx, r9d
cmp ecx, 0x20000000
not edx
cmove edx, eax
mov ebp, edx
not ebp
xor edx, 0xffbfffff
and ebp, 0x400000
or ebp, edx
not ebp
mov rax, qword [r12]
lea rcx, [rbx + rbx*4]
shl rcx, 4
mov qword [rax + rcx], 6
mov dword [rax + rcx + 0x44], ebp
lea eax, [rbx + 1]
cdqe
mov rcx, qword [r12]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 2
mov dword [rcx + rax + 0x44], ebp
lea eax, [rbx + 2]
cdqe
mov rcx, qword [r12]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 3
mov dword [rcx + rax + 0x44], ebp
mov r9d, dword [0x1405aeff0]
lea r8d, [r9 + 0x2598230b]
add r9d, 0x352e4438
mov ecx, ebx
lea r14, [rsp + 0x48]
mov rdx, r14
call fcn.14037ca50
mov rax, qword [rsp + 0x48]
mov rcx, qword [r12]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 7
mov dword [rcx + rax + 0x44], ebp
lea eax, [rbx + 4]
cdqe
mov rcx, qword [r12]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 5
mov dword [rcx + rax + 0x44], ebp
lea eax, [rbx + 5]
cdqe
mov rcx, qword [r12]
lea rax, [rax + rax*4]
shl rax, 4
mov qword [rcx + rax], 1
lea rdx, [rcx + rax]
add rdx, 0x44
mov qword [rsp + 0x20], r14
mov dword [rsp + 0x30], 0xd4ff2640
mov dword [rsp + 0x28], 0xb7e011e0
mov ecx, ebp
mov r8d, ebx
mov r9, rdi
call fcn.14037cba0
mov ecx, dword [rsp + 0x50]
mov edx, dword [rsp + 0x48]
mov dword [rsp + 0x20], 0x9e2a9eee
mov r8, r14
mov r9d, 0x84aac234
call fcn.14037cc40
mov rcx, qword [rsp + 0x48]
movabs rax, 0xd5b66429fbdbe2c5
sub rax, rcx
mov rdx, rcx
shl rdx, 4
lea rdx, [rdx + rdx*4]
add rcx, 2
mov r8, qword [rsp + 0xa8]
nop word cs:[rax + rax]
mov r9, qword [r12]
mov r10, qword [0x1405aeff8]
add r10, rsi
mov qword [r9 + rdx], r10
mov dword [r9 + rdx + 0x44], ebp
mov r9, qword [r12]
mov r10, qword [0x1405aeff8]
mov r11, r10
xor r11, rsi
and r10, rsi
lea r10, [r11 + r10*2]
mov qword [r9 + rdx + 0x50], r10
mov dword [r9 + rdx + 0x94], ebp
test r8d, r8d
je 0x14037af90
add rax, 0xfffffffffffffffe
add rdx, 0xa0
add rcx, 2
add r8d, 0xfffffffe
jmp 0x14037af30
test byte [rsp + 0x88], 1
jne 0x14037acb0
mov rcx, qword [r12]
mov qword [rcx + rdx + 0xa0], 1
mov dword [rcx + rdx + 0xe4], ebp
mov rcx, qword [0x1405aeff8]
sub rcx, rax
jmp 0x14037acb0
mov rax, qword [rsp + 0x60]
mov rsi, qword [rax + 0x28]
mov rax, qword [rax + 0x30]
sub rax, rsi
shr rax, 4
imul eax, eax, 0xcccccccd
test eax, eax
movabs rbp, 0xcccccccccccccccd
jle 0x14037a13a
mov ebx, 0x18
mov r14d, 1
movabs r15, 0x89b79d3cf220379c
movabs r12, 0x9b79d3cf220379c
movabs r13, 0x764862c30ddfc864
lea rdi, [rsp + 0x48]
nop
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
mov rax, qword [rax + 0x3a8]
mov qword [rsi + rbx], rax
mov rsi, qword [rcx + 0x28]
mov rax, qword [rcx + 0x30]
mov rcx, rax
xor rcx, r15
and rax, r12
lea rcx, [rcx + rax*2]
sub rcx, rsi
add rcx, r13
sar rcx, 4
imul rcx, rbp
mov rdx, rdi
mov r8d, 0xb9d11608
mov r9d, 0x1a1712c6
call fcn.14037c9f0
movsxd rax, dword [rsp + 0x4c]
cmp r14, rax
jge 0x14037a13a
add rbx, 0x50
inc r14
jmp 0x14037b020
mov r12, r13
sub r12, rbx
je 0x14037b128
not rbx
add r13, rbx
mov rax, r12
not rax
mov rcx, r12
xor rcx, 7
and rax, 0xfffffffffffffff8
or rax, rcx
cmp rax, 0xffffffffffffffff
je 0x14037b101
add r14, 0x50
add rax, 2
xorps xmm0, xmm0
movabs rcx, 0x2a499bd604241d37
nop word cs:[rax + rax]
movups xmmword [r14 - 0x14], xmm0
movups xmmword [r14 - 0x20], xmm0
movups xmmword [r14 - 0x30], xmm0
movups xmmword [r14 - 0x40], xmm0
movups xmmword [r14 - 0x50], xmm0
add r12, qword [0x1405aeff8]
add r12, rcx
test rax, rax
je 0x14037b101
add r14, 0x50
inc rax
jmp 0x14037b0d0
mov rax, qword [0x1405aeff8]
movabs rcx, 0x2a499bd604241d3f
mov rdx, rax
xor rdx, rcx
and rax, rcx
lea rax, [rdx + rax*2]
cmp r13, rax
jae 0x14037b296
mov qword [rdi + 0x30], r14
jmp 0x14037ac00
add rbx, 0x50
add rsi, 2
xorps xmm0, xmm0
nop dword [rax]
movups xmmword [rbx - 0x14], xmm0
movups xmmword [rbx - 0x20], xmm0
movups xmmword [rbx - 0x30], xmm0
movups xmmword [rbx - 0x40], xmm0
movups xmmword [rbx - 0x50], xmm0
mov rax, r12
not rax
lea r12, [rax + r12*2]
test rsi, rsi
je 0x14037a821
add rbx, 0x50
inc rsi
jmp 0x14037b140
add rbx, 0x280
xorps xmm0, xmm0
nop word [rax + rax]
movups xmmword [rbx - 0x244], xmm0
movups xmmword [rbx - 0x250], xmm0
movups xmmword [rbx - 0x260], xmm0
movups xmmword [rbx - 0x270], xmm0
movups xmmword [rbx - 0x280], xmm0
movups xmmword [rbx - 0x230], xmm0
movups xmmword [rbx - 0x220], xmm0
movups xmmword [rbx - 0x210], xmm0
movups xmmword [rbx - 0x200], xmm0
movups xmmword [rbx - 0x1f4], xmm0
movups xmmword [rbx - 0x1e0], xmm0
movups xmmword [rbx - 0x1d0], xmm0
movups xmmword [rbx - 0x1c0], xmm0
movups xmmword [rbx - 0x1b0], xmm0
movups xmmword [rbx - 0x1a4], xmm0
movups xmmword [rbx - 0x190], xmm0
movups xmmword [rbx - 0x180], xmm0
movups xmmword [rbx - 0x170], xmm0
movups xmmword [rbx - 0x160], xmm0
movups xmmword [rbx - 0x154], xmm0
movups xmmword [rbx - 0x104], xmm0
movups xmmword [rbx - 0x110], xmm0
movups xmmword [rbx - 0x120], xmm0
movups xmmword [rbx - 0x130], xmm0
movups xmmword [rbx - 0x140], xmm0
movups xmmword [rbx - 0xf0], xmm0
movups xmmword [rbx - 0xe0], xmm0
movups xmmword [rbx - 0xd0], xmm0
movups xmmword [rbx - 0xc0], xmm0
movups xmmword [rbx - 0xb4], xmm0
movups xmmword [rbx - 0xa0], xmm0
movups xmmword [rbx - 0x90], xmm0
movups xmmword [rbx - 0x80], xmm0
movups xmmword [rbx - 0x70], xmm0
movups xmmword [rbx - 0x64], xmm0
movups xmmword [rbx - 0x50], xmm0
movups xmmword [rbx - 0x40], xmm0
movups xmmword [rbx - 0x30], xmm0
movups xmmword [rbx - 0x20], xmm0
movups xmmword [rbx - 0x14], xmm0
add r12, 0xfffffffffffffff8
je 0x14037a84e
add rbx, 0x280
jmp 0x14037b180
add r12, 0xfffffffffffffff8
add r14, 0x280
mov r13d, dword [rsp + 0xb4]
and r13d, dword [rsp + 0xb0]
xorps xmm6, xmm6
lea rbx, [rsp + 0x48]
nop dword [rax]
movups xmmword [r14 - 0x244], xmm6
movups xmmword [r14 - 0x250], xmm6
movups xmmword [r14 - 0x260], xmm6
movups xmmword [r14 - 0x270], xmm6
movups xmmword [r14 - 0x280], xmm6
movups xmmword [r14 - 0x230], xmm6
movups xmmword [r14 - 0x220], xmm6
movups xmmword [r14 - 0x210], xmm6
movups xmmword [r14 - 0x200], xmm6
movups xmmword [r14 - 0x1f4], xmm6
movups xmmword [r14 - 0x1e0], xmm6
movups xmmword [r14 - 0x1d0], xmm6
movups xmmword [r14 - 0x1c0], xmm6
movups xmmword [r14 - 0x1b0], xmm6
movups xmmword [r14 - 0x1a4], xmm6
movups xmmword [r14 - 0x190], xmm6
movups xmmword [r14 - 0x180], xmm6
movups xmmword [r14 - 0x170], xmm6
movups xmmword [r14 - 0x160], xmm6
movups xmmword [r14 - 0x154], xmm6
movups xmmword [r14 - 0x104], xmm6
movups xmmword [r14 - 0x110], xmm6
movups xmmword [r14 - 0x120], xmm6
movups xmmword [r14 - 0x130], xmm6
movups xmmword [r14 - 0x140], xmm6
cmp r13d, 1
mov ebp, 0
sbb ebp, ebp
movzx ecx, byte [0x1404ac95a]
mov eax, dword [0x1405aeff0]
mov edx, eax
xor edx, 0x66c3ea7a
mov r8d, eax
and r8d, 0x66c3ea7a
lea r9d, [rdx + r8*2]
add eax, 0x2755a03c
mov dword [rsp + 0x20], eax
mov edx, dword [rsp + 0x5c]
mov r8, rbx
call fcn.140146b30
movzx ecx, byte [rsp + 0x48]
mov dword [rsp + 0x20], 0xe42f9854
mov edx, ebp
mov r8, rbx
mov r9d, 0x13f2aee5
call fcn.14037ce20
cmp byte [rsp + 0x48], 0
setne al
or al, byte [0x1405d0870]
and al, 1
mov byte [0x1405d0870], al
movups xmmword [r14 - 0xb4], xmm6
movups xmmword [r14 - 0xc0], xmm6
movups xmmword [r14 - 0xd0], xmm6
movups xmmword [r14 - 0xe0], xmm6
movups xmmword [r14 - 0xf0], xmm6
movups xmmword [r14 - 0xa0], xmm6
movups xmmword [r14 - 0x90], xmm6
movups xmmword [r14 - 0x80], xmm6
movups xmmword [r14 - 0x70], xmm6
movups xmmword [r14 - 0x64], xmm6
movups xmmword [r14 - 0x50], xmm6
movups xmmword [r14 - 0x40], xmm6
movups xmmword [r14 - 0x30], xmm6
movups xmmword [r14 - 0x20], xmm6
movups xmmword [r14 - 0x14], xmm6
test r12, r12
je 0x14037b128
add r12, 0xfffffffffffffff8
add r14, 0x280
jmp 0x14037b2c0