Function at 0x1400b57a0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
movaps xmmword [rbp - 0x10], xmm6
mov qword [rbp - 0x18], 0xfffffffffffffffe
mov bl, r8b
mov dil, dl
mov rsi, rcx
add rcx, 0xd8
mov qword [rbp - 0x28], rcx
mov edx, 0x51aea63f
call fcn.1400fdc60
mov rax, qword [rsi]
mov rax, qword [rax + 0x20]
lea rdx, [0x14055278f]
mov rcx, rsi
call qword [case.0x140119ecb.0]
test al, al
je 0x1400b584a
test dil, dil
je 0x1400b5817
mov rax, qword [rsi]
mov rax, qword [rax + 0x28]
mov rcx, rsi
call qword [case.0x140119ecb.0]
test al, al
je 0x1400b5e3a
mov sil, 1
test bl, bl
je 0x1400b6ad3
mov rbx, qword [0x14055f1a0]
test rbx, rbx
je 0x1400b6ad3
mov rax, qword [rbx + 0x20]
mov r13, qword [rax]
cmp r13, rax
je 0x1400b6ad3
xorps xmm6, xmm6
jmp 0x1400b5c8d
mov byte [0x14055f410], 1
cmp qword [0x14055f270], 0
jne 0x1400b587c
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rsi, qword [0x14055f270]
lea rdi, [rsi + 0x558]
mov rcx, qword [rsi + 0x558]
test rcx, rcx
je 0x1400b5942
cmp dword [rsi + 0x574], 1
jne 0x1400b58b1
mov r8, qword [rsi + 0x560]
xor edx, edx
call fcn.140404f80
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400b58c9
mov edx, 0x8b5bd02e
mov r8d, 0xc8f3944
call fcn.1400ac440
xorps xmm0, xmm0
mov rax, qword [0x14055f270]
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
movzx ecx, byte [0x1404f3720]
mov edx, ecx
xor dl, 9
and cl, 9
add cl, cl
add cl, dl
mov byte [rsi + 0x570], cl
movaps xmm0, xmmword [0x140420410]
movups xmmword [0x1405527ff], xmm0
movups xmmword [0x1405527ef], xmm0
movups xmmword [0x1405527df], xmm0
movups xmmword [0x1405527cf], xmm0
test rax, rax
jne 0x1400b5982
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
jmp 0x1400b5982
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
movzx eax, byte [0x1404f3720]
add al, 9
mov byte [rsi + 0x570], al
movaps xmm0, xmmword [0x140420410]
movups xmmword [0x1405527ff], xmm0
movups xmmword [0x1405527ef], xmm0
movups xmmword [0x1405527df], xmm0
movups xmmword [0x1405527cf], xmm0
mov rsi, qword [0x14055f270]
mov rcx, qword [rsi + 0x370]
mov rax, qword [rsi + 0x378]
sub rax, rcx
shr rax, 5
imul eax, eax, 0xcccccccd
test eax, eax
jle 0x1400b5a4b
xor edi, edi
movabs rbx, 0xc30fae27f90b63cb
movabs r14, 0x430fae27f90b63cb
jmp 0x1400b59dc
cqo
idiv r8
cdqe
cmp rdi, rax
jge 0x1400b5a4b
lea rax, [rdi + rdi*4]
shl rax, 5
cmp dword [rcx + rax + 0x88], 0
jne 0x1400b59f9
cmp qword [rcx + rax + 0x88], 0
je 0x1400b5a10
lea r8, [rcx + rax]
add r8, 0x80
mov edx, dword [rcx + rax + 0x24]
mov rcx, rsi
call fcn.140300b00
inc rdi
mov rcx, qword [rsi + 0x370]
mov rax, qword [rsi + 0x378]
sub rax, rcx
mov rdx, qword [0x1404f3718]
mov r8, rdx
xor r8, rbx
and rdx, r14
lea r8, [r8 + rdx*2]
mov rdx, rax
or rdx, r8
shr rdx, 0x20
jne 0x1400b59d0
xor edx, edx
div r8d
jmp 0x1400b59d5
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
movzx ecx, byte [0x1404f3718]
add cl, 0x2d
shr rax, cl
test eax, eax
jle 0x1400b5a95
xor edi, edi
nop dword [rax]
mov rcx, rsi
mov edx, edi
xor r8d, r8d
call fcn.140300b00
inc edi
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
shr rax, 2
cmp edi, eax
jl 0x1400b5a70
mov rax, qword [0x14055f1a0]
test rax, rax
je 0x1400b5ac8
mov rsi, qword [rax + 0x20]
mov rdi, qword [rsi]
cmp rdi, rsi
jne 0x1400b5b6c
mov rax, qword [0x14055f1a0]
mov rax, qword [rax + 0x30]
mov rcx, qword [rax]
cmp rcx, rax
jne 0x1400b5c0c
cmp qword [0x14055f270], 0
jne 0x1400b5af3
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rdi, qword [0x14055f270]
mov rsi, qword [rdi + 0x3b0]
test rsi, rsi
je 0x1400b5b16
mov rcx, rsi
call fcn.14009ab60
mov rcx, rsi
call fcn.1400ac450
mov qword [rdi + 0x3b0], 0
mov rcx, qword [0x14055f508]
test rcx, rcx
je 0x1400b6ad1
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140119ecb.0]
mov qword [0x14055f508], 0
jmp 0x1400b6ad1
mov rdi, rax
cmp rax, rsi
je 0x1400b5ab1
mov dword [rdi + 0x30], 0
mov dword [rdi + 0x28], 0
mov r8, qword [rdi + 0x58]
test r8, r8
je 0x1400b5b8e
mov rcx, qword [rdi + 0x50]
mov dl, 1
call fcn.140404f80
mov r8, qword [rdi + 0x98]
test r8, r8
je 0x1400b5ba8
mov rcx, qword [rdi + 0x90]
mov dl, 1
call fcn.140404f80
mov rcx, qword [rdi + 0x10]
cmp byte [rcx + 0x19], 0
je 0x1400b5be0
nop word cs:[rax + rax]
mov rax, qword [rdi + 8]
cmp byte [rax + 0x19], 0
jne 0x1400b5b60
mov rcx, rdi
mov rdi, rax
cmp rcx, qword [rax + 0x10]
je 0x1400b5bc0
mov rax, rdi
jmp 0x1400b5b60
mov rax, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1400b5be0
jmp 0x1400b5b60
mov rdx, rcx
nop word cs:[rax + rax]
mov rcx, rdx
cmp rdx, rax
je 0x1400b5ac8
mov dword [rcx + 0x20], 0xffffffff
mov r8, qword [rcx + 0x10]
cmp byte [r8 + 0x19], 0
je 0x1400b5c60
mov rdx, qword [rcx + 8]
movzx r8d, byte [0x1404f3720]
add r8b, 8
cmp byte [rdx + 0x19], r8b
jne 0x1400b5c00
nop word cs:[rax + rax]
mov r8, rcx
mov rcx, rdx
cmp r8, qword [rdx + 0x10]
jne 0x1400b5bf1
mov rdx, qword [rcx + 8]
cmp byte [rdx + 0x19], 0
je 0x1400b5c40
jmp 0x1400b5c00
mov rdx, r8
mov r8, qword [r8]
cmp byte [r8 + 0x19], 0
je 0x1400b5c60
jmp 0x1400b5c00
mov rax, r13
nop word cs:[rax + rax]
mov r13, rax
cmp rax, qword [rbx + 0x20]
je 0x1400b6ad3
mov eax, dword [r13 + 0x28]
not eax
or eax, 0xfeffffff
cmp eax, 0xffffffff
sete al
or al, byte [0x14055f0f8]
mov r12, qword [r13 + 0x58]
mov rcx, r12
test r12, r12
je 0x1400b5cb4
mov rcx, qword [r13 + 0x50]
mov r15d, dword [r13 + 0x44]
test al, 1
mov eax, 0
cmovne r12d, eax
mov r14d, 0
cmove r14, rcx
cmp qword [0x14055f1b8], 0
jne 0x1400b5d2c
mov ecx, 0xe8
call fcn.1403dccdc
lea rcx, [0x140420878]
mov qword [rax], rcx
mov qword [rax + 0x28], 0
mov qword [rax + 0x30], 0xf
mov byte [rax + 0x18], 0
lea rcx, [0x1404208d8]
mov qword [rax + 0x10], rcx
movzx ecx, byte [0x1404f3720]
add cl, 8
mov byte [rax + 8], cl
mov byte [rax + 9], 0
mov word [rax + 0xa], 0
movups xmmword [rax + 0x38], xmm6
mov qword [0x14055f1b8], rax
mov eax, dword [r13 + 0x28]
mov ecx, eax
not ecx
mov edx, ecx
and edx, 0xffeffff
mov r8d, eax
and r8d, 0xf0010000
or r8d, edx
xor r8d, ecx
and r8d, eax
cmp r8d, 0x10000
jne 0x1400b5dc6
mov rax, qword [0x14055f1b8]
mov edi, dword [r13 + 0x38]
add rdi, qword [rax + 0x38]
cmp qword [0x14055f270], 0
jne 0x1400b5d92
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rcx, qword [0x14055f270]
mov eax, dword [r13 + 0x44]
mov r8d, dword [r13 + 0x3c]
mov r9d, dword [r13 + 0x40]
mov dword [rsp + 0x30], r12d
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], eax
mov rdx, rdi
call fcn.14012aeb0
test al, al
mov eax, 0
cmove r15d, eax
cmp r15d, dword [r13 + 0x44]
jne 0x1400b613c
mov rcx, qword [r13 + 0x10]
cmp byte [rcx + 0x19], 0
je 0x1400b5e20
mov rax, qword [r13 + 8]
cmp byte [rax + 0x19], 0
jne 0x1400b5c80
nop dword [rax + rax]
mov rcx, r13
mov r13, rax
cmp rcx, qword [rax + 0x10]
jne 0x1400b5c6f
mov rax, qword [r13 + 8]
movzx ecx, byte [0x1404f3720]
add cl, 8
cmp byte [rax + 0x19], cl
je 0x1400b5df0
jmp 0x1400b5c80
mov rax, rcx
mov rcx, qword [rcx]
movzx edx, byte [0x1404f3720]
add dl, 8
cmp byte [rcx + 0x19], dl
je 0x1400b5e20
jmp 0x1400b5c80
movaps xmm0, xmmword [0x140420410]
movups xmmword [0x1405527ff], xmm0
movups xmmword [0x1405527ef], xmm0
movups xmmword [0x1405527df], xmm0
movups xmmword [0x1405527cf], xmm0
mov rcx, qword [0x14055f508]
test rcx, rcx
je 0x1400b5e85
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140119ecb.0]
mov qword [0x14055f508], 0
cmp qword [0x14055f270], 0
jne 0x1400b5eb0
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rsi, qword [0x14055f270]
lea rdi, [rsi + 0x558]
mov rcx, qword [rsi + 0x558]
test rcx, rcx
je 0x1400b5ef9
cmp dword [rsi + 0x574], 1
jne 0x1400b5ee1
mov r8, qword [rsi + 0x560]
xor edx, edx
call fcn.140404f80
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400b5ef9
mov edx, 0x8b5bd02e
mov r8d, 0xc8f3944
call fcn.1400ac440
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
movzx eax, byte [0x1404f3720]
add al, 9
mov byte [rsi + 0x570], al
mov byte [0x14055f410], 1
cmp qword [0x14055f270], 0
jne 0x1400b5f48
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rsi, qword [0x14055f270]
mov rax, qword [rsi + 0x370]
mov rcx, qword [rsi + 0x378]
sub rcx, rax
shr rcx, 5
imul ecx, ecx, 0xcccccccd
test ecx, ecx
jle 0x1400b5fe8
xor edi, edi
movabs rbx, 0xcccccccccccccccd
jmp 0x1400b5fc9
lea r8, [rax + rcx]
add r8, 0x80
mov edx, dword [rax + rcx + 0x24]
mov rcx, rsi
call fcn.140300b00
mov rax, qword [rsi + 0x370]
mov rdx, qword [rsi + 0x378]
sub rdx, rax
sar rdx, 5
imul rdx, rbx
movzx ecx, byte [0x1404f3718]
add cl, 0x4b
shl rdx, cl
inc rdi
sar rdx, 0x20
cmp rdi, rdx
jge 0x1400b5fe8
lea rcx, [rdi + rdi*4]
shl rcx, 5
cmp dword [rax + rcx + 0x88], 0
jne 0x1400b5f80
cmp qword [rax + rcx + 0x88], 0
je 0x1400b5f97
jmp 0x1400b5f80
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
shr rax, 2
test eax, eax
jle 0x1400b602e
xor edi, edi
mov rcx, rsi
mov edx, edi
xor r8d, r8d
call fcn.140300b00
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
inc edi
movzx ecx, byte [0x1404f3718]
add cl, 0x2d
shr rax, cl
cmp edi, eax
jl 0x1400b6000
mov rax, qword [0x14055f1a0]
test rax, rax
je 0x1400b60de
mov rdi, qword [rax + 0x20]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x1400b60de
mov esi, 1
jmp 0x1400b606a
inc esi
mov rbx, rax
cmp rax, rdi
je 0x1400b60de
mov dword [rbx + 0x30], 0
mov dword [rbx + 0x28], 0
mov r8, qword [rbx + 0x58]
test r8, r8
je 0x1400b608c
mov rcx, qword [rbx + 0x50]
mov edx, esi
call fcn.140404f80
mov r8, qword [rbx + 0x98]
test r8, r8
je 0x1400b60a6
mov rcx, qword [rbx + 0x90]
mov edx, esi
call fcn.140404f80
mov rcx, qword [rbx + 0x10]
cmp byte [rcx + 0x19], 0
je 0x1400b60d0
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x1400b6060
mov rcx, rbx
mov rbx, rax
cmp rcx, qword [rax + 0x10]
je 0x1400b60b0
mov rax, rbx
jmp 0x1400b6060
mov rax, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1400b60d0
jmp 0x1400b6060
cmp qword [0x14055f270], 0
jne 0x1400b6109
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rdi, qword [0x14055f270]
mov rsi, qword [rdi + 0x3b0]
test rsi, rsi
je 0x1400b612c
mov rcx, rsi
call fcn.14009ab60
mov rcx, rsi
call fcn.1400ac450
mov qword [rdi + 0x3b0], 0
jmp 0x1400b6ad1
cmp qword [0x14055f270], 0
jne 0x1400b6167
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rdi, qword [0x14055f270]
mov rsi, qword [rdi + 0x3b0]
test rsi, rsi
je 0x1400b618a
mov rcx, rsi
call fcn.14009ab60
mov rcx, rsi
call fcn.1400ac450
mov qword [rdi + 0x3b0], 0
movzx eax, byte [0x1404f3720]
add al, 9
mov byte [0x14055f410], al
mov rcx, qword [0x14055f508]
test rcx, rcx
je 0x1400b61cc
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140119ecb.0]
mov qword [0x14055f508], 0
mov rax, qword [0x14055f1a0]
test rax, rax
je 0x1400b627e
mov rdi, qword [rax + 0x20]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x1400b627e
mov esi, 1
jmp 0x1400b620a
inc esi
mov rbx, rax
cmp rax, rdi
je 0x1400b627e
mov dword [rbx + 0x30], 0
mov dword [rbx + 0x28], 0
mov r8, qword [rbx + 0x58]
test r8, r8
je 0x1400b622c
mov rcx, qword [rbx + 0x50]
mov edx, esi
call fcn.140404f80
mov r8, qword [rbx + 0x98]
test r8, r8
je 0x1400b6246
mov rcx, qword [rbx + 0x90]
mov edx, esi
call fcn.140404f80
mov rcx, qword [rbx + 0x10]
cmp byte [rcx + 0x19], 0
je 0x1400b6270
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x1400b6200
mov rcx, rbx
mov rbx, rax
cmp rcx, qword [rax + 0x10]
je 0x1400b6250
mov rax, rbx
jmp 0x1400b6200
mov rax, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1400b6270
jmp 0x1400b6200
cmp qword [0x14055f270], 0
jne 0x1400b62a9
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rax, qword [0x14055f270]
mov r8, qword [rax + 0x560]
test r8, r8
je 0x1400b62f5
mov rcx, qword [rax + 0x558]
mov dl, 1
call fcn.140404f80
cmp qword [0x14055f270], 0
jne 0x1400b62f5
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rsi, qword [0x14055f270]
mov rax, qword [rsi + 0x370]
mov rcx, qword [rsi + 0x378]
sub rcx, rax
shr rcx, 5
imul ecx, ecx, 0xcccccccd
mov edx, 0x2ea84cd
add edx, dword [0x1404f3710]
cmp ecx, edx
jle 0x1400b638c
xor edi, edi
jmp 0x1400b636d
lea r8, [rax + rcx]
add r8, 0x80
mov edx, dword [rax + rcx + 0x24]
mov rcx, rsi
call fcn.140300b00
inc rdi
mov rax, qword [rsi + 0x370]
mov rcx, qword [rsi + 0x378]
sub rcx, rax
shr rcx, 5
imul ecx, ecx, 0xcccccccd
movsxd rcx, ecx
cmp rdi, rcx
jge 0x1400b638c
lea rcx, [rdi + rdi*4]
shl rcx, 5
cmp dword [rax + rcx + 0x88], 0
jne 0x1400b6330
cmp qword [rax + rcx + 0x88], 0
je 0x1400b6347
jmp 0x1400b6330
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
shr rax, 2
test eax, eax
jle 0x1400b63d5
xor edi, edi
nop word cs:[rax + rax]
mov rcx, rsi
mov edx, edi
xor r8d, r8d
call fcn.140300b00
inc edi
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
shr rax, 2
cmp edi, eax
jl 0x1400b63b0
movaps xmm6, xmmword [0x140420410]
movups xmmword [0x1405527ff], xmm6
movups xmmword [0x1405527ef], xmm6
movups xmmword [0x1405527df], xmm6
movups xmmword [0x1405527cf], xmm6
mov rcx, qword [0x14055f508]
test rcx, rcx
je 0x1400b6420
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140119ecb.0]
mov qword [0x14055f508], 0
movups xmmword [0x1405527ff], xmm6
movups xmmword [0x1405527ef], xmm6
movups xmmword [0x1405527df], xmm6
movups xmmword [0x1405527cf], xmm6
mov byte [0x14055f410], 1
cmp qword [0x14055f270], 0
jne 0x1400b646e
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rsi, qword [0x14055f270]
lea rdi, [rsi + 0x558]
mov rcx, qword [rsi + 0x558]
test rcx, rcx
je 0x1400b6504
cmp dword [rsi + 0x574], 1
jne 0x1400b649f
mov r8, qword [rsi + 0x560]
xor edx, edx
call fcn.140404f80
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400b64b7
mov edx, 0x8b5bd02e
mov r8d, 0xc8f3944
call fcn.1400ac440
xorps xmm0, xmm0
mov rax, qword [0x14055f270]
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
movzx ecx, byte [0x1404f3720]
add cl, 9
mov byte [rsi + 0x570], cl
test rax, rax
jne 0x1400b6519
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
jmp 0x1400b6519
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
mov byte [rsi + 0x570], 1
mov rsi, qword [0x14055f270]
mov rax, qword [rsi + 0x370]
mov rcx, qword [rsi + 0x378]
sub rcx, rax
shr rcx, 5
imul ecx, ecx, 0xcccccccd
test ecx, ecx
jle 0x1400b65b2
xor edi, edi
jmp 0x1400b6593
lea r8, [rax + rcx]
add r8, 0x80
mov edx, dword [0x14055f0fc]
add edx, dword [rax + rcx + 0x24]
mov rcx, rsi
call fcn.140300b00
inc rdi
mov rax, qword [rsi + 0x370]
mov rcx, qword [rsi + 0x378]
sub rcx, rax
shr rcx, 5
imul ecx, ecx, 0xcccccccd
movsxd rcx, ecx
cmp rdi, rcx
jge 0x1400b65b2
lea rcx, [rdi + rdi*4]
shl rcx, 5
cmp dword [rax + rcx + 0x88], 0
jne 0x1400b6550
cmp qword [rax + rcx + 0x88], 0
je 0x1400b656d
jmp 0x1400b6550
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
shr rax, 2
test eax, eax
jle 0x1400b6601
xor edi, edi
nop word [rax + rax]
mov rcx, rsi
mov edx, edi
xor r8d, r8d
call fcn.140300b00
mov eax, dword [0x1404f3710]
add edi, eax
add edi, 0x2ea84ce
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
shr rax, 2
cmp edi, eax
jl 0x1400b65d0
mov rax, qword [0x14055f1a0]
test rax, rax
je 0x1400b66d6
mov rdi, qword [rax + 0x20]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x1400b66d6
mov esi, 1
jmp 0x1400b663e
inc esi
mov rbx, rax
cmp rax, rdi
je 0x1400b66d6
mov dword [rbx + 0x30], 0
mov dword [rbx + 0x28], 0
mov r8, qword [rbx + 0x58]
test r8, r8
je 0x1400b6660
mov rcx, qword [rbx + 0x50]
mov edx, esi
call fcn.140404f80
mov r8, qword [rbx + 0x98]
test r8, r8
je 0x1400b667a
mov rcx, qword [rbx + 0x90]
mov edx, esi
call fcn.140404f80
mov rcx, qword [rbx + 0x10]
cmp byte [rcx + 0x19], 0
je 0x1400b66b0
nop word cs:[rax + rax]
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
jne 0x1400b6630
mov rcx, rbx
mov rbx, rax
cmp rcx, qword [rax + 0x10]
je 0x1400b6690
mov rax, rbx
jmp 0x1400b6630
mov rax, rcx
mov rcx, qword [rcx]
movzx edx, byte [0x1404f3720]
mov r8d, edx
xor r8b, 8
and dl, 8
add dl, dl
add dl, r8b
cmp byte [rcx + 0x19], dl
je 0x1400b66b0
jmp 0x1400b6630
cmp qword [0x14055f270], 0
jne 0x1400b6701
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rdi, qword [0x14055f270]
mov rsi, qword [rdi + 0x3b0]
test rsi, rsi
je 0x1400b675c
mov rcx, rsi
call fcn.14009ab60
mov rcx, rsi
call fcn.1400ac450
cmp qword [0x14055f270], 0
mov qword [rdi + 0x3b0], 0
jne 0x1400b6767
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
jmp 0x1400b6767
mov qword [rdi + 0x3b0], 0
mov rdi, qword [0x14055f270]
mov rsi, qword [rdi + 0x3b0]
test rsi, rsi
je 0x1400b678a
mov rcx, rsi
call fcn.14009ab60
mov rcx, rsi
call fcn.1400ac450
mov qword [rdi + 0x3b0], 0
movzx eax, byte [0x1404f3720]
add al, 9
mov byte [0x14055f410], al
mov rcx, qword [0x14055f508]
test rcx, rcx
je 0x1400b67cc
mov rax, qword [rcx]
mov rax, qword [rax]
mov edx, 1
call qword [case.0x140119ecb.0]
mov qword [0x14055f508], 0
cmp qword [0x14055f270], 0
jne 0x1400b67f7
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
mov rsi, qword [0x14055f270]
lea rdi, [rsi + 0x558]
mov rcx, qword [rsi + 0x558]
test rcx, rcx
je 0x1400b6882
cmp dword [rsi + 0x574], 1
jne 0x1400b6828
mov r8, qword [rsi + 0x560]
xor edx, edx
call fcn.140404f80
mov rcx, qword [rdi]
test rcx, rcx
je 0x1400b6840
mov edx, 0x8b5bd02e
mov r8d, 0xc8f3944
call fcn.1400ac440
cmp qword [0x14055f270], 0
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
mov byte [rsi + 0x570], 1
jne 0x1400b6897
mov ecx, 0x700
call fcn.1403dccdc
mov qword [rbp - 0x20], rax
mov rcx, rax
call fcn.1400992b0
mov rax, qword [rbp - 0x20]
mov qword [0x14055f270], rax
jmp 0x1400b6897
xorps xmm0, xmm0
movups xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
mov byte [rsi + 0x570], 1
mov rsi, qword [0x14055f270]
mov rcx, qword [rsi + 0x370]
mov rax, qword [rsi + 0x378]
movabs r8, 0xc30fae27f90b63cb
add r8, qword [0x1404f3718]
sub rax, rcx
mov rdx, rax
or rdx, r8
shr rdx, 0x20
je 0x1400b68d3
cqo
idiv r8
jmp 0x1400b68d8
xor edx, edx
div r8d
test eax, eax
jle 0x1400b6989
xor edi, edi
movabs rbx, 0xa97d94af7006fa99
movabs r14, 0x297d94af7006fa99
movabs r15, 0x1992197889046893
jmp 0x1400b696a
lea r8, [rcx + rax]
add r8, 0x80
mov edx, dword [rcx + rax + 0x24]
mov rcx, rsi
call fcn.140300b00
mov rax, qword [0x1404f3718]
mov rcx, rax
xor rcx, rbx
and rax, r14
lea rax, [rcx + rax*2]
add rdi, rax
add rdi, qword [0x14055f100]
add rdi, r15
mov rcx, qword [rsi + 0x370]
mov rax, qword [rsi + 0x378]
sub rax, rcx
shr rax, 5
imul eax, eax, 0xcccccccd
cdqe
cmp rdi, rax
jge 0x1400b6989
lea rax, [rdi + rdi*4]
shl rax, 5
cmp dword [rcx + rax + 0x88], 0
jne 0x1400b6910
cmp qword [rcx + rax + 0x88], 0
je 0x1400b6927
jmp 0x1400b6910
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
shr rax, 2
test eax, eax
jle 0x1400b69d5
xor edi, edi
nop word cs:[rax + rax]
mov rcx, rsi
mov edx, edi
xor r8d, r8d
call fcn.140300b00
inc edi
mov rax, qword [rsi + 0x398]
sub rax, qword [rsi + 0x390]
shr rax, 2
cmp edi, eax
jl 0x1400b69b0
mov rax, qword [0x14055f1a0]
test rax, rax
je 0x1400b6ab5
mov rdi, qword [rax + 0x20]
mov rbx, qword [rdi]
cmp rbx, rdi
je 0x1400b6ab5
mov esi, 1
jmp 0x1400b6a18
mov rax, qword [rbx + 8]
cmp byte [rax + 0x19], 0
je 0x1400b6a80
inc esi
mov rbx, rax
cmp rax, rdi
je 0x1400b6ab5
mov dword [rbx + 0x30], 0
mov dword [rbx + 0x28], 0
mov r8, qword [rbx + 0x58]
test r8, r8
je 0x1400b6a3a
mov rcx, qword [rbx + 0x50]
mov edx, esi
call fcn.140404f80
mov r8, qword [rbx + 0x98]
test r8, r8
je 0x1400b6a54
mov rcx, qword [rbx + 0x90]
mov edx, esi
call fcn.140404f80
mov rcx, qword [rbx + 0x10]
movzx eax, byte [0x1404f3720]
add al, 8
cmp byte [rcx + 0x19], al
jne 0x1400b6a00
nop word cs:[rax + rax]
mov rax, rcx
mov rcx, qword [rcx]
cmp byte [rcx + 0x19], 0
je 0x1400b6a70
jmp 0x1400b6a0a
mov rcx, rbx
mov rbx, rax
cmp rcx, qword [rax + 0x10]
jne 0x1400b6aad
mov rax, qword [rbx + 8]
movzx ecx, byte [0x1404f3720]
mov edx, ecx
xor dl, 8
and cl, 8
add cl, cl
add cl, dl
cmp byte [rax + 0x19], cl
je 0x1400b6a80
jmp 0x1400b6a0a
mov rax, rbx
jmp 0x1400b6a0a
movups xmmword [0x1405527ff], xmm6
movups xmmword [0x1405527ef], xmm6
movups xmmword [0x1405527df], xmm6
movups xmmword [0x1405527cf], xmm6
xor esi, esi
mov rcx, qword [rbp - 0x28]
call fcn.14010c980
mov eax, esi
movaps xmm6, xmmword [rbp - 0x10]
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret