Function at 0x200d2850
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x1a8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x120], 0xfffffffffffffffe
mov rsi, r9
mov qword [rbp + 0x40], r8
mov qword [rbp - 0x18], rdx
mov rdi, rcx
call fcn.200da7b0
movzx edx, byte [0x205ec0c9]
mov rcx, qword [0x20573c38]
mov r8d, dword [0x20573c04]
mov dword [rbp + 0x114], edx
or r8d, edx
mov edx, 0xf959
mov qword [rbp + 0x48], rax
sub edx, eax
mov dword [rbp + 0xfc], edx
sub r8d, edx
movsxd rax, r8d
add rax, rcx
call qword [case.0x200c66ec.0]
mov dword [rbp + 0x118], eax
mov byte [rdi + 0x6ef], 0
lea rax, [0x2046e708]
mov qword [rbp], rax
xorps xmm0, xmm0
movups xmmword [rbp + 8], xmm0
mov qword [rbp + 0x18], 0
mov byte [rbp + 0x20], 1
movups xmmword [rbp + 0x24], xmm0
movups xmmword [rbp + 0x30], xmm0
mov qword [rbp + 0x108], rsi
mov edx, dword [rsi]
nop
mov qword [rbp + 0xd8], rdi
mov rcx, rdi
call fcn.200d0de0
mov qword [rbp + 0x100], rax
mov rdx, qword [rbp + 0x100]
test rdx, rdx
je 0x200d2976
nop
mov r8d, dword [rbp + 0x118]
mov eax, r8d
movabs rcx, 0x27f9a4f4ff3496
xor rcx, rax
shl rax, 0x1b
xor rcx, rax
mov eax, dword [rdx + rcx]
xor eax, r8d
cmp eax, 0x4ff309e
sete cl
cmp eax, 0x4ff369e
sete dl
or dl, cl
mov rax, qword [rbp + 0x108]
mov eax, dword [rax + 0xc]
xor eax, r8d
cmp eax, 0x4ff34e3
sete al
and al, dl
jmp 0x200d298f
nop
mov rax, qword [rbp + 0x108]
mov eax, dword [rax + 0xc]
xor eax, dword [rbp + 0x118]
cmp eax, 0x4ff34e3
sete al
nop
cmp byte [0x205ec0c8], 0
jne 0x200d2b5e
nop
mov rcx, qword [rbp + 0x108]
mov ecx, dword [rcx + 0xc]
xor ecx, dword [rbp + 0x118]
cmp ecx, 0xfb00cb64
je 0x200d2b5e
test al, al
je 0x200d2b7d
nop
mov rax, qword [rbp + 0xd8]
mov rcx, qword [rax + 0x4c0]
mov r9d, dword [rbp + 0x118]
mov r8, r9
shl r8, 0x1d
xor r8, r9
mov rax, r9
shl rax, 0x22
or rax, r9
movabs rdx, 0x13fcd27804ff3416
mov qword [rbp + 0xa8], rax
xor rdx, rax
movabs rax, 0xff60196c3b00cbe9
mov qword [rbp + 0x50], r8
xor rax, r8
xor rax, rdx
and rax, rcx
xor rax, rdx
mov r8, r9
shl r8, 0x1e
xor r8, r9
movabs rdx, 0x13fcd2784ff3416
mov qword [rbp + 0xc0], r8
xor rdx, r8
and rdx, rcx
mov rsi, r9
shl rsi, 0x21
or rsi, r9
movabs rcx, 0xed003797c3381f1
xor rcx, rsi
mov r10, r9
shl r10, 0x1c
mov qword [rbp + 0xb0], r9
xor r10, r9
movabs r8, 0xf89e66f363cc7e0e
mov qword [rbp + 0xb8], r10
xor r8, r10
add r8, rcx
add r8, rax
lea rdx, [r8 + rdx*2]
inc rdx
mov rcx, rbp
call fcn.200d3d90
nop
mov rcx, qword [rbp + 8]
mov rdx, qword [rbp + 0x10]
test rdx, rdx
mov rax, rcx
mov qword [rbp + 0xe8], rcx
cmovne rdx, rcx
mov qword [rbp + 0xf0], rdx
cmp qword [0x205ee398], 0
jne 0x200d2b07
movabs rcx, 0x9fe693c04ff342e
xor rcx, rsi
call fcn.200782b0
xorps xmm0, xmm0
movups xmmword [rax + 0x9d], xmm0
movups xmmword [rax + 0x90], xmm0
movups xmmword [rax + 0x80], xmm0
movups xmmword [rax + 0x70], xmm0
movups xmmword [rax + 0x60], xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax], xmm0
mov qword [0x205ee398], rax
nop
mov rcx, qword [0x205ee398]
nop
mov qword [rbp + 0xe0], rcx
mov rdx, qword [rbp + 0x100]
call fcn.20079b30
mov r8d, eax
mov eax, dword [0x20574718]
xor eax, dword [rbp + 0x118]
cmp eax, 0x31b39c2f
movsxd rdx, dword [0x20470cf8]
jne 0x200d2b90
lea rcx, [0x20470cf8]
shl rdx, cl
shl rdx, cl
mov rax, rdx
sub rax, rcx
imul rax, rcx
mov ecx, eax
shl rdx, cl
jmp 0x200d2b97
nop
mov ecx, dword [rbp + 0x118]
xor ecx, 0x4feb232
mov rdx, qword [rbp + 0x108]
mov dword [rdx + 0xc], ecx
test al, al
jne 0x200d29c2
mov rax, qword [rbp + 0x190]
mov qword [rbp + 0xe8], rax
jmp 0x200d30e6
lea rax, [0x20470cf8]
add rdx, rax
mov qword [rbp + 0x98], rdx
nop
mov eax, dword [0x20470d10]
mov dword [rbp + 0x90], eax
movsxd rax, dword [0x20470ce8]
mov qword [rbp + 0x80], rax
test r8d, r8d
jne 0x200d2bd7
nop
mov rax, qword [rbp + 0xe0]
mov rax, qword [rax]
xor ecx, ecx
call qword [case.0x200c66ec.0]
mov r8d, eax
nop
mov rbx, qword [rbp + 0xb0]
mov rax, rbx
shl rax, 0x20
or rax, rbx
movabs r9, 0x4ff349e04ff3496
mov qword [rbp + 0x88], rax
xor r9, rax
movabs rax, 0x9fe693c04ff3486
xor rax, rsi
mov rcx, rbx
shl rcx, 0x23
or rcx, rbx
movabs rdx, 0x27f9a4f004ff34be
mov qword [rbp + 0xd0], rcx
xor rdx, rcx
movabs rcx, 0x4ff349e4ff3491
mov r14, qword [rbp + 0xb8]
xor rcx, r14
mov rdi, rsi
mov rsi, qword [rbp + 0x100]
test rsi, rsi
mov qword [rbp + rax - 0x40], 0
mov qword [rbp + 0x78], rdx
mov qword [rbp + 0xa0], rcx
mov qword [rbp + rdx - 0x40], rcx
mov qword [rbp + 0x70], r9
mov byte [rbp + r9 - 0x40], 0
lea rax, [0x2046cec8]
mov qword [rbp - 0x40], rax
nop
mov qword [rbp + 0x68], rdi
je 0x200d2edb
nop
mov rcx, qword [rbp + 0xf0]
mov dword [rcx], r8d
movabs rax, 0x27f9a4f004ff34b6
xor rax, qword [rbp + 0xd0]
mov qword [rbp + 0xc8], rax
mov eax, dword [rsi + rax]
mov dword [rcx + 4], eax
mov rcx, rsi
call fcn.200d87c0
lea rcx, [rbp - 0x40]
mov rdx, rax
call fcn.200a7c20
nop
mov rax, qword [rbp + 0xc8]
mov ecx, dword [rsi + rax]
call fcn.200d87d0
movabs rdx, 0x4ff349e4ff3496
mov r9, qword [rbp + 0xb8]
xor rdx, r9
mov rcx, qword [rbp + 0x70]
lea rdi, [rcx + rbp]
add rdi, 0xffffffffffffffc0
mov r8d, dword [rbp + 0x118]
mov ecx, r8d
xor cl, 0x8e
mov r10d, eax
shr r10d, cl
mov ecx, r8d
xor cl, 0x86
mov r11d, eax
shr r11d, cl
mov ecx, r8d
xor ecx, 0x4ffcb61
xor r8d, 0x4ff3461
movabs rsi, 0x4ff349e4ff34be
xor rsi, r9
mov r9, rdi
mov rbx, qword [rbp + 0xa0]
cmp qword [rbp + rsi - 0x40], rbx
jbe 0x200d2d3f
mov r9, qword [rdi]
add qword [rbp + 0xf0], rdx
and eax, ecx
and r10d, r8d
movabs rcx, 0x27f9a4f004ff3491
xor rcx, qword [rbp + 0xd0]
mov rdx, qword [rbp + 0xd8]
cmp qword [rdx + 0x4c8], rcx
jbe 0x200d2d75
mov r8, qword [rdx + 0x4b0]
jmp 0x200d2d7c
lea r8, [rdx + 0x4b0]
mov rcx, qword [rbp + 0x10]
movabs rsi, 0xf60196c3fb00cb66
xor rsi, qword [rbp + 0x68]
mov rdx, qword [rbp + 0xd0]
xor rdx, rsi
movabs rbx, 0x27f9a4f004ff3499
xor rbx, rdx
and rbx, rcx
xor rbx, rsi
mov rdx, qword [rbp + 0xb0]
mov r14, rdx
shl r14, 0x1f
xor r14, rdx
movabs rdx, 0x7d8065b0fb00cb66
xor rdx, r14
and rdx, rcx
lea rdx, [rbx + rdx*2]
nop
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], r11d
mov dword [rsp + 0x20], r10d
mov rcx, qword [rbp + 0xf0]
call fcn.2005ceb0
nop
mov rcx, qword [rbp + 0x108]
mov dword [rcx + 8], 2
mov eax, dword [rbp + 0x118]
xor eax, 0x4feb23e
mov dword [rcx + 0xc], eax
add rcx, 0x40
nop
mov rdx, qword [rbp + 0xf0]
call fcn.200a7c20
nop
mov rax, qword [rbp + 0x78]
mov rcx, qword [rbp + rax - 0x40]
movabs rax, 0x13fcd2784ff3491
xor rax, qword [rbp + 0xc0]
cmp rcx, rax
jbe 0x200d30e6
nop
mov rax, qword [rdi]
mov qword [rbp + 0x58], rax
mov rax, rcx
xor rax, 1
mov qword [rbp - 8], rcx
and ecx, 1
lea rax, [rax + rcx*2]
mov qword [rbp + 0xa0], rax
mov eax, dword [0x20574710]
lea ecx, [rax + 1]
mov dword [0x20574710], ecx
mov qword [rbp - 0x10], rax
mov dword [rbp + 0x64], ecx
test ecx, eax
je 0x200d32e2
xor edi, edi
movabs rax, 0x9fe693c4ff3b61
mov rcx, qword [rbp + 0x50]
xor rcx, rax
cmp qword [rbp + 0xa0], rcx
jbe 0x200d3078
nop
mov rcx, qword [rbp + 0x58]
mov rax, qword [rcx - 8]
add rsi, rcx
sub rsi, rax
movabs rcx, 0x9fe693c04ff34be
mov rdx, qword [rbp + 0x68]
xor rdx, rcx
cmp rsi, rdx
jae 0x200d3c1a
mov rcx, qword [rbp - 8]
add rcx, qword [rbp + 0xc8]
mov rdx, rcx
mov rcx, rax
jmp 0x200d3083
mov rax, rbx
shl rax, 0x1b
xor rax, rbx
movabs rcx, 0x31fb06942f35233f
xor rcx, rax
movabs rdx, 0xcf1ccde8a0cadcc0
xor rdx, qword [rbp + 0xc0]
add rdx, rcx
movabs rcx, 0xcb390d07586a3e3d
xor rcx, rdi
movabs r9, 0x3dc1166b2aac44df
xor r9, r14
mov r10, rbx
shl r10, 0x1f
movabs r11, 0xc00e80923553bb20
xor r11, rbx
xor r11, r10
add r11, rcx
add r11, rdx
add r11, r9
movabs rcx, 0x2ec449bca795c1c2
xor rcx, qword [rbp + 0xa8]
lea r15, [rcx + r11]
add r15, 3
movabs r12, 0x9fe693c04ff346e
xor r12, rdi
movabs rdi, 0x27f9a4f4ff3496
xor rdi, rax
movabs rax, 0x4ff349e4ff34b6
xor rax, r14
mov qword [rbp + 0xc8], rax
xor r13d, r13d
xor esi, esi
jmp 0x200d2fa5
nop
mov rax, qword [rbp + 0xc8]
cmp r8d, dword [rsi + rax]
jb 0x200d2c82
inc r13d
nop
mov rax, qword [rbp + 0x108]
movsxd rax, dword [rax]
mov rcx, qword [rbp + 0xd8]
mov rcx, qword [rcx + 0x348]
lea rax, [rax + rax*2]
mov rbx, qword [rcx + rax*8]
mov rax, qword [rcx + rax*8 + 8]
add rax, r15
sub rax, rbx
cqo
idiv r12
cmp r13d, eax
jge 0x200d2c82
mov eax, r13d
imul r14, rax, 0xf0
lea rsi, [rbx + r14]
mov eax, dword [rdi + rsi]
cmp eax, 0x300
jbe 0x200d3000
cmp eax, 0x400
jne 0x200d2fa2
jmp 0x200d3007
cmp eax, 0x200
jne 0x200d2fa2
nop
mov rcx, qword [rbp + 0xe0]
mov rdx, rsi
call fcn.20079b30
nop
cmp dword [rbx + r14 + 0xb8], 0
jne 0x200d3035
mov r8d, eax
cmp qword [rbx + r14 + 0xb8], 0
je 0x200d2f90
lea rax, [rbx + r14]
add rax, 0xb8
lea rcx, [rbx + r14]
add rcx, 0xb0
mov rdx, qword [rax]
test rdx, rdx
cmovne rdx, rcx
cmp dword [rax], 0
mov rax, qword [rbp + 0xe0]
mov rax, qword [rax]
cmovne rdx, rcx
mov rcx, qword [rdx + 8]
nop
call qword [case.0x200c66ec.0]
mov r8d, eax
jmp 0x200d2f90
mov rcx, qword [rbp + 0x58]
mov rdx, qword [rbp + 0xa0]
nop
mov eax, dword [rbp + 0x114]
neg eax
mov r8d, dword [rbp + 0x64]
test dword [rbp - 0x10], r8d
sete bl
mov r8d, dword [rbp + 0x118]
xor r8d, 0xe7ae1159
mov r9, qword [0x20573c48]
mov r10d, dword [0x20573c10]
add eax, dword [rbp + 0x48]
add eax, r10d
add eax, 0xffff06a7
cdqe
add rax, r9
call qword [case.0x200c66ec.0]
mov rax, qword [0x20470d00]
cmp rax, rdi
setne al
and al, bl
or al, byte [0x205ec0c9]
and al, 1
mov byte [0x205ec0c9], al
mov esi, 2
mov rax, qword [rbp + 0xd8]
cmp byte [rax + 0x6ed], 0
jne 0x200d3bd4
nop
mov rax, qword [rbp + 0x108]
cmp byte [rax + 0x68], 0
je 0x200d3138
call fcn.20089060
mov rcx, rax
call fcn.200a79f0
nop
mov eax, dword [0x205eb87e]
mov ecx, dword [rbp + 0x118]
xor ecx, eax
xor ecx, 0xfb00cb65
test ecx, eax
jne 0x200d3138
call fcn.200d87e0
nop
mov edx, dword [rbp + 0x118]
mov eax, edx
xor eax, 0x4ff3499
mov rcx, qword [rbp + 0x108]
and eax, dword [rcx + 8]
dec eax
mov r12d, edx
xor r12d, 0x4ff349a
cmp eax, r12d
jae 0x200d3170
mov eax, eax
lea rcx, [0x20470de0]
mov r13, qword [rcx + rax*8]
jmp 0x200d3173
xor r13d, r13d
nop
mov rax, qword [rbp + 0x108]
mov eax, dword [rax + 4]
cmp eax, 0x13
jbe 0x200d319e
cmp eax, 0x69
jbe 0x200d3297
mov rcx, r13
or rcx, 2
cmp eax, 0xb0
cmove r13, rcx
jmp 0x200d31a9
xor ecx, ecx
cmp eax, 3
sete cl
or r13, rcx
nop
mov rax, qword [rbp + 0x108]
mov eax, dword [rax + 0x10]
mov ecx, dword [rbp + 0x118]
xor ecx, 0x4ff369e
test eax, eax
cmovne ecx, eax
mov dword [rbp + 0xe0], ecx
cmp qword [rbp + 0x100], 0
je 0x200d3204
test eax, eax
jne 0x200d3204
nop
mov eax, dword [rbp + 0x118]
movabs rcx, 0x9fe693c4ff3496
xor rcx, rax
shl rax, 0x1d
xor rcx, rax
mov rax, qword [rbp + 0x100]
mov eax, dword [rax + rcx]
mov dword [rbp + 0xe0], eax
nop
cmp qword [rbp + 0xe8], 0
je 0x200d321d
nop
test byte [0x205ec0c9], 1
je 0x200d3a68
cmp qword [rbp + 0x100], 0
je 0x200d36c6
nop
mov eax, dword [rbp + 0x118]
movabs rdx, 0x13fcd2784ff34b2
xor rdx, rax
shl rax, 0x1e
xor rdx, rax
mov rcx, rbp
call fcn.200d3d90
nop
mov rdx, qword [rbp + 0x10]
test rdx, rdx
je 0x200d325c
mov rdx, qword [rbp + 8]
mov dword [rdx], 1
add rdx, 4
nop
mov rcx, qword [rbp + 0x100]
call fcn.200d87f0
nop
mov rcx, qword [rbp + 0x10]
mov rax, rcx
mov qword [rbp + 0xe8], rcx
test rcx, rcx
je 0x200d3292
mov rax, qword [rbp + 8]
mov qword [rbp + 0xe8], rax
jmp 0x200d3a68
cmp eax, 0x22
jne 0x200d31a9
mov eax, dword [rbp + 0x118]
mov rcx, rax
shl rcx, 0x1e
movabs rdx, 0x13fcd2784ff349b
xor rdx, rax
xor rdx, rcx
and rdx, r13
mov rcx, rax
shl rcx, 0x1b
xor rax, r13
xor rax, rcx
movabs r13, 0x27f9a4f4ff349b
xor r13, rax
or r13, rdx
jmp 0x200d31a9
lea r9, [0x20470ce8]
add r9, qword [rbp + 0x80]
movsxd rax, dword [r9]
xor r8d, r8d
cmp dword [rbp + 0x90], 0
jle 0x200d2e7c
add rax, r9
movabs rcx, 0x105a4c15b4dac0ab
mov r10, qword [rbp + 0xb8]
xor r10, rcx
movabs rdx, 0x83e809a085986eac
mov r12, qword [rbp + 0xd0]
xor rdx, r12
add rdx, r10
movabs rcx, 0x5991c8e07a679153
xor r14, rcx
mov r10, qword [rbp + 0xb0]
mov rcx, r10
shl rcx, 0x24
or rcx, r10
movabs r10, 0xa0190943ab253f54
xor r10, rcx
add r14, rdx
lea rdx, [r10 + r14]
add rdx, 2
mov qword [rbp + 0xe0], rdx
movabs r15, 0x4ff349e004ff3496
xor r15, rcx
mov edx, dword [0x2057471c]
mov edi, dword [rbp + 0x118]
xor edx, edi
mov dword [rbp + 0xb0], edx
movabs rdx, 0x9fe693c4ff349d
mov r10, qword [rbp + 0x50]
xor rdx, r10
mov qword [rbp + 0xb8], rdx
mov r11d, edi
xor r11d, 0x4ff3496
mov edx, edi
xor edx, 0xfb00cb69
mov dword [rbp + 0xf0], edx
movabs rdx, 0x2992b40c8787b29f
xor rdx, r10
movabs r10, 0x13fcd27804ff349d
mov rbx, qword [rbp + 0xa8]
xor rbx, r10
movabs r10, 0xd7cd604738784d60
mov r14, qword [rbp + 0xc0]
xor r10, r14
add r10, rdx
lea rdx, [rbx + r10]
inc rdx
mov qword [rbp + 0x70], rdx
movabs rdx, 0x27f9a4f004ff349d
xor rdx, r12
mov qword [rbp + 0xd0], rdx
movabs rdx, 0x7ebf36fbbbda7714
xor rdx, r14
movabs r10, 0xb7bfe7910380f5d3
mov rbx, qword [rbp + 0x68]
xor r10, rbx
add r10, rdx
movabs rdx, 0xcf8c4dc3c42588eb
xor rdx, rcx
movabs rcx, 0x4081bc757c7f0a2c
xor rcx, r14
add rdx, r10
add rcx, rdx
add rcx, 2
mov qword [rbp + 0x78], rcx
movabs rcx, 0xdb0c2d6b4d93ab3f
xor rcx, rbx
movabs rdx, 0x2c32768f326c54c0
xor rdx, r14
add rcx, rdx
inc rcx
mov qword [rbp + 0xc0], rcx
movabs rcx, 0x18bd970d1a1cdf6c
xor rcx, rbx
movabs rdx, 0xea433550e5e32093
mov r10, qword [rbp + 0x88]
xor r10, rdx
add rcx, r10
inc rcx
mov qword [rbp + 0xa8], rcx
mov ecx, edi
xor ecx, 0x8cd1722f
mov edx, edi
xor edx, 0x732e8dd0
add edx, ecx
mov qword [rbp + 0x80], rdx
mov ecx, edi
xor ecx, 0x3e131d17
mov qword [rbp + 0x88], rcx
xor edi, edi
xor edx, edx
jmp 0x200d3560
mov rax, r13
mov rcx, qword [rbp + 0xb8]
shl rax, cl
mov r10, 0xffffffffffffffff
mov ecx, eax
shl r10, cl
not r10
and r12, r10
mov eax, edx
xor eax, 1
and edx, 1
lea edx, [rax + rdx*2]
mov eax, dword [rbp + 0xf0]
xor eax, r11d
and eax, r13d
xor eax, r11d
and r13d, r11d
sub eax, r11d
lea eax, [rax + r13*2]
mov ecx, eax
xor ecx, r8d
and eax, r8d
lea r8d, [rcx + rax*2]
movsxd rax, edx
lea rcx, [r9 + rax*4]
movsxd rax, dword [r9 + rax*4]
add rax, rcx
xor rdi, r12
add r8d, r11d
cmp r8d, dword [rbp + 0x90]
jge 0x200d2e7e
movsxd rcx, r8d
mov rbx, qword [rbp + 0x98]
mov r14, qword [rbp + 0xe0]
lea r13, [r14 + rax]
sub r13, rbx
sub r13, rcx
cmp r13, r15
mov r12, qword [rbx + rcx]
jge 0x200d354d
cmp dword [rbp + 0xb0], 0x6b889858
jne 0x200d34f0
nop
mov rax, qword [rbp + 0x70]
sub rax, r13
mov rcx, qword [rbp + 0xd0]
shl rax, cl
mov ebx, 1
sub rbx, rax
imul rbx, rax
mov ecx, eax
shl rbx, cl
shl rbx, cl
mov rax, qword [rbp + 0x78]
sub rax, rbx
mov rcx, rax
xor rcx, 0xfffffffffffffffe
add rbx, qword [rbp + 0xc0]
add rbx, rcx
add eax, eax
and eax, 2
sub rbx, rax
inc rbx
mov rax, qword [rbp + 0xa8]
sub rax, r12
mov rcx, rbx
xor rcx, rax
and rax, rbx
add rax, rax
mov r10, rax
xor r10, rcx
and rax, rcx
lea r12, [r10 + rax*2]
mov r10d, 1
sub r10d, edx
mov rax, qword [rbp + 0x80]
lea edx, [rax + r10]
mov ecx, edx
shl r10d, cl
mov eax, dword [rbp + 0xf0]
mov r14d, eax
xor r14d, r11d
and r14d, r13d
sub r13d, r11d
imul r13d, r11d
mov ecx, r13d
not ecx
xor r13d, r11d
and ecx, eax
or ecx, r13d
not cl
mov eax, 4
shl eax, cl
and r12, rbx
xor r14d, r11d
mov ebx, eax
sub ebx, r14d
mov ecx, eax
shl ebx, cl
not ebx
add ebx, eax
imul ebx, eax
mov ecx, r8d
sub ecx, ebx
imul ecx, ebx
mov r14, qword [rbp + 0x88]
mov ebx, r8d
sub ebx, r14d
sub ebx, ecx
mov eax, ebx
xor eax, r14d
and ebx, r14d
lea eax, [rax + rbx*2]
imul eax, ecx
and eax, r8d
shl r8d, cl
shl r8d, cl
xor r8d, ecx
lea ecx, [rax - 2]
imul ecx, eax
neg r8d
mov eax, ecx
xor eax, r8d
and r8d, ecx
lea r8d, [rax + r8*2]
shl r8d, cl
add r10d, edx
add r8d, ecx
mov dword [0x20574760], 0x4be39d3c
mov dword [0x20574718], 0x49bdab41
mov edx, r10d
jmp 0x200d353f
nop
mov rax, qword [rbp + 0x108]
mov eax, dword [rax]
test eax, eax
js 0x200d3a5f
nop
mov edi, dword [rbp + 0x118]
mov rsi, rdi
shl rsi, 0x20
or rsi, rdi
movabs rcx, 0x2951a02c1c9695d5
xor rcx, rsi
mov rbx, rdi
shl rbx, 0x1f
xor rbx, rdi
movabs rdx, 0xafc81840f1373b49
xor rdx, rbx
mov r8, rdi
shl r8, 0x1b
xor r8, rdi
movabs r9, 0xd27692e913696a2a
xor r9, r8
mov r10, rdi
shl r10, 0x23
or r10, rdi
movabs r11, 0xe80441a75f1347f9
xor r11, r10
add r11, r9
mov r15, rdi
shl r15, 0x1e
xor r15, rdi
movabs r9, 0x5377b0d78ec8c4b6
xor r9, r15
add r9, rdx
add r9, r11
movabs rdx, 0xfffffffc304d5a43
xor rdx, r10
add rdx, rcx
mov rcx, r15
xor rcx, 0x4fb2a5bc
movabs r10, 0xfffffffea0ecb806
mov qword [rbp + 0x100], rsi
xor r10, rsi
add r10, rdx
mov rdx, qword [rbp + 0xd8]
add rcx, qword [rdx + 0x398]
add r10, r9
add rcx, r10
sub rcx, qword [rdx + 0x390]
add rcx, 4
shr rcx, 2
cmp eax, ecx
jge 0x200d3a5f
nop
mov rcx, qword [rdx + 0x348]
lea rdx, [rax + rax*2]
mov rsi, rdi
shl rsi, 0x22
or rsi, rdi
movabs r9, 0xb50812cba1926b2c
xor r9, rsi
mov r10, rdi
shl r10, 0x1d
movabs rax, 0x5994d9df9e6d94d3
xor rax, rdi
xor rax, r10
add rax, r9
add rax, qword [rcx + rdx*8 + 8]
sub rax, qword [rcx + rdx*8]
inc rax
movabs rcx, 0x13fcd27804ff346e
xor rcx, rsi
cqo
idiv rcx
movabs rcx, 0x13fcd2784ff34b6
mov qword [rbp + 0xf0], r15
xor rcx, r15
imul rcx, rax
movabs rax, 0xd8065b0fb00cb65
xor rax, rbx
xor rax, rcx
mov r15, rdi
shl r15, 0x1c
xor r15, rdi
movabs rdx, 0x4ff349e4ff349a
xor rdx, r15
and rdx, rax
movabs rax, 0x27f9a4f4ff349a
xor r8, rax
xor r8, rcx
or r8, rdx
mov rcx, rbp
mov rdx, r8
call fcn.200d3d90
nop
mov qword [rbp + 0xc8], r13
mov dword [rbp + 0x98], r12d
mov r14, qword [rbp + 0x10]
test r14, r14
je 0x200d388e
mov r14, qword [rbp + 8]
mov r9, qword [rbp + 0x108]
movsxd rax, dword [r9]
mov r10, qword [rbp + 0xd8]
mov rcx, qword [r10 + 0x348]
lea rax, [rax + rax*2]
movabs rdx, 0xb7eec4936394c225
mov r11, qword [rbp + 0x100]
xor rdx, r11
movabs r8, 0x89033529eaecb94a
xor r15, r8
add r15, rdx
movabs rdx, 0x654febe7f51346b5
xor rsi, rdx
movabs rdx, 0x4e9195bd9c6b3dda
xor rbx, rdx
add rsi, qword [rcx + rax*8 + 8]
add rbx, r15
add rsi, rbx
sub rsi, qword [rcx + rax*8]
add rsi, 2
movabs r13, 0x4ff349e04ff346e
xor r13, r11
mov rax, rsi
cqo
idiv r13
mov dword [r14], eax
movsxd rax, dword [r9]
mov rcx, qword [r10 + 0x348]
lea rax, [rax + rax*2]
mov r8, qword [rcx + rax*8]
mov rax, qword [rcx + rax*8 + 8]
sub rax, r8
cqo
idiv r13
test eax, eax
nop
mov edx, dword [rbp + 0x114]
mov r12d, dword [rbp + 0xfc]
jle 0x200d3a2f
movabs rax, 0x4ff349e04ff34b6
xor qword [rbp + 0x100], rax
mov rax, rdi
shl rax, 0x24
or rax, rdi
movabs rcx, 0x4ff349e004ff34be
xor rcx, rax
mov qword [rbp + 0x90], rcx
movabs rax, 0x13fcd2784ff34be
xor qword [rbp + 0xf0], rax
add r14, 4
mov edi, 8
xor r15d, r15d
nop word cs:[rax + rax]
add r8, rdi
mov rcx, qword [0x20573c50]
mov eax, dword [0x20573c14]
xor eax, edx
sub eax, r12d
cdqe
add rax, rcx
mov rcx, r14
mov rdx, r8
mov r8, qword [rbp + 0x100]
mov rbx, r9
mov rsi, r14
mov r14, r10
call qword [case.0x200c66ec.0]
mov r10, r14
mov r14, rsi
mov r9, rbx
movsxd rax, dword [rbx]
mov rcx, qword [r10 + 0x348]
lea rax, [rax + rax*2]
mov r8, qword [rcx + rax*8]
mov rax, qword [rcx + rax*8 + 8]
sub rax, r8
cqo
idiv r13
mov edx, dword [rbp + 0x114]
mov rcx, qword [rbp + 0x90]
shl rax, cl
mov rcx, qword [rbp + 0xf0]
sar rax, cl
inc r15
add r14, 0x28
add rdi, 0xf0
cmp r15, rax
jl 0x200d39a0
nop
mov rcx, qword [rbp + 0x10]
mov rax, rcx
mov qword [rbp + 0xe8], rcx
test rcx, rcx
mov r13, qword [rbp + 0xc8]
je 0x200d3a55
mov rax, qword [rbp + 8]
mov qword [rbp + 0xe8], rax
nop
mov r12d, dword [rbp + 0x98]
jmp 0x200d3a68
xor eax, eax
mov qword [rbp + 0xe8], rax
nop
mov esi, dword [rbp + 0x118]
mov rax, rsi
shl rax, 0x24
or rax, rsi
movabs rcx, 0x4ff349e004df349e
xor rcx, rax
xor edi, edi
cmp qword [rbp + 0x40], 0
cmove rdi, rcx
cmp qword [0x205ec058], 0
jne 0x200d3ad6
mov rax, rsi
shl rax, 0x1c
movabs rcx, 0x4ff349e4ff35fe
xor rcx, rsi
xor rcx, rax
call fcn.200782b0
nop
mov qword [rbp + 0x118], rax
mov rcx, rax
call fcn.200d8870
nop
mov rax, qword [rbp + 0x118]
mov qword [0x205ec058], rax
nop
mov r11, qword [rbp + 0x108]
mov rdx, qword [r11 + 0x38]
mov rax, rsi
shl rax, 0x20
or rax, rsi
movabs rcx, 0x4ff349e04ff3491
xor rcx, rax
cmp qword [r11 + 0x60], rcx
jbe 0x200d3b05
mov rax, qword [r11 + 0x48]
jmp 0x200d3b09
lea rax, [r11 + 0x48]
or r13, rdi
mov rcx, qword [0x205ec058]
movsxd r8, dword [r11 + 0xc]
mov r9, rsi
shl r9, 0x1e
movabs r10, 0x13fcd2784ff3491
xor r10, rsi
xor r10, r9
cmp rdx, r10
jbe 0x200d3b39
mov rdx, qword [r11 + 0x20]
jmp 0x200d3b3d
lea rdx, [r11 + 0x20]
nop
mov r9, qword [rbp + 0xe8]
mov qword [rsp + 0x38], r9
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], rdx
mov edx, dword [rbp + 0xe0]
mov r8, qword [rbp + 0x40]
mov r9, r13
call fcn.200d8800
lea rcx, [rax - 1]
mov rdx, rsi
shl rdx, 0x22
or rdx, rsi
movabs r8, 0x13fcd27804ff349b
xor r8, rdx
mov esi, 2
cmp rcx, r8
jae 0x200d3b9c
lea rcx, [0x20470e00]
mov rsi, qword [rcx + rax*8 - 8]
nop
mov rax, qword [rbp + 0xd8]
mov byte [rax + 0x6ef], 1
mov rax, qword [rbp + 0x108]
cmp byte [rax + 0x68], 0
je 0x200d3bd4
nop
test dword [0x205eb87e], r12d
jne 0x200d3bc7
call fcn.200d8810
call fcn.20089060
mov rcx, rax
call fcn.200a7a00
nop
mov rdi, qword [rbp - 0x18]
mov qword [rdi], rsi
mov rcx, qword [0x20573c20]
mov eax, dword [rbp + 0x114]
or eax, dword [0x20573c18]
sub eax, dword [rbp + 0xfc]
cdqe
add rax, rcx
mov rcx, rbp
call qword [case.0x200c66ec.0]
mov rax, rdi
add rsp, 0x1a8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call fcn.200782d0
int3