Function at 0x14017e060
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x3f0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x328], r9
mov qword [rbp + 0x2e0], r8
mov qword [rbp + 0x2e8], rdx
mov qword [rbp + 0x2f0], rcx
mov rax, qword [rbp + 0x3e0]
mov qword [rbp + 0x330], rax
mov rax, qword [rbp + 0x3d8]
mov qword [rbp + 0x2f8], rax
mov rax, qword [rbp + 0x3d0]
mov qword [rbp + 0x300], rax
mov eax, 0x10
mov qword [rbp + 0x310], rax
call fcn.140271bb0
sub rsp, rax
mov rax, qword [rbp + 0x310]
mov rcx, rsp
mov qword [rbp + 0x308], rcx
call fcn.140271bb0
sub rsp, rax
mov rax, qword [rbp + 0x310]
mov rcx, rsp
mov qword [rbp + 0x318], rcx
call fcn.140271bb0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x320], rax
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
mov r9, qword [rbp + 0x328]
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x330]
add rcx, 0x60
mov qword [rbp + 0x338], rcx
mov dword [r9 + 0x400], 1
cmp rax, 5
jge 0x14017e406
mov rax, qword [rbp + 0x330]
cmp rax, 0
setg cl
mov byte [rbp + 0x2d7], cl
xor eax, eax
test cl, 1
mov qword [rbp + 0x2d8], rax
jne 0x14017e19d
mov rax, qword [rbp + 0x328]
mov rcx, qword [rbp + 0x330]
add rcx, qword [rax + 0x4f0]
mov qword [rax + 0x4f0], rcx
jmp 0x14017e3a1
mov rax, qword [rbp + 0x2d8]
mov rcx, qword [rbp + 0x330]
mov rdx, qword [rbp + 0x328]
mov r8, qword [rbp + 0x300]
mov r11, qword [rbp + 0x2f8]
xor r9d, r9d
mov r10d, r9d
sub r10, rax
movabs r9, 0x71cd4d06438adcec
movabs rsi, 0x71cd4d06438adcec
xor r9, rsi
sub r9, r11
add r10, r9
movabs r9, 0x2c816d267ab2312b
movabs r11, 0x2c816d267ab2312b
xor r9, r11
sub r9, r10
movzx r8d, byte [r8 + r9]
mov r9d, dword [rdx + r8*4]
xor r10d, r10d
sub r10d, 1
sub r9d, r10d
mov dword [rdx + r8*4], r9d
add rax, 1
cmp rax, rcx
mov qword [rbp + 0x2d8], rax
jne 0x14017e19d
mov al, byte [rbp + 0x2d7]
mov rcx, qword [rbp + 0x328]
mov rdx, qword [rbp + 0x330]
add rdx, qword [rcx + 0x4f0]
mov qword [rcx + 0x4f0], rdx
test al, 1
jne 0x14017e25a
jmp 0x14017e3a1
mov rax, qword [rbp + 0x330]
mov rcx, qword [rbp + 0x2e8]
mov rdx, qword [rbp + 0x2f0]
add rdx, 8
mov qword [rbp + 0x2b8], rdx
mov rcx, qword [rcx]
mov qword [rbp + 0x2c0], rcx
mov qword [rbp + 0x2c8], rax
mov rcx, qword [rbp + 0x2f0]
mov rax, qword [rbp + 0x2c0]
mov rdx, qword [rbp + 0x2c8]
mov qword [rbp + 0x2a0], rdx
mov rcx, qword [rcx]
mov qword [rbp + 0x2a8], rcx
cmp rcx, rax
mov qword [rbp + 0x2b0], rax
jg 0x14017e317
mov rcx, qword [rbp + 0x2f0]
mov r8, qword [rbp + 0x2a8]
mov rax, r8
shl rax, 1
movabs r9, 0x851010dc6613f65b
movabs rdx, 0x851010dc6613f65b
xor r9, rdx
mov edx, 2
cmp r8, r9
cmovg rdx, rax
sub rsp, 0x20
call fcn.140044c70
mov rax, qword [rbp + 0x2e8]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp + 0x2b0], rax
mov rax, qword [rbp + 0x2a0]
mov r8, qword [rbp + 0x2e8]
mov r9, qword [rbp + 0x2b8]
mov rcx, qword [rbp + 0x2b0]
mov rdx, rax
sub rdx, 0x7fff
mov edx, 0x7fff
cmovl rdx, rax
mov r10w, dx
mov r9, qword [r9]
mov word [r9 + rcx*2 + 8], r10w
movabs r9, 0xf351397857d49b1b
movabs r10, 0xf351397857d49b1a
xor r9, r10
add rcx, r9
mov qword [r8], rcx
sub rax, rdx
movabs rdx, 0xb134fcfcca50c71d
movabs r8, 0xb134fcfcca50c71d
xor rdx, r8
cmp rax, rdx
mov qword [rbp + 0x2c0], rcx
mov qword [rbp + 0x2c8], rax
jg 0x14017e28b
mov rcx, qword [rbp + 0x308]
movabs rax, 0xe9e2b898e5155834
movabs rdx, 0xe9e2b898e5155834
xor rax, rdx
mov qword [rcx], rax
mov qword [rcx + 8], 0
sub rsp, 0x20
call fcn.1400455bc
add rsp, 0x20
mov qword [rbp + 0x360], 0
mov qword [rbp + 0x368], 0
lea rcx, [rbp + 0x360]
sub rsp, 0x20
call fcn.1400455bc
add rsp, 0x20
jmp 0x14017fb03
lea rcx, [rbp + 0x350]
mov edx, 0x20000
sub rsp, 0x20
call fcn.14004573e
mov rcx, qword [rbp + 0x318]
add rsp, 0x20
mov rax, qword [rbp + 0x350]
mov qword [rbp + 0x240], rax
mov rax, qword [rbp + 0x358]
mov qword [rbp + 0x248], rax
mov edx, 0x8000
sub rsp, 0x20
call fcn.14004573e
mov r10, qword [rbp + 0x318]
mov r9, qword [rbp + 0x330]
mov r8, qword [rbp + 0x2e0]
mov rdx, qword [rbp + 0x328]
mov rax, qword [rbp + 0x2f0]
mov rcx, qword [rbp + 0x2f8]
add rsp, 0x20
mov r11, qword [r10]
mov qword [rbp + 0x250], r11
mov r10, qword [r10 + 8]
mov qword [rbp + 0x258], r10
add r9, rcx
mov qword [rbp + 0x260], r9
mov r9, r8
add r9, 0x18
mov qword [rbp + 0x268], r9
add r8, 0x10
mov qword [rbp + 0x270], r8
add rdx, 0x4f0
mov qword [rbp + 0x278], rdx
add rax, 8
mov qword [rbp + 0x280], rax
xor eax, eax
mov rdx, rax
mov qword [rbp + 0x288], rdx
mov qword [rbp + 0x290], rcx
mov qword [rbp + 0x298], rax
mov rax, qword [rbp + 0x260]
mov rcx, qword [rbp + 0x288]
mov rdx, qword [rbp + 0x290]
mov r8, qword [rbp + 0x298]
mov qword [rbp + 0x228], r8
mov qword [rbp + 0x230], rdx
mov qword [rbp + 0x238], rcx
mov rcx, rdx
and rcx, 4
or rdx, 4
add rcx, rdx
cmp rax, rcx
jg 0x14017e95c
mov rcx, qword [rbp + 0x228]
mov rax, qword [rbp + 0x260]
mov rdx, qword [rbp + 0x230]
xor rdx, 0xffffffffffffffff
add rax, rdx
add rax, 1
add rax, rcx
mov qword [rbp + 0x218], rax
movabs rcx, 0x89dfdba44015fcb8
movabs rdx, 0x89dfdba44015fcb8
xor rcx, rdx
cmp rax, rcx
setg al
mov byte [rbp + 0x227], al
test al, 1
jne 0x14017e5a7
mov rax, qword [rbp + 0x278]
mov r8, qword [rbp + 0x218]
mov rcx, qword [rax]
xor edx, edx
sub rdx, r8
sub rcx, rdx
mov qword [rax], rcx
jmp 0x14017faaa
mov rcx, qword [rbp + 0x238]
mov rax, qword [rbp + 0x230]
add rax, rcx
mov qword [rbp + 0x208], rax
xor eax, eax
mov qword [rbp + 0x210], rax
mov rax, qword [rbp + 0x210]
mov rcx, qword [rbp + 0x218]
mov rdx, qword [rbp + 0x328]
mov r8, qword [rbp + 0x300]
mov r9, qword [rbp + 0x208]
movabs r10, 0x7ed721fa0bdcf9c5
add r9, r10
add r9, rax
movabs r10, 0x7ed721fa0bdcf9c5
sub r9, r10
movzx r8d, byte [r8 + r9]
mov r9d, dword [rdx + r8*4]
mov r10d, 0x530e5010
xor r10d, 0x530e5011
add r9d, r10d
mov dword [rdx + r8*4], r9d
movabs rdx, 0xf553a0152f075391
movabs r8, 0xf553a0152f075390
xor rdx, r8
add rax, rdx
cmp rax, rcx
mov qword [rbp + 0x210], rax
jl 0x14017e5c8
mov al, byte [rbp + 0x227]
mov rcx, qword [rbp + 0x278]
mov rdx, qword [rbp + 0x218]
add rdx, qword [rcx]
mov qword [rcx], rdx
test al, 1
jne 0x14017e676
jmp 0x14017faaa
mov rax, qword [rbp + 0x218]
mov rcx, qword [rbp + 0x2e8]
mov rcx, qword [rcx]
mov qword [rbp + 0x1f8], rcx
mov qword [rbp + 0x200], rax
mov rax, qword [rbp + 0x1f8]
mov rcx, qword [rbp + 0x200]
mov qword [rbp + 0x1e8], rcx
mov qword [rbp + 0x1f0], rax
mov eax, dword [0x14027c760]
mov ecx, dword [0x14027c764]
xor ecx, 0xc85c21f3
xor edx, edx
div ecx
mov ecx, 0xf4f671e1
xor edx, edx
div ecx
mov ecx, eax
xor ecx, 0xef18183c
mov edx, 0xbb39f405
xor edx, 0x44c60bfa
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
and eax, edx
mov edx, 0xffffffff
xor edx, 0x3f2aa2a
mov r8d, 0xae8b73b6
xor r8d, 0xad79d99c
mov r9d, 0x9c71347e
xor r9d, 0x638ecb81
xor r8d, r9d
and edx, r8d
xor eax, 0xffffffff
mov r8d, 0xdffadd89
xor r8d, 0x20052276
xor edx, r8d
and eax, edx
or ecx, 0x3f2aa2a
xor ecx, 0xffffffff
or eax, ecx
xor eax, 0xffffffff
mov ecx, 0xab2051bb
xor ecx, 0xbd424442
cmp eax, ecx
jbe 0x14017fb15
mov rdx, qword [rbp + 0x1f0]
mov rcx, qword [rbp + 0x2f0]
mov r8d, dword [0x14027c768]
mov eax, 0x40ceda71
xor eax, 0xba252ea2
xor r8d, eax
mov eax, dword [0x14027c76c]
xor eax, 0xe34c8b78
xor eax, 0xffffffff
add r8d, eax
mov eax, 0x6519403
xor eax, 0x6519402
add r8d, eax
mov eax, r8d
xor eax, 0xffffffff
mov r9d, r8d
xor r9d, 0xffffffff
or eax, r9d
xor eax, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x7949f7a8
or eax, r9d
mov r9d, 0xdb2cc23
xor r9d, 0x74fb3b8b
mov r10d, 0x62444241
xor r10d, 0x9dbbbdbe
xor r9d, r10d
mov r10d, 0xffffffff
xor r10d, 0x7949f7a8
or r9d, r10d
xor r8d, 0xffffffff
xor r9d, 0xffffffff
or r8d, r9d
xor eax, 0xffffffff
xor r8d, 0xffffffff
or eax, r8d
or eax, 0x512ea117
mov r8d, eax
and r8d, 0xb3871223
mov r9d, 0x34c416d4
xor r9d, 0xcb3be92b
xor r8d, r9d
add eax, 0xb3871223
mov r9d, 0x4f60803
xor r9d, 0x4f60802
add eax, r9d
add eax, r8d
mov rcx, qword [rcx]
mov qword [rbp + 0x1d8], rcx
cmp rcx, rdx
setg cl
mov byte [rbp + 0x1e7], cl
cmp eax, 0xc81153ab
jb 0x14017e74f
mov rax, qword [rbp + 0x1f0]
mov cl, byte [rbp + 0x1e7]
test cl, 1
mov qword [rbp + 0x1d0], rax
jne 0x14017e8ae
jmp 0x14017e86e
mov rcx, qword [rbp + 0x2f0]
mov r8, qword [rbp + 0x1d8]
mov rax, r8
shl rax, 1
mov edx, 2
cmp r8, 0
cmovg rdx, rax
sub rsp, 0x20
call fcn.140044c70
mov rax, qword [rbp + 0x2e8]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp + 0x1d0], rax
mov rax, qword [rbp + 0x1e8]
mov r8, qword [rbp + 0x2e8]
mov r9, qword [rbp + 0x280]
mov rcx, qword [rbp + 0x1d0]
mov rdx, rax
sub rdx, 0x7fff
mov edx, 0x7fff
cmovl rdx, rax
mov r10w, dx
mov r9, qword [r9]
mov word [r9 + rcx*2 + 8], r10w
movabs r10, 0x8e9afed66df706b1
movabs r9, 0x8e9afed66df706b0
xor r10, r9
mov r9, rcx
and r9, r10
shl r9, 1
xor rcx, 1
add rcx, r9
mov qword [r8], rcx
movabs r8, 0xc5a6fee3ddab01db
movabs r9, 0x60cab29c00fd186c
xor r8, r9
add rax, r8
sub rax, rdx
movabs rdx, 0xa56c4c7fdd5619b7
sub rax, rdx
cmp rax, 0
mov qword [rbp + 0x1f8], rcx
mov qword [rbp + 0x200], rax
jg 0x14017e695
jmp 0x14017faaa
mov rax, qword [rbp + 0x338]
mov rcx, qword [rbp + 0x230]
mov r8, qword [rbp + 0x2f8]
mov rdx, rcx
xor rdx, r8
xor r8, 0xffffffffffffffff
and rcx, r8
shl rcx, 1
sub rcx, rdx
mov qword [rbp + 0x1c0], rcx
mov dx, cx
mov cx, dx
xor cx, 0xffff
xor dx, 0xffff
and cx, dx
mov dx, 0xf384
xor dx, 0x8c7b
mov r8w, 0x2073
xor r8w, 0x5f8c
or dx, r8w
xor dx, 0xffff
mov r8w, 0x2fec
xor r8w, 0xd013
xor cx, r8w
xor dx, 0xffff
and cx, dx
mov word [rbp + 0x1ce], cx
mov al, byte [rax]
mov cl, 0xdc
xor cl, 0xdc
cmp al, cl
jne 0x14017faaa
mov rax, qword [rbp + 0x230]
mov rcx, qword [rbp + 0x268]
mov r9, qword [rbp + 0x260]
mov rdx, qword [rbp + 0x258]
mov r10, qword [rbp + 0x248]
mov si, word [rbp + 0x1ce]
mov r8, qword [rbp + 0x1c0]
mov r11, qword [rbp + 0x300]
mov r11d, dword [r11 + rax]
mov edi, r11d
xor edi, 0xffffffff
mov ebx, 0x78617342
xor ebx, 0x6654d4ff
and ebx, edi
mov r14d, 0x7f0a5500
xor r14d, 0x613ff2bd
mov edi, 0x1aeddf9c
xor edi, 0xe5122063
xor r14d, edi
mov edi, r11d
and edi, r14d
imul edi, ebx
mov r14d, 0xf4ce3f75
xor r14d, 0xeafb98c8
mov ebx, r11d
and ebx, r14d
or r11d, 0x1e35a7bd
imul r11d, ebx
add r11d, edi
shr r11d, 0xf
mov r11d, r11d
mov di, word [r10 + r11*2 + 8]
movabs rbx, 0xfa728eac8e0660a1
movabs r14, 0xfa728eac8e061f5e
xor rbx, r14
and r8, rbx
mov word [rdx + r8*2 + 8], di
mov word [r10 + r11*2 + 8], si
mov dx, word [rdx + r8*2 + 8]
movabs r10, 0x54b979bf80744d34
movabs r8, 0x54b979bf80744c36
xor r10, r8
mov r8, rax
add r8, r10
mov r10, r9
sub r10, r8
cmovl r8, r9
mov qword [rbp + 0x188], r8
mov rcx, qword [rcx]
add r8, 0xfffffffffffffff8
mov qword [rbp + 0x190], r8
cmp rax, r8
setg al
mov byte [rbp + 0x19d], al
xor eax, eax
mov word [rbp + 0x19e], dx
mov qword [rbp + 0x1a0], rcx
mov rcx, rax
mov qword [rbp + 0x1a8], rcx
mov rcx, rax
mov qword [rbp + 0x1b0], rcx
mov qword [rbp + 0x1b8], rax
mov r8w, word [rbp + 0x19e]
mov rdx, qword [rbp + 0x1a0]
mov r9, qword [rbp + 0x1a8]
mov rax, qword [rbp + 0x1b0]
mov rcx, qword [rbp + 0x1b8]
mov qword [rbp + 0x150], rcx
mov qword [rbp + 0x158], rax
mov qword [rbp + 0x160], r9
mov qword [rbp + 0x168], rdx
mov word [rbp + 0x176], r8w
test rdx, rdx
setg dl
test r8w, r8w
setne r8b
and dl, r8b
test dl, 1
mov qword [rbp + 0x178], rcx
mov qword [rbp + 0x180], rax
jne 0x14017eb9a
jmp 0x14017f1ec
mov rax, qword [rbp + 0x158]
mov rcx, qword [rbp + 0x150]
mov r8, qword [rbp + 0x160]
mov rdx, qword [rbp + 0x168]
mov si, word [rbp + 0x176]
mov r11w, word [rbp + 0x1ce]
mov r9w, r11w
sub r9w, si
mov r10w, r9w
mov r9d, r10d
xor r9d, 0xffff8000
sub r11w, si
cmovb r10d, r9d
dec rdx
mov qword [rbp + 0x140], rdx
mov dx, r10w
mov r9d, r10d
movzx r9d, r9w
mov qword [rbp + 0x148], r9
test dx, dx
sete dl
sub r8, r9
seta r8b
or dl, r8b
test dl, 1
mov qword [rbp + 0x178], rcx
mov qword [rbp + 0x180], rax
jne 0x14017f1ec
mov rax, qword [rbp + 0x230]
mov rdx, qword [rbp + 0x148]
mov rcx, rax
xor rcx, rdx
xor rdx, 0xffffffffffffffff
and rax, rdx
shl rax, 1
sub rax, rcx
mov qword [rbp + 0x120], rax
mov rax, qword [0x14028d330]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000efc9
mov dl, byte [rbp + 0x19d]
mov rcx, qword [rbp + 0x230]
add rsp, 0x20
mov qword [rbp + 0x128], rax
xor eax, eax
test dl, 1
mov qword [rbp + 0x130], rcx
mov qword [rbp + 0x138], rax
jne 0x14017eefe
mov rax, qword [rbp + 0x230]
mov rcx, qword [rbp + 0x128]
cmp byte [rcx + 0x60], 0
sete cl
mov byte [rbp + 0x10f], cl
xor ecx, ecx
mov qword [rbp + 0x110], rcx
mov qword [rbp + 0x118], rax
mov cl, byte [rbp + 0x10f]
mov rax, qword [rbp + 0x110]
mov rdx, qword [rbp + 0x118]
mov qword [rbp + 0xf0], rdx
mov qword [rbp + 0xf8], rax
xor eax, eax
test cl, 1
mov qword [rbp + 0x100], rax
jne 0x14017ecf6
jmp 0x14017f0b1
mov rax, qword [rbp + 0x300]
mov r8, qword [rbp + 0x120]
mov rcx, qword [rbp + 0xf8]
mov rdx, qword [rbp + 0xf0]
mov rdx, qword [rax + rdx]
add rcx, r8
mov rax, qword [rax + rcx]
mov rcx, rax
and rcx, rdx
shl rcx, 1
add rax, rdx
sub rax, rcx
mov qword [rbp + 0xe8], rax
cmp rax, 0
je 0x14017ed7a
mov rax, qword [rbp + 0xe8]
tzcnt rax, rax
movabs rcx, 0x598f3fb02d10537e
movabs rdx, 0x598f3fb02d10537d
xor rcx, rdx
shr rax, cl
mov rcx, qword [rbp + 0xf8]
or rax, rcx
mov qword [rbp + 0x100], rax
jmp 0x14017f0b1
mov eax, dword [0x14027c770]
mov ecx, dword [0x14027c774]
mov edx, 0x8b28b455
xor edx, 0x74d74baa
xor ecx, edx
add eax, ecx
add eax, 1
mov ecx, 0x22fb056a
xor ecx, 0x48c788ab
xor eax, ecx
add eax, 0x8e32411c
mov ecx, 0xea663408
xor ecx, 0x48efe02
mov edx, 0x394df22a
xor edx, 0xc6b20dd5
xor ecx, edx
add eax, ecx
add eax, 1
mov ecx, 0xa4031761
xor ecx, 0x95ba6bf1
cmp eax, ecx
je 0x14017fb1e
mov r8, qword [rbp + 0x190]
mov r9, qword [rbp + 0xf8]
mov eax, dword [0x14027c778]
mov ecx, dword [0x14027c77c]
mov edx, 0xa4a67768
xor edx, 0xf1c9d786
xor ecx, edx
sub eax, ecx
or eax, 0x485ed638
mov ecx, 0x644e07a6
xor ecx, 0xd5e59c5d
xor edx, edx
div ecx
mov rdx, qword [rbp + 0xf0]
mov ecx, eax
mov r10d, 0xa95e053
xor r10d, 0xc1ee79e6
mov eax, 0xe5af6a4f
xor eax, 0x1a5095b0
xor r10d, eax
mov eax, ecx
xor eax, r10d
and eax, ecx
mov ecx, 0xfd51ffba
xor ecx, 0x7783598c
mov r10, 0xffffffffffffffff
xor r10, 8
xor r11d, r11d
sub r11, 1
sub r10, r11
sub rdx, r10
mov qword [rbp + 0xd0], rdx
movabs r10, 0x64ff3b1294530c13
sub r9, r10
movabs r10, 0x30186ececd500106
movabs r11, 0x30186ececd50010e
xor r10, r11
add r9, r10
movabs r10, 0x64ff3b1294530c13
add r9, r10
mov qword [rbp + 0xd8], r9
cmp rdx, r8
setg dl
mov byte [rbp + 0xe7], dl
cmp eax, ecx
ja 0x14017edda
mov rax, qword [rbp + 0xd8]
mov rcx, qword [rbp + 0xd0]
mov dl, byte [rbp + 0xe7]
test dl, 1
mov rdx, rax
mov qword [rbp + 0x110], rdx
mov rdx, rcx
mov qword [rbp + 0x118], rdx
mov qword [rbp + 0x130], rcx
mov qword [rbp + 0x138], rax
jne 0x14017eefe
jmp 0x14017ecbd
mov rcx, qword [rbp + 0x188]
mov rdx, qword [rbp + 0x130]
mov rax, qword [rbp + 0x138]
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xc8], rdx
cmp rcx, rdx
mov qword [rbp + 0x100], rax
jle 0x14017f0b1
mov rax, qword [rbp + 0xc8]
mov rcx, qword [rbp + 0xc0]
mov rdx, qword [rbp + 0x188]
sub rdx, rax
add rdx, rcx
mov qword [rbp + 0xa8], rdx
mov qword [rbp + 0xb0], rcx
mov qword [rbp + 0xb8], rax
mov rax, qword [rbp + 0xb0]
mov rcx, qword [rbp + 0xb8]
mov qword [rbp + 0x98], rcx
mov qword [rbp + 0xa0], rax
mov eax, dword [0x14027c780]
and eax, dword [0x14027c784]
imul ecx, eax, 0xd7c85103
mov edx, 0xffffffff
xor edx, 0x570e4874
mov eax, ecx
xor eax, edx
and eax, ecx
sub eax, 0xbe7c57e
cmp eax, 0x55043759
ja 0x14017fb27
mov r8, qword [rbp + 0x300]
mov r10, qword [rbp + 0x120]
mov r9, qword [rbp + 0xa0]
mov eax, dword [0x14027c788]
xor edx, edx
div dword [0x14027c78c]
mov rdx, qword [rbp + 0x98]
mov ecx, eax
or ecx, 0x9519d86b
mov eax, 0xcb46ea27
xor eax, 0x8bd318be
and ecx, eax
mov eax, ecx
and eax, 0xa3cdb518
xor ecx, 0xa3cdb518
or eax, ecx
mov ecx, 0xe2bc71c6
xor ecx, 0xda89441a
mov dl, byte [r8 + rdx]
movabs r11, 0xbaa4d0ff0148abfd
add r9, r11
add r9, r10
movabs r10, 0xbaa4d0ff0148abfd
sub r9, r10
cmp dl, byte [r8 + r9]
sete dl
mov byte [rbp + 0x97], dl
cmp eax, ecx
jb 0x14017efb0
mov rax, qword [rbp + 0xa0]
mov cl, byte [rbp + 0x97]
test cl, 1
mov qword [rbp + 0x100], rax
jne 0x14017f060
jmp 0x14017f0b1
mov rax, qword [rbp + 0xa8]
mov rdx, qword [rbp + 0xa0]
mov rcx, qword [rbp + 0x98]
add rcx, 1
movabs r8, 0xa194424ddb9fe5af
movabs r9, 0xa194424ddb9fe5ae
xor r8, r9
add rdx, r8
cmp rdx, rax
mov qword [rbp + 0xb0], rdx
mov qword [rbp + 0xb8], rcx
mov qword [rbp + 0x100], rax
jne 0x14017ef61
mov rax, qword [rbp + 0x338]
mov rcx, qword [rbp + 0x100]
mov qword [rbp + 0x88], rcx
mov al, byte [rax]
mov cl, 0xa8
xor cl, 0xa8
cmp al, cl
jne 0x14017faaa
mov rax, qword [rbp + 0x150]
mov rcx, qword [rbp + 0x158]
mov rdx, qword [rbp + 0x140]
mov r8, qword [rbp + 0x88]
cmp rax, r8
mov qword [rbp + 0x70], rdx
mov qword [rbp + 0x78], rcx
mov qword [rbp + 0x80], rax
jge 0x14017f145
mov rax, qword [rbp + 0x88]
mov rcx, qword [rbp + 0x148]
mov r8, qword [rbp + 0x140]
mov rdx, qword [rbp + 0x2e0]
mov r9, qword [rdx]
mov rdx, r8
sar rdx, 2
cmp r9, rax
cmovg rdx, r8
mov qword [rbp + 0x70], rdx
mov qword [rbp + 0x78], rcx
mov qword [rbp + 0x80], rax
mov rdx, qword [rbp + 0x270]
mov r8, qword [rbp + 0x70]
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp + 0x80]
mov qword [rbp + 0x58], rcx
mov qword [rbp + 0x60], rax
mov qword [rbp + 0x68], r8
cmp qword [rdx], rcx
mov qword [rbp + 0x178], rcx
mov qword [rbp + 0x180], rax
jle 0x14017f1ec
mov rax, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x58]
mov rdx, qword [rbp + 0x148]
mov r8, qword [rbp + 0x68]
mov r10w, word [rbp + 0x176]
mov r9, qword [rbp + 0x258]
movzx r11d, r10w
mov r9w, word [r9 + r11*2 + 8]
cmp r10w, r9w
mov word [rbp + 0x19e], r9w
mov qword [rbp + 0x1a0], r8
mov qword [rbp + 0x1a8], rdx
mov rdx, rax
mov qword [rbp + 0x1b0], rdx
mov rdx, rcx
mov qword [rbp + 0x1b8], rdx
mov qword [rbp + 0x178], rcx
mov qword [rbp + 0x180], rax
jne 0x14017eb25
mov rax, qword [rbp + 0x178]
mov rcx, qword [rbp + 0x180]
mov qword [rbp + 0x48], rcx
mov qword [rbp + 0x50], rax
cmp rax, 4
jle 0x14017f8fe
mov rax, qword [rbp + 0x228]
cmp rax, 0
mov qword [rbp + 0x40], rax
jle 0x14017f5b0
mov eax, dword [0x14027c790]
xor eax, 0x8e52b308
xor eax, dword [0x14027c794]
and eax, 0xae8a1ea6
mov ecx, 0x9010d0a0
xor edx, edx
div ecx
mov ecx, 0x47b47bcc
xor edx, edx
div ecx
cmp eax, 0xbbde9872
ja 0x14017fb30
mov rcx, qword [rbp + 0x230]
mov eax, dword [0x14027c798]
xor edx, edx
div dword [0x14027c79c]
mov rdx, qword [rbp + 0x238]
mov r8d, 0x6df1c9d3
xor r8d, 0xfab3a053
add eax, r8d
and eax, 0xaa876244
mov r8d, 0x9521a02
xor r8d, 0x6cc755aa
sub eax, r8d
movabs r8, 0x5d37ba233efae574
add rcx, r8
add rcx, rdx
movabs rdx, 0xb8e7f472bd6b110a
movabs r8, 0xe5d04e518391f47e
xor rdx, r8
sub rcx, rdx
mov qword [rbp + 0x38], rcx
cmp eax, 0xf2a9f2c
jbe 0x14017fb30
xor eax, eax
mov qword [rbp + 0x30], rax
jmp 0x14017f2d9
mov rax, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x228]
mov rdx, qword [rbp + 0x328]
mov r8, qword [rbp + 0x300]
mov r9, qword [rbp + 0x38]
add r9, rax
movzx r8d, byte [r8 + r9]
mov r9d, dword [rdx + r8*4]
add r9d, 1
mov dword [rdx + r8*4], r9d
movabs r8, 0xcfe47d7dc54a07f1
movabs rdx, 0xcfe47d7dc54a07f0
xor r8, rdx
mov rdx, rax
and rdx, r8
shl rdx, 1
movabs r8, 0xc327adf3d9a399c6
movabs r9, 0xc327adf3d9a399c7
xor r8, r9
xor rax, r8
add rax, rdx
cmp rax, rcx
mov qword [rbp + 0x30], rax
jne 0x14017f2d9
mov rax, qword [rbp + 0x228]
mov rcx, qword [rbp + 0x2e8]
mov rdx, qword [rbp + 0x278]
mov r8, qword [rdx]
mov r9, r8
and r9, rax
shl r9, 1
xor r8, rax
add r8, r9
mov qword [rdx], r8
mov rcx, qword [rcx]
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x28], rax
mov rax, qword [rbp + 0x20]
mov rcx, qword [rbp + 0x28]
mov qword [rbp + 0x10], rcx
mov qword [rbp + 0x18], rax
mov eax, dword [0x14027c7a0]
sub eax, dword [0x14027c7a4]
mov ecx, 0xffffffff
xor ecx, 0x3194f194
xor edx, edx
sub edx, 1
sub ecx, edx
sub eax, ecx
xor eax, 0x91e8c4f3
mov ecx, 0xc64aa17b
xor edx, edx
div ecx
mov ecx, 0x383ba467
xor ecx, 0xb1b92b10
cmp eax, ecx
jae 0x14017fb39
mov r8, qword [rbp + 0x18]
mov rdx, qword [rbp + 0x2f0]
mov ecx, dword [0x14027c7a8]
xor ecx, 0xc45f815
mov r10d, dword [0x14027c7ac]
mov r9d, 0xffb1b658
xor r9d, 0x4e49a7
mov eax, ecx
xor eax, r9d
mov r9d, r10d
and r9d, eax
mov r11d, r10d
xor r11d, 0xffffffff
mov eax, ecx
and eax, r11d
imul eax, r9d
mov r9d, ecx
and r9d, r10d
or ecx, r10d
imul ecx, r9d
add ecx, eax
sub ecx, 0x3668c274
mov eax, ecx
and eax, eax
xor eax, 0xffffffff
mov r9d, 0xa726fdf
xor r9d, 0x81f287c3
and eax, r9d
xor eax, 0xffffffff
mov r9d, 0xffffffff
xor r9d, 0x8b80e81c
mov r10d, 0xf96a3c6d
xor r10d, 0x72ead471
mov r11d, 0x7f8674b9
xor r11d, 0x80798b46
xor r10d, r11d
or r9d, r10d
xor ecx, 0xffffffff
xor r9d, 0xffffffff
or ecx, r9d
xor eax, 0xffffffff
mov r9d, 0xca67dea5
xor r9d, 0x3598215a
xor ecx, r9d
or eax, ecx
mov ecx, 0xf4dc52cd
xor ecx, 0xabcf165b
or eax, ecx
mov ecx, 0x69ece9e2
xor ecx, 0x33532d7c
mov rdx, qword [rdx]
mov qword [rbp], rdx
cmp rdx, r8
setg dl
mov byte [rbp + 0xf], dl
cmp eax, ecx
jb 0x14017fb39
mov rax, qword [rbp + 0x18]
mov cl, byte [rbp + 0xf]
test cl, 1
mov qword [rbp - 8], rax
jne 0x14017f532
jmp 0x14017f4e6
mov rcx, qword [rbp + 0x2f0]
mov r8, qword [rbp]
mov rax, r8
shl rax, 1
movabs rdx, 0xf1aca609301c3141
movabs r9, 0xf1aca609301c3143
xor rdx, r9
cmp r8, 0
cmovg rdx, rax
sub rsp, 0x20
call fcn.140044c70
mov rax, qword [rbp + 0x2e8]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 8], rax
mov rcx, qword [rbp + 0x10]
mov r8, qword [rbp + 0x2e8]
mov r9, qword [rbp + 0x280]
mov rdx, qword [rbp - 8]
mov rax, rcx
sub rax, 0x7fff
mov eax, 0x7fff
cmovl rax, rcx
mov r10w, ax
mov r9, qword [r9]
mov word [r9 + rdx*2 + 8], r10w
add rdx, 1
mov qword [r8], rdx
movabs r8, 0x3e853994c37a1a6
sub rcx, r8
sub rcx, rax
movabs rax, 0x2ca4c07103d35411
movabs r8, 0x2f4c93e84fe4f5b7
xor rax, r8
add rcx, rax
xor eax, eax
cmp rcx, 0
mov qword [rbp + 0x20], rdx
mov qword [rbp + 0x28], rcx
mov qword [rbp + 0x40], rax
jg 0x14017f38b
mov rcx, qword [rbp + 0x2e8]
mov rax, qword [rbp + 0x2f0]
mov rdx, qword [rbp + 0x40]
mov qword [rbp - 0x20], rdx
mov rax, qword [rax]
mov qword [rbp - 0x18], rax
mov rcx, qword [rcx]
xor edx, edx
sub rdx, rcx
xor ecx, ecx
sub rcx, 3
add rdx, rcx
movabs rcx, 0x7c07df9a7c45cecc
movabs r8, 0x7c07df9a7c45cecc
xor rcx, r8
sub rcx, rdx
mov qword [rbp - 0x10], rcx
cmp rax, rcx
jge 0x14017f62f
mov rcx, qword [rbp + 0x2f0]
mov rdx, qword [rbp - 0x10]
mov rax, qword [rbp - 0x18]
shl rax, 1
mov r8, rax
sub r8, rdx
cmovg rdx, rax
sub rsp, 0x20
call fcn.140044c70
add rsp, 0x20
mov rax, qword [rbp + 0x48]
mov rdx, qword [rbp + 0x50]
mov rcx, qword [0x14028d270]
mov cl, byte [rcx + rdx - 3]
mov byte [rbp - 0x25], cl
mov word [rbp - 0x24], ax
mov cx, ax
and cx, 0xffff
or ax, 0xffff
add cx, ax
sub rsp, 0x20
call fcn.14017d670
add rsp, 0x20
mov cx, ax
mov rax, qword [rbp + 0x338]
mov word [rbp - 0x22], cx
cmp byte [rax], 0
jne 0x14017faaa
mov rax, qword [rbp - 0x20]
mov r8, qword [rbp + 0x50]
mov rdx, qword [rbp + 0x2e8]
mov r11w, word [rbp - 0x24]
mov r9, qword [rbp + 0x280]
mov r12w, word [rbp - 0x22]
mov cl, byte [rbp - 0x25]
mov r10, qword [rbp + 0x328]
movzx esi, cl
mov ebx, dword [r10 + rsi*4 + 0x404]
mov r14d, 0xdf2ab71
xor r14d, 0xdf2ab70
mov edi, ebx
and edi, r14d
or ebx, 1
add edi, ebx
mov dword [r10 + rsi*4 + 0x404], edi
movzx esi, r12w
mov edi, dword [r10 + rsi*4 + 0x478]
mov ebx, 0xea6ceb6c
xor ebx, 0x5c15c178
add edi, ebx
add edi, 1
sub edi, 0xb6792a14
mov dword [r10 + rsi*4 + 0x478], edi
movzx ecx, cl
mov r15w, cx
mov cx, 0x3445
xor cx, 0x344d
shl r15w, cl
mov rcx, qword [rbp + 0x230]
mov si, r12w
xor si, 0xffff
mov r10w, 0x9b8d
xor r10w, 0x6472
mov bx, r15w
xor bx, r10w
mov di, 0xffff
xor di, 0xb498
mov r10w, si
and r10w, 0xb498
and r12w, di
mov r14w, bx
and r14w, 0xb498
and r15w, di
or r10w, r12w
or r14w, r15w
xor r10w, r14w
or si, bx
xor si, 0xffff
or di, 0xb498
and si, di
or r10w, si
mov si, r10w
xor si, 0xffff
mov di, 0xffff
xor di, 0x8000
and si, di
xor r10w, 0xffff
mov di, 0xffff
xor di, 0x8000
and r10w, di
xor si, 0xffff
xor r10w, 0xffff
and si, r10w
mov r10, qword [r9]
mov r9, qword [rdx]
mov word [r10 + r9*2 + 8], si
mov word [r10 + r9*2 + 0xa], r11w
mov r11w, r8w
mov word [r10 + r9*2 + 0xc], r11w
xor r10d, r10d
sub r10, r9
xor r9d, r9d
sub r9, 3
add r10, r9
xor r9d, r9d
sub r9, r10
mov qword [rdx], r9
mov edx, 1
cmp r8, 1
mov qword [rbp - 0x48], rdx
mov rdx, rcx
mov qword [rbp - 0x40], rdx
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x30], rax
jle 0x14017f918
mov rcx, qword [rbp + 0x260]
mov rdx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x40]
mov qword [rbp - 0x58], rdx
movabs r8, 0xb06d422343ecf769
movabs rdx, 0xb06d422343ecf768
xor r8, rdx
mov rdx, rax
add rdx, r8
mov qword [rbp - 0x50], rdx
movabs rdx, 0xee140d56a6256194
movabs r8, 0xee140d56a6256191
xor rdx, r8
add rax, rdx
cmp rax, rcx
jge 0x14017f8c9
mov rax, qword [rbp + 0x248]
mov r8, qword [rbp + 0x258]
mov r9, qword [rbp - 0x50]
mov rcx, qword [rbp + 0x300]
mov dx, r9w
mov r10w, 0xdfec
xor r10w, 0xa013
and dx, r10w
imul ecx, dword [rcx + r9], 0x1e35a7bd
shr ecx, 0xf
mov ecx, ecx
mov r10w, word [rax + rcx*2 + 8]
mov r11, r9
xor r11, 0x7fff
xor r11, 0xffffffffffffffff
movabs rsi, 0x1a545d645f8494dc
movabs rdi, 0x1a545d645f84eb23
xor rsi, rdi
or r9, rsi
and r9, r11
mov word [r8 + r9*2 + 8], r10w
mov word [rax + rcx*2 + 8], dx
mov rax, qword [rbp - 0x20]
mov rcx, qword [rbp - 0x50]
mov r8, qword [rbp + 0x50]
mov rdx, qword [rbp - 0x58]
add rdx, 1
cmp rdx, r8
mov qword [rbp - 0x48], rdx
mov rdx, rcx
mov qword [rbp - 0x40], rdx
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x30], rax
je 0x14017f918
jmp 0x14017f7fd
mov rcx, qword [rbp + 0x230]
mov rax, qword [rbp + 0x228]
add rax, 1
mov qword [rbp - 0x38], rcx
mov qword [rbp - 0x30], rax
mov rax, qword [rbp - 0x38]
mov rcx, qword [rbp - 0x30]
mov qword [rbp - 0x68], rcx
mov qword [rbp - 0x60], rax
mov ecx, dword [0x14027c7b0]
mov edx, dword [0x14027c7b4]
mov eax, edx
and eax, ecx
xor eax, 0xffffffff
add ecx, edx
add ecx, 1
add ecx, eax
mov edx, 0x1318665b
xor edx, 0xece799a4
mov eax, ecx
xor eax, edx
mov edx, ecx
xor edx, 0xffffffff
and eax, edx
mov edx, 0xffffffff
xor edx, 0x70716dfd
mov r8d, 0xffffffff
xor r8d, 0x70716dfd
and edx, r8d
xor eax, 0xffffffff
mov r8d, 0xae595af8
xor r8d, 0x51a6a507
xor edx, r8d
and eax, edx
xor ecx, 0xffffffff
mov edx, 0xd18fe8c5
xor edx, 0xa1fe8538
mov r8d, 0xa457b2
xor r8d, 0xff5ba84d
xor edx, r8d
and ecx, edx
or eax, ecx
xor eax, 0xffffffff
and eax, 0xb6504840
xor eax, 0xe3b178c3
mov ecx, 0x76644ef9
xor ecx, 0x9e4f8e94
cmp eax, ecx
jae 0x14017fb42
mov rcx, qword [rbp + 0x260]
mov r9, qword [rbp - 0x68]
mov eax, dword [0x14027c7b8]
mov r10d, dword [0x14027c7bc]
mov r11d, r10d
xor r11d, 0xffffffff
mov r8d, eax
and r8d, r11d
mov edx, eax
or edx, r11d
mov r11d, 0xcc13e0f7
xor r11d, 0x33ec1f08
xor edx, r11d
imul edx, r8d
mov r8d, eax
and r8d, r10d
or eax, r10d
imul eax, r8d
add eax, edx
mov r8d, 0x10654144
xor edx, edx
div r8d
mov rdx, qword [rbp - 0x60]
mov r8d, 0x12c169f7
xor r8d, 0xd3a11d25
xor eax, r8d
mov r8d, eax
and r8d, 0x7751cacc
shl r8d, 1
xor eax, 0x7751cacc
add eax, r8d
add rdx, 1
mov qword [rbp - 0x80], rdx
xor r8d, r8d
sub r8, r9
add r8, 0
mov qword [rbp - 0x78], r8
cmp rcx, rdx
setg cl
mov byte [rbp - 0x69], cl
cmp eax, 0x3a10adba
je 0x14017fb42
mov rax, qword [rbp - 0x68]
mov rcx, qword [rbp - 0x80]
mov rdx, qword [rbp - 0x78]
mov r8b, byte [rbp - 0x69]
test r8b, 1
mov qword [rbp + 0x288], rdx
mov qword [rbp + 0x290], rcx
mov qword [rbp + 0x298], rax
jne 0x14017e4e9
jmp 0x14017faaa
mov rcx, qword [rbp + 0x320]
mov rax, qword [rbp + 0x258]
mov rdx, qword [rbp + 0x250]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.1400455bc
mov rcx, qword [rbp + 0x240]
mov rax, qword [rbp + 0x248]
add rsp, 0x20
mov qword [rbp + 0x340], rcx
mov qword [rbp + 0x348], rax
lea rcx, [rbp + 0x340]
sub rsp, 0x20
call fcn.1400455bc
add rsp, 0x20
lea rsp, [rbp + 0x370]
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
ja 0x14017faf6
invalid
scasb al, byte [rdi]
clc
cmp byte [rcx + rbp*8 - 0x4d], al
invalid
fdiv dword [rax - 0x7f162523]
hlt
movsd dword [rdi], dword [rsi]
mov ax, 0xe96a
sbb esi, edi
invalid
invalid
pop rbx
mov cl, 0x6f
sbb eax, 0xfffe7fe9
dec dword [rdi]
invalid