Function at 0x14016f3a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r12
push rsi
push rdi
push rbx
sub rsp, 0x3d0
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x318], r9
mov qword [rbp + 0x2c8], r8
mov qword [rbp + 0x2d0], rdx
mov qword [rbp + 0x2d8], rcx
mov rax, qword [rbp + 0x3c0]
mov qword [rbp + 0x320], rax
mov rax, qword [rbp + 0x3b8]
mov qword [rbp + 0x2e0], rax
mov rax, qword [rbp + 0x3b0]
mov qword [rbp + 0x2e8], rax
mov eax, 0x10
mov qword [rbp + 0x300], rax
call fcn.1402a7dd0
sub rsp, rax
mov rax, qword [rbp + 0x300]
mov rcx, rsp
mov qword [rbp + 0x2f0], rcx
call fcn.1402a7dd0
sub rsp, rax
mov rax, qword [rbp + 0x300]
mov rcx, rsp
mov qword [rbp + 0x2f8], rcx
call fcn.1402a7dd0
sub rsp, rax
mov rax, qword [rbp + 0x300]
mov rcx, rsp
mov qword [rbp + 0x308], rcx
call fcn.1402a7dd0
sub rsp, rax
mov rax, rsp
mov qword [rbp + 0x310], rax
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000eaf8
mov r9, qword [rbp + 0x318]
add rsp, 0x20
mov rcx, rax
mov rax, qword [rbp + 0x320]
add rcx, 0x60
mov qword [rbp + 0x328], rcx
mov dword [r9 + 0x400], 1
cmp rax, 5
jge 0x14016f778
mov rax, qword [rbp + 0x320]
cmp rax, 0
setg cl
mov byte [rbp + 0x2bf], cl
xor eax, eax
test cl, 1
mov qword [rbp + 0x2c0], rax
jne 0x14016f520
mov rax, qword [rbp + 0x318]
mov rdx, qword [rbp + 0x320]
mov rcx, qword [rax + 0x4f0]
movabs r8, 0xb127ce8efb4da4ec
sub rcx, r8
add rcx, rdx
movabs rdx, 0x61ade0f95d435c82
movabs r8, 0xd08a2e77a60ef86e
xor rdx, r8
add rcx, rdx
mov qword [rax + 0x4f0], rcx
jmp 0x14016f726
mov rax, qword [rbp + 0x2c0]
mov rcx, qword [rbp + 0x320]
mov rdx, qword [rbp + 0x318]
mov r8, qword [rbp + 0x2e8]
mov r10, qword [rbp + 0x2e0]
movabs r11, 0x6b49ae982bc56fe
mov r9, rax
sub r9, r11
add r9, r10
movabs r10, 0x8a9dc9c2915f4c00
movabs r11, 0x8c29532b13e31afe
xor r10, r11
add r9, r10
movzx r8d, byte [r8 + r9]
mov r9d, dword [rdx + r8*4]
mov r10d, 0xcd969e84
xor r10d, 0xcd969e85
add r9d, r10d
mov dword [rdx + r8*4], r9d
movabs rdx, 0x3b04776552369aec
movabs r8, 0x3b04776552369aed
xor rdx, r8
add rax, rdx
cmp rax, rcx
mov qword [rbp + 0x2c0], rax
jne 0x14016f520
mov al, byte [rbp + 0x2bf]
mov rcx, qword [rbp + 0x318]
mov r8, qword [rbp + 0x320]
mov rdx, qword [rcx + 0x4f0]
movabs r9, 0x32ea34b7a6fc109b
add rdx, r9
add rdx, r8
movabs r8, 0x32ea34b7a6fc109b
sub rdx, r8
mov qword [rcx + 0x4f0], rdx
test al, 1
jne 0x14016f603
jmp 0x14016f726
mov rax, qword [rbp + 0x320]
mov rcx, qword [rbp + 0x2d0]
mov rdx, qword [rbp + 0x2d8]
add rdx, 8
mov qword [rbp + 0x2a0], rdx
mov rcx, qword [rcx]
mov qword [rbp + 0x2a8], rcx
mov qword [rbp + 0x2b0], rax
mov rcx, qword [rbp + 0x2d8]
mov rax, qword [rbp + 0x2a8]
mov rdx, qword [rbp + 0x2b0]
mov qword [rbp + 0x288], rdx
mov rcx, qword [rcx]
mov qword [rbp + 0x290], rcx
cmp rcx, rax
mov qword [rbp + 0x298], rax
jg 0x14016f6aa
mov rcx, qword [rbp + 0x2d8]
mov r8, qword [rbp + 0x290]
mov rax, r8
shl rax, 1
mov edx, 2
cmp r8, 0
cmovg rdx, rax
sub rsp, 0x20
call fcn.14003fa50
mov rax, qword [rbp + 0x2d0]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp + 0x298], rax
mov rax, qword [rbp + 0x288]
mov r8, qword [rbp + 0x2d0]
mov r9, qword [rbp + 0x2a0]
mov rcx, qword [rbp + 0x298]
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
add rcx, 1
mov qword [r8], rcx
xor rdx, 0xffffffffffffffff
add rax, rdx
add rax, 1
movabs rdx, 0xfcf75db9015e135a
movabs r8, 0xfcf75db9015e135a
xor rdx, r8
cmp rax, rdx
mov qword [rbp + 0x2a8], rcx
mov qword [rbp + 0x2b0], rax
jg 0x14016f634
mov qword [rbp + 0x340], 0
mov qword [rbp + 0x348], 0
lea rcx, [rbp + 0x340]
sub rsp, 0x20
call fcn.14003ff40
mov rcx, qword [rbp + 0x2f0]
add rsp, 0x20
mov qword [rcx], 0
mov qword [rcx + 8], 0
sub rsp, 0x20
call fcn.14003ff40
add rsp, 0x20
jmp 0x140170f82
mov rcx, qword [rbp + 0x2f8]
mov edx, 0x20000
sub rsp, 0x20
call fcn.140040040
mov rax, qword [rbp + 0x2f8]
add rsp, 0x20
mov rcx, qword [rax]
mov qword [rbp + 0x228], rcx
mov rax, qword [rax + 8]
mov qword [rbp + 0x230], rax
lea rcx, [rbp + 0x330]
mov edx, 0x8000
sub rsp, 0x20
call fcn.140040040
mov r9, qword [rbp + 0x320]
mov r8, qword [rbp + 0x2c8]
mov rdx, qword [rbp + 0x318]
mov rax, qword [rbp + 0x2d8]
mov rcx, qword [rbp + 0x2e0]
add rsp, 0x20
mov r10, qword [rbp + 0x330]
mov qword [rbp + 0x238], r10
mov r10, qword [rbp + 0x338]
mov qword [rbp + 0x240], r10
movabs r10, 0xc33dd55177d7e78c
add r9, r10
add r9, rcx
movabs r10, 0xc33dd55177d7e78c
sub r9, r10
mov qword [rbp + 0x248], r9
mov r9, r8
add r9, 0x18
mov qword [rbp + 0x250], r9
add r8, 0x10
mov qword [rbp + 0x258], r8
add rdx, 0x4f0
mov qword [rbp + 0x260], rdx
add rax, 8
mov qword [rbp + 0x268], rax
xor eax, eax
mov rdx, rax
mov qword [rbp + 0x270], rdx
mov qword [rbp + 0x278], rcx
mov qword [rbp + 0x280], rax
mov rax, qword [rbp + 0x248]
mov rdx, qword [rbp + 0x270]
mov rcx, qword [rbp + 0x278]
mov r8, qword [rbp + 0x280]
mov qword [rbp + 0x210], r8
mov qword [rbp + 0x218], rcx
mov qword [rbp + 0x220], rdx
xor edx, edx
sub rdx, 4
sub rcx, rdx
cmp rax, rcx
jg 0x14016fc33
mov rcx, qword [rbp + 0x210]
mov rdx, qword [rbp + 0x218]
mov rax, qword [rbp + 0x248]
movabs r8, 0x2488f78b228b534e
sub rax, r8
sub rax, rdx
movabs rdx, 0x1da0c84120eddcf8
movabs r8, 0x39283fca02668fb6
xor rdx, r8
add rax, rdx
add rax, rcx
mov qword [rbp + 0x200], rax
cmp rax, 0
setg al
mov byte [rbp + 0x20f], al
test al, 1
jne 0x14016f92f
mov rax, qword [rbp + 0x260]
mov rcx, qword [rbp + 0x200]
add rcx, qword [rax]
mov qword [rax], rcx
jmp 0x140170f30
mov rcx, qword [rbp + 0x220]
mov rax, qword [rbp + 0x218]
add rax, rcx
mov qword [rbp + 0x1f0], rax
xor eax, eax
mov qword [rbp + 0x1f8], rax
mov rax, qword [rbp + 0x1f8]
mov rcx, qword [rbp + 0x200]
mov rdx, qword [rbp + 0x318]
mov r8, qword [rbp + 0x2e8]
mov r9, qword [rbp + 0x1f0]
add r9, rax
movzx r8d, byte [r8 + r9]
mov r10d, dword [rdx + r8*4]
mov r9d, r10d
and r9d, 1
mov r11d, 0x2f0013ef
xor r11d, 0x2f0013ee
or r10d, r11d
add r9d, r10d
mov dword [rdx + r8*4], r9d
add rax, 1
cmp rax, rcx
mov qword [rbp + 0x1f8], rax
jl 0x14016f950
mov al, byte [rbp + 0x20f]
mov rcx, qword [rbp + 0x260]
mov rdx, qword [rbp + 0x200]
add rdx, qword [rcx]
mov qword [rcx], rdx
test al, 1
jne 0x14016f9d8
jmp 0x140170f30
mov rax, qword [rbp + 0x200]
mov rcx, qword [rbp + 0x2d0]
mov rcx, qword [rcx]
mov qword [rbp + 0x1e0], rcx
mov qword [rbp + 0x1e8], rax
mov rcx, qword [rbp + 0x2d8]
mov rax, qword [rbp + 0x1e0]
mov rdx, qword [rbp + 0x1e8]
mov qword [rbp + 0x1c8], rdx
mov rcx, qword [rcx]
mov qword [rbp + 0x1d0], rcx
cmp rcx, rax
mov qword [rbp + 0x1d8], rax
jg 0x14016fa6d
mov rcx, qword [rbp + 0x2d8]
mov r8, qword [rbp + 0x1d0]
mov rax, r8
shl rax, 1
mov edx, 2
cmp r8, 0
cmovg rdx, rax
sub rsp, 0x20
call fcn.14003fa50
mov rax, qword [rbp + 0x2d0]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp + 0x1d8], rax
mov rax, qword [rbp + 0x1d8]
mov qword [rbp + 0x1c0], rax
mov eax, dword [0x1402b1710]
mov ecx, dword [0x1402b1714]
mov edx, 0xb5528b3a
xor edx, 0xab137571
xor ecx, edx
or eax, ecx
mov ecx, 0xe009dfd2
xor ecx, 0x67f1de56
imul eax, ecx
mov ecx, eax
or ecx, 0x746dc3e8
mov edx, 0xb59c92bd
xor edx, 0x4a636d42
xor ecx, edx
or eax, 0x746dc3e8
xor eax, 0xffffffff
or ecx, eax
mov eax, 0x72242d10
xor eax, 0x8ddbd2ef
xor ecx, eax
mov edx, ecx
xor edx, 0xffffffff
mov eax, 0xe76e4c4c
xor eax, 0x4e250738
and eax, edx
mov edx, 0xffffffff
xor edx, 0xa94b4b74
and ecx, edx
or eax, ecx
cmp eax, 0x18d1d672
jb 0x140170f94
mov rcx, qword [rbp + 0x1c8]
mov r8, qword [rbp + 0x2d0]
mov r9, qword [rbp + 0x1c0]
mov r10, qword [rbp + 0x268]
mov edx, dword [0x1402b1718]
mov eax, dword [0x1402b171c]
add edx, 0x3d4ed1ab
add edx, eax
mov eax, 0x29c43598
xor eax, 0x148ae433
sub edx, eax
mov esi, 0xffffffff
xor esi, 0xab9132f3
mov r11d, edx
and r11d, esi
mov eax, edx
or eax, esi
xor eax, 0xffffffff
imul eax, r11d
mov esi, 0x88bd1901
xor esi, 0x232c2bf2
mov r11d, edx
and r11d, esi
mov esi, 0xcc03fa94
xor esi, 0x6792c867
or edx, esi
imul edx, r11d
add edx, eax
and edx, 0xbf064134
mov eax, edx
and eax, 0xa4fd4089
mov r11d, 0xeb0a977f
xor r11d, 0x4ff7d7f6
xor edx, r11d
or eax, edx
mov rdx, rcx
sub rdx, 0x7fff
mov edx, 0x7fff
cmovl rdx, rcx
mov r11w, dx
mov r10, qword [r10]
mov word [r10 + r9*2 + 8], r11w
movabs r10, 0xc70e75a5ec873d06
movabs r11, 0xc70e75a5ec873d07
xor r10, r11
add r9, r10
mov qword [rbp + 0x1a8], r9
mov qword [r8], r9
xor rdx, 0xffffffffffffffff
add rcx, rdx
add rcx, 1
mov qword [rbp + 0x1b0], rcx
cmp rcx, 0
setg cl
mov byte [rbp + 0x1bf], cl
cmp eax, 0x30426b0c
jb 0x140170f94
mov rax, qword [rbp + 0x1b0]
mov rcx, qword [rbp + 0x1a8]
mov dl, byte [rbp + 0x1bf]
test dl, 1
mov qword [rbp + 0x1e0], rcx
mov qword [rbp + 0x1e8], rax
jne 0x14016f9f7
jmp 0x140170f30
mov rax, qword [rbp + 0x328]
mov rcx, qword [rbp + 0x218]
mov r8, qword [rbp + 0x2e0]
mov rdx, rcx
xor rdx, r8
xor r8, 0xffffffffffffffff
and rcx, r8
shl rcx, 1
sub rcx, rdx
mov qword [rbp + 0x198], rcx
and cx, 0x7fff
mov word [rbp + 0x1a6], cx
cmp byte [rax], 0
jne 0x140170f30
mov rax, qword [rbp + 0x218]
mov rcx, qword [rbp + 0x250]
mov r9, qword [rbp + 0x248]
mov rdx, qword [rbp + 0x240]
mov r10, qword [rbp + 0x230]
mov si, word [rbp + 0x1a6]
mov r8, qword [rbp + 0x198]
mov r11, qword [rbp + 0x2e8]
mov r11d, dword [r11 + rax]
mov ebx, r11d
xor ebx, 0xffffffff
and ebx, 0x1e35a7bd
mov r14d, 0xffffffff
xor r14d, 0x1e35a7bd
mov edi, r11d
and edi, r14d
imul edi, ebx
mov ebx, r11d
and ebx, 0x1e35a7bd
or r11d, 0x1e35a7bd
imul r11d, ebx
add r11d, edi
shr r11d, 0xf
mov r11d, r11d
mov di, word [r10 + r11*2 + 8]
xor r8, 0xffffffffffffffff
mov rbx, 0xffffffffffffffff
xor rbx, 0x7fff
movabs r14, 0xf4cfeb16884d7e6c
movabs r15, 0x29a32ea10fe45eb8
xor r14, r15
movabs r15, 0x35e03eedee1a44b5
movabs r12, 0xca1fc11211e5bb4a
xor r15, r12
xor r14, r15
or r8, rbx
movabs rbx, 0x92ede821bcb60208
movabs r15, 0x4f812d963b1f22dc
xor rbx, r15
or rbx, r14
xor r8, 0xffffffffffffffff
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, 0x93e9e6c8893760d8
movabs r8, 0xae66a64aba04db3d
xor r10, r8
mov r8, rax
add r8, r10
add r8, 0x102
movabs r10, 0x3d8f40823333bbe5
sub r8, r10
mov r10, r9
sub r10, r8
cmovl r8, r9
mov qword [rbp + 0x160], r8
mov rcx, qword [rcx]
mov r9, 0xffffffffffffffff
xor r9, 0xfffffffffffffff8
xor r10d, r10d
sub r10, 1
sub r9, r10
sub r8, r9
mov qword [rbp + 0x168], r8
cmp rax, r8
setg al
mov byte [rbp + 0x175], al
xor eax, eax
mov word [rbp + 0x176], dx
mov qword [rbp + 0x178], rcx
mov rcx, rax
mov qword [rbp + 0x180], rcx
mov rcx, rax
mov qword [rbp + 0x188], rcx
mov qword [rbp + 0x190], rax
mov r8w, word [rbp + 0x176]
mov rdx, qword [rbp + 0x178]
mov r9, qword [rbp + 0x180]
mov rax, qword [rbp + 0x188]
mov rcx, qword [rbp + 0x190]
mov qword [rbp + 0x128], rcx
mov qword [rbp + 0x130], rax
mov qword [rbp + 0x138], r9
mov qword [rbp + 0x140], rdx
mov word [rbp + 0x14e], r8w
test rdx, rdx
setg dl
test r8w, r8w
setne r8b
and dl, r8b
test dl, 1
mov qword [rbp + 0x150], rcx
mov qword [rbp + 0x158], rax
jne 0x14016fe83
jmp 0x1401706e2
mov rax, qword [rbp + 0x130]
mov rcx, qword [rbp + 0x128]
mov r8, qword [rbp + 0x138]
mov r11w, word [rbp + 0x14e]
mov r9w, word [rbp + 0x1a6]
mov rdx, qword [rbp + 0x140]
dec rdx
mov qword [rbp + 0x118], rdx
mov si, r11w
mov r10w, r9w
mov edx, r10d
xor edx, esi
not esi
and r10d, esi
add r10d, r10d
sub r10d, edx
mov edx, r10d
xor edx, 0xffff8000
sub r9w, r11w
cmovb r10d, edx
mov dx, r10w
mov r9d, r10d
movzx r9d, r9w
mov qword [rbp + 0x120], r9
test dx, dx
sete dl
sub r8, r9
seta r8b
or dl, r8b
test dl, 1
mov qword [rbp + 0x150], rcx
mov qword [rbp + 0x158], rax
jne 0x1401706e2
mov rax, qword [rbp + 0x218]
mov rcx, qword [rbp + 0x120]
sub rax, rcx
mov qword [rbp + 0xf8], rax
mov rax, qword [0x1402c6150]
mov ecx, dword [rax]
sub rsp, 0x20
call fcn.14000eaf8
mov dl, byte [rbp + 0x175]
mov rcx, qword [rbp + 0x218]
add rsp, 0x20
mov qword [rbp + 0x100], rax
xor eax, eax
test dl, 1
mov qword [rbp + 0x108], rcx
mov qword [rbp + 0x110], rax
jne 0x140170149
mov rax, qword [rbp + 0x218]
mov rcx, qword [rbp + 0x100]
cmp byte [rcx + 0x60], 0
sete cl
mov byte [rbp + 0xe7], cl
xor ecx, ecx
mov qword [rbp + 0xe8], rcx
mov qword [rbp + 0xf0], rax
mov cl, byte [rbp + 0xe7]
mov rax, qword [rbp + 0xe8]
mov rdx, qword [rbp + 0xf0]
mov qword [rbp + 0xc8], rdx
mov qword [rbp + 0xd0], rax
xor eax, eax
test cl, 1
mov qword [rbp + 0xd8], rax
jne 0x14016ffda
jmp 0x140170396
mov rax, qword [rbp + 0x2e8]
mov rcx, qword [rbp + 0xd0]
mov r8, qword [rbp + 0xf8]
mov rdx, qword [rbp + 0xc8]
mov rdx, qword [rax + rdx]
movabs r9, 0xf01e20d78744f5b5
movabs r10, 0xfe1df2878bb0a4a
xor r9, r10
xor r8, r9
xor r9d, r9d
sub r9, 1
sub r8, r9
sub rcx, r8
mov r8, qword [rax + rcx]
movabs rcx, 0x6d43ae498d9a4a02
movabs rax, 0x92bc51b67265b5fd
xor rcx, rax
mov rax, r8
xor rax, rcx
movabs rcx, 0x4c7675633b7f4e58
and rax, rcx
movabs r9, 0x8500c864e37691a3
movabs rcx, 0xc976bd07d809dffb
xor r9, rcx
movabs rcx, 0x2c8b7f0cb1a7edd7
movabs r10, 0xd37480f34e581228
xor rcx, r10
xor r9, rcx
and r8, r9
mov rcx, rdx
xor rcx, 0xffffffffffffffff
movabs r10, 0x4c7675633b7f4e58
and rcx, r10
and rdx, r9
or rax, r8
or rcx, rdx
xor rax, rcx
mov qword [rbp + 0xc0], rax
cmp rax, 0
je 0x140170101
mov rdx, qword [rbp + 0xd0]
mov rax, qword [rbp + 0xc0]
tzcnt rax, rax
shr rax, 3
mov rcx, rdx
and rcx, rax
xor rcx, 0xffffffffffffffff
add rax, rdx
movabs rdx, 0xaba1b45020cf812d
movabs r8, 0xaba1b45020cf812c
xor rdx, r8
add rax, rdx
add rax, rcx
mov qword [rbp + 0xd8], rax
jmp 0x140170396
mov rdx, qword [rbp + 0x168]
mov rax, qword [rbp + 0xd0]
mov rcx, qword [rbp + 0xc8]
add rcx, 8
add rax, 8
cmp rcx, rdx
mov rdx, rax
mov qword [rbp + 0xe8], rdx
mov rdx, rcx
mov qword [rbp + 0xf0], rdx
mov qword [rbp + 0x108], rcx
mov qword [rbp + 0x110], rax
jle 0x14016ffa1
mov rax, qword [rbp + 0x108]
mov rcx, qword [rbp + 0x110]
mov qword [rbp + 0xb0], rcx
mov qword [rbp + 0xb8], rax
mov eax, dword [0x1402b1720]
xor eax, 0x285529b5
mov edx, dword [0x1402b1724]
mov ecx, eax
xor ecx, edx
mov r8d, 0x1d1f6cf8
xor r8d, 0xe2e09307
xor edx, r8d
and eax, edx
shl eax, 1
sub eax, ecx
xor ecx, ecx
sub ecx, 0x722b2aef
sub eax, ecx
mov r8d, 0xffffffff
xor r8d, 0xcff6c908
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov r8d, 0x89074b36
xor r8d, 0x46f1823e
mov edx, eax
and edx, r8d
or eax, 0xcff6c908
imul eax, edx
add eax, ecx
mov ecx, 0xf2e465db
xor edx, edx
div ecx
cmp eax, 0xe08a05f6
ja 0x140170f9d
mov r8, qword [rbp + 0xb8]
mov ecx, dword [0x1402b1728]
mov edx, dword [0x1402b172c]
mov eax, 0x1978214a
xor eax, 0xf8fb8493
xor edx, eax
mov eax, ecx
and eax, edx
or ecx, edx
add eax, ecx
mov ecx, 0xffe05342
xor edx, edx
div ecx
mov rdx, qword [rbp + 0x160]
mov ecx, 0xaabcc881
xor ecx, 0x59cc944f
sub eax, ecx
or eax, 0x6f06fa2f
mov ecx, 0x32227d02
xor ecx, 0x99d98abb
cmp rdx, r8
setg dl
mov byte [rbp + 0xaf], dl
cmp eax, ecx
ja 0x1401701e8
mov rax, qword [rbp + 0xb0]
mov cl, byte [rbp + 0xaf]
test cl, 1
mov qword [rbp + 0xd8], rax
jne 0x140170272
jmp 0x140170396
mov rax, qword [rbp + 0xb8]
mov rcx, qword [rbp + 0xb0]
mov rdx, qword [rbp + 0x160]
movabs r9, 0xc30910f61890b75
movabs r8, 0xf3cf6ef09e76f48a
xor r9, r8
mov r8, rdx
xor r8, r9
and r8, rax
mov r9, rax
xor r9, 0xffffffffffffffff
and rdx, r9
sub rdx, r8
xor r8d, r8d
sub r8, rcx
sub rdx, r8
mov qword [rbp + 0x90], rdx
mov qword [rbp + 0x98], rcx
mov qword [rbp + 0xa0], rax
mov rdx, qword [rbp + 0x2e8]
mov r9, qword [rbp + 0xf8]
mov rax, qword [rbp + 0x98]
mov rcx, qword [rbp + 0xa0]
mov qword [rbp + 0x80], rcx
mov qword [rbp + 0x88], rax
mov cl, byte [rdx + rcx]
movabs r10, 0x425bdfe3af804ba2
mov r8, rax
sub r8, r10
add r8, r9
movabs r9, 0x425bdfe3af804ba2
add r8, r9
add rdx, r8
cmp cl, byte [rdx]
mov qword [rbp + 0xd8], rax
jne 0x140170396
mov rax, qword [rbp + 0x90]
mov rdx, qword [rbp + 0x88]
mov rcx, qword [rbp + 0x80]
mov r8, 0xffffffffffffffff
xor r8, 1
xor r9d, r9d
sub r9, 1
sub r8, r9
sub rcx, r8
movabs r8, 0x31abf0d179809610
movabs r9, 0x31abf0d179809611
xor r8, r9
add rdx, r8
cmp rdx, rax
mov qword [rbp + 0x98], rdx
mov qword [rbp + 0xa0], rcx
mov qword [rbp + 0xd8], rax
jne 0x1401702d2
mov rax, qword [rbp + 0x328]
mov rcx, qword [rbp + 0xd8]
mov qword [rbp + 0x78], rcx
mov al, byte [rax]
mov cl, 0x32
xor cl, 0x32
cmp al, cl
jne 0x140170f30
mov eax, dword [0x1402b1730]
mov ecx, dword [0x1402b1734]
xor ecx, 0x39ea8c94
add eax, ecx
mov ecx, 0xcb5332bc
xor ecx, 0xfd12f1c7
xor edx, edx
div ecx
mov ecx, eax
mov eax, ecx
xor eax, 0xffffffff
mov edx, ecx
xor edx, 0xffffffff
or eax, edx
mov edx, 0x36d22914
xor edx, 0xf8ad769f
and eax, edx
mov edx, 0xd4305748
xor edx, 0x2bcfa8b7
xor eax, edx
mov edx, 0x7cefd1dc
xor edx, 0xb2908e57
mov r8d, 0x6bf19e61
xor r8d, 0x940e619e
xor edx, r8d
mov r8d, 0xffffffff
xor r8d, 0xce7f5f8b
or edx, r8d
mov r8d, 0x8e630e3f
xor r8d, 0x719cf1c0
xor ecx, r8d
mov r8d, 0x711b8f45
xor r8d, 0x8ee470ba
xor edx, r8d
or ecx, edx
and eax, ecx
xor eax, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0xfd890ac0
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0xabe74acd
xor r8d, 0x5418b532
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0xfd890ac0
or eax, 0xfd890ac0
imul eax, edx
add eax, ecx
cmp eax, 0x23e36d28
jbe 0x140170fa6
mov rcx, qword [rbp + 0x128]
mov rdx, qword [rbp + 0x78]
mov eax, dword [0x1402b1738]
mov r8d, dword [0x1402b173c]
xor r8d, 0xd5263b7d
sub eax, r8d
xor eax, 0xf0270959
mov r8d, 0xe27158e
xor r8d, 0xf4bb2552
sub eax, r8d
xor eax, 0x9c5980a4
cmp rcx, rdx
setl cl
mov byte [rbp + 0x77], cl
cmp eax, 0xc4bf1624
je 0x14017049b
mov rax, qword [rbp + 0x128]
mov rcx, qword [rbp + 0x130]
mov rdx, qword [rbp + 0x118]
mov r8b, byte [rbp + 0x77]
test r8b, 1
mov qword [rbp + 0x58], rdx
mov qword [rbp + 0x60], rcx
mov qword [rbp + 0x68], rax
jne 0x14017051f
jmp 0x14017063e
mov eax, dword [0x1402b1740]
mov ecx, dword [0x1402b1744]
xor ecx, 0xffafa0ff
or eax, ecx
mov ecx, 0x316a3c2d
xor ecx, 0x4fac284e
xor eax, ecx
and eax, 0x97f805fe
mov r8d, 0xffffffff
xor r8d, 0x21b8ed6e
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
mov r8d, 0x4e47e1af
xor r8d, 0xb1b81e50
xor ecx, r8d
imul ecx, edx
mov edx, eax
and edx, 0x21b8ed6e
or eax, 0x21b8ed6e
imul eax, edx
add eax, ecx
mov ecx, 0xe31fa4cc
xor ecx, 0xb93affeb
cmp eax, ecx
ja 0x140170faf
mov rdx, qword [rbp + 0x118]
mov r9, qword [rbp + 0x78]
mov rcx, qword [rbp + 0x2c8]
mov r8d, dword [0x1402b1748]
mov r10d, dword [0x1402b174c]
mov r11d, r8d
xor r11d, r10d
mov eax, 0x650ae80b
xor eax, 0x9af517f4
xor r11d, eax
mov eax, r10d
and eax, r11d
shl eax, 1
sub eax, r10d
sub r8d, eax
mov eax, r8d
and eax, 0x208bbb9d
or r8d, 0x208bbb9d
add eax, r8d
add eax, 0xc06d7e8d
mov r8d, 0x9a015e72
xor r8d, 0x10c09a3b
imul eax, r8d
mov r8, qword [rcx]
mov rcx, rdx
sar rcx, 2
cmp r8, r9
cmovg rcx, rdx
mov qword [rbp + 0x50], rcx
cmp eax, 0xab374606
jbe 0x140170faf
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp + 0x120]
mov rdx, qword [rbp + 0x50]
mov qword [rbp + 0x58], rdx
mov qword [rbp + 0x60], rcx
mov qword [rbp + 0x68], rax
jmp 0x14017063e
mov rdx, qword [rbp + 0x258]
mov r8, qword [rbp + 0x58]
mov rax, qword [rbp + 0x60]
mov rcx, qword [rbp + 0x68]
mov qword [rbp + 0x38], rcx
mov qword [rbp + 0x40], rax
mov qword [rbp + 0x48], r8
cmp qword [rdx], rcx
mov qword [rbp + 0x150], rcx
mov qword [rbp + 0x158], rax
jle 0x1401706e2
mov rax, qword [rbp + 0x40]
mov rcx, qword [rbp + 0x38]
mov rdx, qword [rbp + 0x120]
mov r8, qword [rbp + 0x48]
mov r10w, word [rbp + 0x14e]
mov r9, qword [rbp + 0x240]
movzx r11d, r10w
mov r9w, word [r9 + r11*2 + 8]
cmp r10w, r9w
mov word [rbp + 0x176], r9w
mov qword [rbp + 0x178], r8
mov qword [rbp + 0x180], rdx
mov rdx, rax
mov qword [rbp + 0x188], rdx
mov rdx, rcx
mov qword [rbp + 0x190], rdx
mov qword [rbp + 0x150], rcx
mov qword [rbp + 0x158], rax
jne 0x14016fe0e
mov rax, qword [rbp + 0x150]
mov rcx, qword [rbp + 0x158]
mov qword [rbp + 0x28], rcx
mov qword [rbp + 0x30], rax
mov eax, dword [0x1402b1750]
xor eax, 0xde2b628b
xor edx, edx
div dword [0x1402b1754]
mov ecx, 0x6891a2b1
xor edx, edx
div ecx
xor ecx, ecx
sub ecx, eax
xor eax, eax
sub eax, 0x2128ef5f
add ecx, eax
xor eax, eax
sub eax, ecx
mov r8d, 0xffffffff
xor r8d, 0xc969259b
mov edx, eax
and edx, r8d
mov ecx, eax
or ecx, r8d
xor ecx, 0xffffffff
imul ecx, edx
mov edx, eax
and edx, 0xc969259b
or eax, 0xc969259b
imul eax, edx
add eax, ecx
cmp eax, 0xd23d4d42
jae 0x140170fb8
mov rcx, qword [rbp + 0x30]
mov esi, dword [0x1402b1758]
mov r11d, dword [0x1402b175c]
xor r11d, 0x7bb4f66b
mov edx, esi
xor edx, 0xffffffff
mov r9d, r11d
xor r9d, 0xffffffff
mov r8d, 0xffffffff
xor r8d, 0x3f88f538
mov eax, edx
and eax, 0x3f88f538
and esi, r8d
mov r10d, r9d
and r10d, 0x3f88f538
and r11d, r8d
or eax, esi
or r10d, r11d
xor eax, r10d
or edx, r9d
xor edx, 0xffffffff
or r8d, 0x3f88f538
and edx, r8d
or eax, edx
sub eax, 0xb04bd8a9
add eax, 0xe295ae8f
mov edx, 0xad11ac39
xor edx, 0x415cfd57
xor eax, edx
cmp rcx, 4
setg cl
mov byte [rbp + 0x27], cl
cmp eax, 0xde0cce5c
jae 0x140170fb8
mov al, byte [rbp + 0x27]
test al, 1
jne 0x1401707fd
jmp 0x140170e67
mov rax, qword [rbp + 0x210]
cmp rax, 0
mov qword [rbp + 0x18], rax
jle 0x140170a07
mov rcx, qword [rbp + 0x220]
mov rax, qword [rbp + 0x218]
movabs rdx, 0xc8ebfac3e1e4f850
movabs r8, 0x1c25de2022eff326
xor rdx, r8
sub rax, rdx
add rax, rcx
movabs rcx, 0xd4ce24e3c30b0b76
add rax, rcx
mov qword [rbp + 8], rax
xor eax, eax
mov qword [rbp + 0x10], rax
mov rax, qword [rbp + 0x10]
mov rcx, qword [rbp + 0x210]
mov rdx, qword [rbp + 0x318]
mov r8, qword [rbp + 0x2e8]
mov r10, qword [rbp + 8]
mov r9, r10
and r9, rax
or r10, rax
add r9, r10
movzx r8d, byte [r8 + r9]
mov r9d, dword [rdx + r8*4]
add r9d, 1
mov dword [rdx + r8*4], r9d
movabs rdx, 0x7d6ec02c4db72bf5
add rax, rdx
add rax, 1
movabs rdx, 0x7d6ec02c4db72bf5
sub rax, rdx
cmp rax, rcx
mov qword [rbp + 0x10], rax
jne 0x140170854
mov rax, qword [rbp + 0x210]
mov rcx, qword [rbp + 0x2d0]
mov rdx, qword [rbp + 0x260]
mov r8, qword [rdx]
movabs r9, 0xc4a6a67ea902b589
add r8, r9
add r8, rax
movabs r9, 0xc4a6a67ea902b589
sub r8, r9
mov qword [rdx], r8
mov rcx, qword [rcx]
mov qword [rbp - 8], rcx
mov qword [rbp], rax
mov rcx, qword [rbp + 0x2d8]
mov rax, qword [rbp - 8]
mov rdx, qword [rbp]
mov qword [rbp - 0x20], rdx
mov rcx, qword [rcx]
mov qword [rbp - 0x18], rcx
cmp rcx, rax
mov qword [rbp - 0x10], rax
jg 0x14017096f
mov rcx, qword [rbp + 0x2d8]
mov r8, qword [rbp - 0x18]
mov rax, r8
shl rax, 1
movabs rdx, 0x1858740bd9c55d3e
movabs r9, 0x1858740bd9c55d3c
xor rdx, r9
cmp r8, 0
cmovg rdx, rax
sub rsp, 0x20
call fcn.14003fa50
mov rax, qword [rbp + 0x2d0]
add rsp, 0x20
mov rax, qword [rax]
mov qword [rbp - 0x10], rax
mov rcx, qword [rbp - 0x20]
mov rax, qword [rbp + 0x2d0]
mov r9, qword [rbp + 0x268]
mov rdx, qword [rbp - 0x10]
mov r8, rcx
sub r8, 0x7fff
mov r8d, 0x7fff
cmovl r8, rcx
mov r10w, r8w
mov r9, qword [r9]
mov word [r9 + rdx*2 + 8], r10w
mov r9, rdx
and r9, 1
shl r9, 1
movabs r10, 0xe4a6554bb8c64fe7
movabs r11, 0xe4a6554bb8c64fe6
xor r10, r11
xor rdx, r10
add rdx, r9
mov qword [rax], rdx
xor eax, eax
sub rax, r8
add rcx, rax
movabs r8, 0x1b09e866a7105a3e
movabs rax, 0x1b09e866a7105a3e
xor r8, rax
xor eax, eax
cmp rcx, r8
mov qword [rbp - 8], rdx
mov qword [rbp], rcx
mov qword [rbp + 0x18], rax
jg 0x1401708fc
mov rcx, qword [rbp + 0x2d0]
mov rax, qword [rbp + 0x2d8]
mov rdx, qword [rbp + 0x18]
mov qword [rbp - 0x38], rdx
mov rax, qword [rax]
mov qword [rbp - 0x30], rax
mov rcx, qword [rcx]
mov rdx, 0xffffffffffffffff
xor rdx, 3
movabs r8, 0xf03ae74a406a15eb
movabs r9, 0xf03ae74a406a15eb
xor r8, r9
movabs r9, 0x84964decdee299c
movabs r10, 0x84964decdee299d
xor r9, r10
sub r8, r9
sub rdx, r8
sub rcx, rdx
mov qword [rbp - 0x28], rcx
cmp rax, rcx
jge 0x140170aa0
mov rcx, qword [rbp + 0x2d8]
mov rdx, qword [rbp - 0x28]
mov rax, qword [rbp - 0x30]
shl rax, 1
mov r8, rax
sub r8, rdx
cmovg rdx, rax
sub rsp, 0x20
call fcn.14003fa50
add rsp, 0x20
mov rax, qword [rbp + 0x28]
mov rdx, qword [rbp + 0x30]
movabs rcx, 0xf501b0feb6054f11
sub rdx, rcx
movabs rcx, 0x67ebf368e654d2d5
movabs r8, 0x98140c9719ab2d28
xor rcx, r8
add rdx, rcx
movabs rcx, 0xf501b0feb6054f11
add rdx, rcx
mov rcx, qword [str.P8__]
add rcx, rdx
mov cl, byte [rcx]
mov byte [rbp - 0x3d], cl
mov cx, ax
mov word [rbp - 0x3c], cx
add cx, 0xffff
sub rsp, 0x20
call fcn.14016e840
add rsp, 0x20
mov cx, ax
mov rax, qword [rbp + 0x328]
mov word [rbp - 0x3a], cx
mov al, byte [rax]
mov cl, 8
xor cl, 8
cmp al, cl
jne 0x140170f30
mov rax, qword [rbp - 0x38]
mov rcx, qword [rbp + 0x218]
mov r8, qword [rbp + 0x30]
mov rdx, qword [rbp + 0x2d0]
mov r11w, word [rbp - 0x3c]
mov r9, qword [rbp + 0x268]
mov r10w, word [rbp - 0x3a]
mov bl, byte [rbp - 0x3d]
mov rsi, qword [rbp + 0x318]
movzx edi, bl
mov r14d, dword [rsi + rdi*4 + 0x404]
mov r15d, 0xbc139bbf
xor r15d, 0xbc139bbe
add r14d, r15d
mov dword [rsi + rdi*4 + 0x404], r14d
movzx edi, r10w
mov r14d, dword [rsi + rdi*4 + 0x478]
mov r15d, 0xaebfaae
xor r15d, 0xaebfaae
sub r15d, r14d
xor r14d, r14d
sub r14d, 1
add r15d, r14d
xor r14d, r14d
sub r14d, r15d
mov dword [rsi + rdi*4 + 0x478], r14d
movzx esi, bl
shl si, 8
mov r12w, r10w
and r12w, si
xor r10w, si
or r12w, r10w
mov r10w, r12w
xor r10w, 0xffff
mov bx, 0xf452
xor bx, 0x7452
mov si, 0x2280
xor si, 0xdd7f
xor bx, si
mov di, 0xffff
xor di, 0x6c57
mov si, r10w
and si, 0x6c57
and r12w, di
mov r14w, bx
and r14w, 0x6c57
mov r15w, di
and r15w, 0x8000
or si, r12w
or r14w, r15w
xor si, r14w
or r10w, bx
mov bx, 0x9f19
xor bx, 0x60e6
xor r10w, bx
or di, 0x6c57
and r10w, di
or 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
movabs r10, 0x9827dc7e39a6bbb1
movabs r11, 0x9827dc7e39a6bbb2
xor r10, r11
add r9, r10
mov qword [rdx], r9
mov edx, 1
cmp r8, 1
mov qword [rbp - 0x60], rdx
mov rdx, rcx
mov qword [rbp - 0x58], rdx
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x48], rax
jle 0x140170e81
mov rcx, qword [rbp + 0x248]
mov rdx, qword [rbp - 0x60]
mov rax, qword [rbp - 0x58]
mov qword [rbp - 0x70], rdx
xor edx, edx
mov r8d, edx
sub r8, 1
mov rdx, rax
sub rdx, r8
mov qword [rbp - 0x68], rdx
xor edx, edx
sub rdx, rax
xor eax, eax
sub rax, 5
add rdx, rax
xor eax, eax
sub rax, rdx
cmp rax, rcx
jge 0x140170d5e
mov rax, qword [rbp + 0x230]
mov r8, qword [rbp + 0x240]
mov r11, qword [rbp - 0x68]
mov rcx, qword [rbp + 0x2e8]
mov r9w, r11w
mov r10w, 0xb67e
xor r10w, 0xc981
mov dx, r9w
and dx, r10w
xor dx, 0xffff
xor r9w, 0xffff
mov r10w, 0xffff
xor r10w, 0x7fff
or r9w, r10w
and dx, r9w
mov r9w, 0xa263
xor r9w, 0x5d9c
xor dx, r9w
imul ecx, dword [rcx + r11], 0x1e35a7bd
shr ecx, 0xf
mov ecx, ecx
mov r10w, word [rax + rcx*2 + 8]
mov rsi, 0xffffffffffffffff
xor rsi, 0x7fff
mov r9, r11
xor r9, rsi
and r9, r11
mov word [r8 + r9*2 + 8], r10w
mov word [rax + rcx*2 + 8], dx
mov eax, dword [str.:_vB_]
xor edx, edx
div dword [0x1402b1764]
mov ecx, eax
add ecx, 0x5f1b1ff3
mov eax, 0xcd4dfee
xor eax, 0x747bcc57
add ecx, eax
mov eax, 0x307775cc
xor eax, 0x6f6c6a3f
sub ecx, eax
and ecx, 0x85e2c04f
mov eax, ecx
or eax, 0xeb71d6e6
xor eax, 0xffffffff
or ecx, 0xeb71d6e6
xor ecx, 0xffffffff
or eax, ecx
mov ecx, 0x7618e4e6
xor ecx, 0x89e71b19
xor eax, ecx
cmp eax, 0xc0c5fea6
jbe 0x140170fc1
mov r8, qword [rbp + 0x30]
mov eax, dword [0x1402b1768]
xor eax, 0x8a2b2dd5
and eax, dword [0x1402b176c]
mov ecx, 0x36ff4406
xor edx, edx
div ecx
mov rdx, qword [rbp - 0x70]
mov ecx, 0xc059d2e
xor ecx, 0x5cdb1929
and eax, ecx
mov ecx, 0xc2ae9e5
xor ecx, 0xf5fbca48
xor eax, ecx
mov ecx, 0x3cd4f104
xor ecx, 0x5a3b69ad
movabs r9, 0xd98c63c4aeae9941
movabs r10, 0xd98c63c4aeae9940
xor r9, r10
add rdx, r9
mov qword [rbp - 0x80], rdx
cmp rdx, r8
sete dl
mov byte [rbp - 0x71], dl
cmp eax, ecx
jbe 0x140170fc1
mov rax, qword [rbp - 0x38]
mov rcx, qword [rbp - 0x68]
mov rdx, qword [rbp - 0x80]
mov r8b, byte [rbp - 0x71]
test r8b, 1
mov qword [rbp - 0x60], rdx
mov rdx, rcx
mov qword [rbp - 0x58], rdx
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x48], rax
jne 0x140170e81
jmp 0x140170c8c
mov rcx, qword [rbp + 0x218]
mov rax, qword [rbp + 0x210]
add rax, 1
mov qword [rbp - 0x50], rcx
mov qword [rbp - 0x48], rax
mov r8, qword [rbp + 0x248]
mov rcx, qword [rbp - 0x50]
mov rax, qword [rbp - 0x48]
movabs rdx, 0x493fee79f26145b2
movabs r9, 0x493fee79f26145b2
xor rdx, r9
movabs r9, 0xce5af60db47a5aaf
movabs r10, 0xce5af60db47a5aae
xor r9, r10
sub rdx, r9
sub rcx, rdx
movabs rdx, 0x8d82f3034b1fa844
movabs r9, 0x8d82f3034b1fa844
xor rdx, r9
movabs r9, 0xecfe5544f781fc13
movabs r10, 0x939c05ded3f0561e
xor r9, r10
sub rdx, r9
sub rdx, rax
movabs r9, 0x6220e036c4afc2a0
movabs r10, 0x1d42b0ace0de68ad
xor r9, r10
add rdx, r9
cmp r8, rcx
mov qword [rbp + 0x270], rdx
mov qword [rbp + 0x278], rcx
mov qword [rbp + 0x280], rax
jg 0x14016f875
mov rcx, qword [rbp + 0x308]
mov rax, qword [rbp + 0x240]
mov rdx, qword [rbp + 0x238]
mov qword [rcx], rdx
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.14003ff40
mov rdx, qword [rbp + 0x228]
mov rax, qword [rbp + 0x230]
mov rcx, qword [rbp + 0x310]
add rsp, 0x20
mov qword [rcx], rdx
mov qword [rcx + 8], rax
sub rsp, 0x20
call fcn.14003ff40
add rsp, 0x20
lea rsp, [rbp + 0x350]
pop rbx
pop rdi
pop rsi
pop r12
pop r14
pop r15
pop rbp
ret
invalid
xchg edx, eax
xor cl, byte [rdi]
jo 0x140170f8b
invalid
pushfq
stc
stosb byte [rdi], al
shr cl, 1
in al, dx
hlt
cmp esi, dword ds:[rcx - 0x63]
jmp 0x140170594
iretd
sar edi, 1
sar byte [rcx + rbp*8], 1
cmc
std
invalid