Function at 0x1400c9b00
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
push rbp
push rbx
lea rbp, [rsp - 0x4f]
sub rsp, 0xe8
mov r9d, dword [rcx + 0x4cc]
mov rbx, rcx
cmp dword [rcx + 0x4c8], r9d
je 0x1400c9b5c
lea rdx, [r9 + r9*2]
add rdx, rdx
mov eax, dword [rcx + rdx*8 + 0x4f4]
mov ecx, dword [rcx + rdx*8 + 0x4f8]
mov dword [r8], ecx
mov ecx, dword [rbx + rdx*8 + 0x4f4]
sub eax, r9d
mov dword [rbx + 0x4cc], ecx
add rsp, 0xe8
pop rbx
pop rbp
ret
xor eax, eax
mov qword [rsp + 0xd8], rdi
mov qword [rsp + 0xd0], r12
mov qword [rsp + 0xc8], r13
mov qword [rcx + 0x4c8], rax
cmp dword [rcx + 0x32f74], eax
jne 0x1400c9b9b
lea rdx, [rbp + 0x67]
call fcn.1400cdc60
mov r12d, dword [rbp + 0x67]
mov r8, qword [rbp + 0x77]
mov r13d, eax
jmp 0x1400c9ba9
mov r13d, dword [rcx + 0x4d0]
mov r12d, dword [rcx + 0x4d4]
mov edi, dword [rbx + 0x4d8]
mov dword [rbp - 0x6d], r12d
mov dword [rbp + 0x7f], r13d
cmp edi, 2
jae 0x1400c9bcd
mov dword [r8], 0xffffffff
mov eax, 1
jmp 0x1400cb076
mov rcx, qword [rbx + 0x30]
mov eax, 0x111
mov qword [rsp + 0xe0], rsi
cmp edi, eax
mov qword [rsp + 0xc0], r14
mov qword [rsp + 0xb8], r15
cmova edi, eax
call qword [rbx + SafeArrayPutElement]
movzx r14d, byte [rax - 1]
lea r10, [rax - 1]
lea rax, [rbp - 0x49]
mov r15, rbx
xor esi, esi
xor r11d, r11d
sub r15, rax
xor r9d, r9d
lea rax, [rbp - 0x49]
mov r8, r10
add rax, r9
mov ecx, dword [rax + r15 + 0x32f78]
mov dword [rax], ecx
inc ecx
sub r8, rcx
cmp r14b, byte [r8]
jne 0x1400c9c74
movzx eax, byte [r8 + 1]
cmp byte [r10 + 1], al
jne 0x1400c9c74
mov edx, 2
cmp edi, edx
jbe 0x1400c9c62
lea rcx, [r10 + 2]
sub r8, r10
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
cmp byte [rcx], al
jne 0x1400c9c62
inc edx
inc rcx
cmp edx, edi
jb 0x1400c9c50
mov eax, esi
mov dword [rbp + r9 - 0x21], edx
cmp edx, dword [rbp + rax*4 - 0x21]
jbe 0x1400c9c7d
mov esi, r11d
jmp 0x1400c9c7d
mov dword [rbp + r9 - 0x21], 0
inc r11d
add r9, 4
cmp r11d, 4
jb 0x1400c9c11
mov ecx, dword [rbx + 0x32f70]
mov eax, esi
mov r15d, dword [rbp + rax*4 - 0x21]
mov dword [rbp + 0x67], r15d
cmp r15d, ecx
jb 0x1400c9cc3
mov rdx, qword [rbp + 0x77]
mov dword [rdx], esi
lea edx, [r15 - 1]
test edx, edx
je 0x1400c9cbb
mov rcx, qword [rbx + 0x30]
add dword [rbx + 0x32f74], edx
call qword [rbx + 0x28]
mov eax, r15d
jmp 0x1400cb05e
cmp r13d, ecx
jb 0x1400c9cfa
mov rdx, qword [rbp + 0x77]
lea eax, [r12 - 1]
mov eax, dword [rbx + rax*4 + 0x326dc]
add eax, 4
mov dword [rdx], eax
lea edx, [r13 - 1]
test edx, edx
je 0x1400c9cf2
mov rcx, qword [rbx + 0x30]
add dword [rbx + 0x32f74], edx
call qword [rbx + 0x28]
mov eax, r13d
jmp 0x1400cb05e
mov ecx, dword [rbp - 0x49]
mov rax, r10
inc ecx
sub rax, rcx
movzx edi, byte [rax]
cmp r13d, 2
jae 0x1400c9d2d
cmp r14b, dil
je 0x1400c9d2d
cmp r15d, 2
jae 0x1400c9d2d
mov rdx, qword [rbp + 0x77]
mov eax, 1
mov dword [rdx], 0xffffffff
jmp 0x1400cb05e
mov eax, dword [rbx + 0x32f88]
mov ecx, 8
mov dword [rbx + 0x4e0], eax
sub cl, byte [rbx + 0x33bd4]
mov eax, dword [rbp + 0x6f]
and eax, dword [rbx + 0x33be0]
movzx edx, byte [r10 - 1]
mov r15d, dword [rbx + 0x33be4]
mov esi, dword [rbx + 0x32f88]
and r15d, dword [rbp + 0x6f]
shr edx, cl
mov ecx, dword [rbx + 0x33bd4]
shl eax, cl
add edx, eax
mov rax, qword [rbx + 0x33be8]
lea ecx, [rdx + rdx*2]
movzx edx, r14b
shl ecx, 8
lea rcx, [rax + rcx*2]
cmp esi, 7
jb 0x1400c9d9b
lea r9, [rbx + 0x324dc]
movzx r8d, dil
call fcn.1400cbc50
jmp 0x1400c9da7
lea r8, [rbx + 0x324dc]
call fcn.1400cbc00
mov r9d, eax
mov r12d, r15d
mov rax, rsi
shl rax, 4
add rax, r12
movzx eax, word [rbx + rax*2 + 0x33bf0]
shr rax, 4
mov r8d, dword [rbx + rax*4 + 0x324dc]
mov dword [rbx + 0x528], 0xffffffff
mov dword [rbx + 0x514], 0
add r8d, r9d
mov dword [rbx + 0x50c], r8d
mov edx, dword [rbx + 0x32f88]
mov eax, edx
shl rax, 4
add rax, r12
movzx ecx, word [rbx + rax*2 + 0x33bf0]
movzx eax, word [rbx + rdx*2 + 0x33d70]
xor rcx, 0x7f0
xor rax, 0x7f0
shr rax, 4
shr rcx, 4
mov ecx, dword [rbx + rcx*4 + 0x324dc]
mov r9d, dword [rbx + rax*4 + 0x324dc]
add r9d, ecx
mov dword [rbp - 0x51], ecx
cmp dil, r14b
jne 0x1400c9e88
mov eax, edx
shl rax, 4
add rax, r12
movzx ecx, word [rbx + rax*2 + 0x33dd0]
movzx eax, word [rbx + rdx*2 + 0x33d88]
shr rcx, 4
shr rax, 4
mov edx, dword [rbx + rcx*4 + 0x324dc]
add edx, dword [rbx + rax*4 + 0x324dc]
add edx, r9d
cmp edx, r8d
jae 0x1400c9e88
mov dword [rbx + 0x50c], edx
mov dword [rbx + 0x528], 0
mov dword [rbx + 0x514], 0
mov ecx, dword [rbp + 0x67]
cmp r13d, ecx
cmovae ecx, r13d
mov dword [rbp + 0x67], ecx
cmp ecx, 2
jae 0x1400c9eb0
mov eax, dword [rbx + 0x528]
mov rdx, qword [rbp + 0x77]
mov dword [rdx], eax
mov eax, 1
jmp 0x1400cb05e
mov eax, dword [rbp - 0x49]
mov dword [rbx + 0x524], 0
mov edx, ecx
mov dword [rbx + 0x4fc], eax
mov eax, dword [rbp - 0x45]
mov dword [rbx + 0x500], eax
mov eax, dword [rbp - 0x41]
mov dword [rbx + 0x504], eax
mov eax, dword [rbp - 0x3d]
mov dword [rbx + 0x508], eax
mov eax, edx
dec edx
lea rcx, [rax + rax*2]
add rcx, rcx
mov dword [rbx + rcx*8 + 0x4dc], 0x40000000
cmp edx, 2
jae 0x1400c9ee0
xor esi, esi
lea r14, [rbp - 0x21]
mov r13d, r9d
mov edi, dword [r14]
cmp edi, 2
jb 0x1400c9f80
mov r8d, dword [rbx + 0x32f88]
mov r9d, r15d
mov edx, esi
mov rcx, rbx
call fcn.1400cb400
add eax, r13d
imul r9, r12, 0x110
nop word [rax + rax]
lea edx, [rdi - 2]
mov ecx, edi
add rdx, r9
mov r8d, dword [rbx + rdx*4 + 0x38ea0]
lea rdx, [rcx + rcx*2]
add rdx, rdx
add r8d, eax
cmp r8d, dword [rbx + rdx*8 + 0x4dc]
jae 0x1400c9f79
mov dword [rbx + rdx*8 + 0x4dc], r8d
mov dword [rbx + rdx*8 + 0x4f4], 0
mov dword [rbx + rdx*8 + 0x4f8], esi
mov dword [rbx + rdx*8 + 0x4e4], 0
dec edi
cmp edi, 2
jae 0x1400c9f30
inc esi
add r14, 4
cmp esi, 4
jb 0x1400c9f04
mov r10d, dword [rbp - 0x21]
mov eax, dword [rbx + 0x32f88]
mov r15d, dword [rbp - 0x51]
movzx ecx, word [rbx + rax*2 + 0x33d70]
shr rcx, 4
add r15d, dword [rbx + rcx*4 + 0x324dc]
cmp r10d, 2
inc r10d
jae 0x1400c9fc0
mov r10d, 2
cmp r10d, dword [rbp + 0x7f]
ja 0x1400ca0e1
lea rdx, [rbx + 0x326dc]
xor r9d, r9d
cmp r10d, dword [rdx]
jbe 0x1400c9fea
nop dword [rax]
add r9d, 2
cmp r10d, dword [rdx + r9*4]
ja 0x1400c9fe0
mov r13d, dword [rbp - 0x6d]
imul r14, r12, 0x110
nop word [rax + rax]
lea eax, [r9 + 1]
lea ecx, [r10 - 2]
mov esi, 3
mov edi, dword [rdx + rax*4]
mov eax, ecx
add rax, r14
mov r11d, dword [rbx + rax*4 + 0x34658]
add r11d, r15d
cmp r10d, 5
cmovb esi, ecx
cmp edi, 0x80
jae 0x1400ca042
mov ecx, esi
shl rcx, 7
add rcx, rdi
add r11d, dword [rbx + rcx*4 + 0x3338c]
jmp 0x1400ca08e
mov ecx, 0x7ffff
mov r8, rdi
mov rax, rdi
sub ecx, edi
and r8d, 0xf
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x304dc]
lea edx, [rax + rcx*2]
mov eax, esi
shl rax, 6
add rdx, rax
mov eax, dword [rbx + rdx*4 + 0x32f8c]
lea rdx, [rbx + 0x326dc]
add eax, dword [rbx + r8*4 + 0x33b8c]
add r11d, eax
mov eax, r10d
lea rcx, [rax + rax*2]
add rcx, rcx
cmp r11d, dword [rbx + rcx*8 + 0x4dc]
jae 0x1400ca0ca
lea eax, [rdi + 4]
mov dword [rbx + rcx*8 + 0x4dc], r11d
mov dword [rbx + rcx*8 + 0x4f4], 0
mov dword [rbx + rcx*8 + 0x4f8], eax
mov dword [rbx + rcx*8 + 0x4e4], 0
cmp r10d, dword [rdx + r9*4]
jne 0x1400ca0d9
add r9d, 2
cmp r9d, r13d
je 0x1400ca0e1
inc r10d
jmp 0x1400ca000
mov esi, 1
mov dword [rbp - 0x79], esi
cmp dword [rbp + 0x67], esi
je 0x1400cb04f
lea r15, [0x140000000]
nop dword [rax]
mov rcx, qword [rbx + 0x30]
xor edi, edi
mov dword [rbp - 0x69], edi
call qword [rbx + reloc.WS2_32.dll_recv]
mov rcx, qword [rbx + 0x30]
lea rdx, [rbx + 0x326dc]
mov dword [rbx + 0x4d8], eax
call qword [rbx + 0x20]
mov r14d, eax
mov dword [rbp - 0x51], eax
test eax, eax
je 0x1400ca195
lea ecx, [rax - 2]
mov edi, dword [rbx + rcx*4 + 0x326dc]
mov dword [rbp - 0x69], edi
cmp edi, dword [rbx + 0x32f70]
jne 0x1400ca195
mov rcx, qword [rbx + 0x30]
call qword [rbx + SafeArrayPutElement]
mov r8d, dword [rbx + 0x4d8]
lea ecx, [r14 - 1]
mov ecx, dword [rbx + rcx*4 + 0x326dc]
lea r9, [rax - 1]
mov eax, 0x111
inc ecx
cmp r8d, eax
mov rdx, r9
cmova r8d, eax
sub rdx, rcx
cmp edi, r8d
jae 0x1400ca195
lea rcx, [r9 + rdi]
sub rdx, r9
nop dword [rax]
movzx eax, byte [rdx + rcx]
cmp byte [rcx], al
jne 0x1400ca192
inc edi
inc rcx
cmp edi, r8d
jb 0x1400ca180
mov dword [rbp - 0x69], edi
inc dword [rbx + 0x32f74]
cmp edi, dword [rbx + 0x32f70]
jae 0x1400cb042
inc dword [rbp + 0x6f]
mov eax, esi
lea rdi, [rbx + 0x4dc]
lea rcx, [rax + rax*2]
shl rcx, 4
add rdi, rcx
mov r9d, dword [rdi + 8]
mov ecx, dword [rdi + 0x18]
test r9d, r9d
je 0x1400ca22d
dec ecx
cmp dword [rdi + 0xc], 0
je 0x1400ca211
mov eax, dword [rdi + 0x10]
add rax, 0x1a
lea rax, [rax + rax*2]
add rax, rax
cmp dword [rdi + 0x14], 4
mov edx, dword [rbx + rax*8]
jae 0x1400ca1fd
mov edx, dword [r15 + rdx*4 + 0x1a9928]
mov eax, edx
mov r8d, dword [r15 + rax*4 + 0x1a98c8]
jmp 0x1400ca23c
mov edx, dword [r15 + rdx*4 + 0x1a98f8]
mov eax, edx
mov r8d, dword [r15 + rax*4 + 0x1a98c8]
jmp 0x1400ca23c
mov eax, ecx
add rax, 0x1a
lea rax, [rax + rax*2]
add rax, rax
mov edx, dword [rbx + rax*8]
mov eax, edx
mov r8d, dword [r15 + rax*4 + 0x1a98c8]
jmp 0x1400ca23c
lea rax, [rcx + 0x1a]
lea rax, [rax + rax*2]
add rax, rax
mov r8d, dword [rbx + rax*8]
lea eax, [rsi - 1]
cmp ecx, eax
jne 0x1400ca26e
cmp dword [rdi + 0x1c], 0
mov eax, r8d
jne 0x1400ca25d
mov r8d, dword [r15 + rax*4 + 0x1a9958]
mov dword [rbp + 0x7f], r8d
jmp 0x1400ca345
mov r8d, dword [r15 + rax*4 + 0x1a98c8]
mov dword [rbp + 0x7f], r8d
jmp 0x1400ca345
test r9d, r9d
je 0x1400ca28c
cmp dword [rdi + 0xc], 0
je 0x1400ca28c
mov ecx, dword [rdi + 0x10]
mov edx, dword [rdi + 0x14]
mov eax, r8d
mov r8d, dword [r15 + rax*4 + 0x1a9928]
jmp 0x1400ca2a9
mov edx, dword [rdi + 0x1c]
mov eax, r8d
cmp edx, 4
jae 0x1400ca2a1
mov r8d, dword [r15 + rax*4 + 0x1a9928]
jmp 0x1400ca2a9
mov r8d, dword [r15 + rax*4 + 0x1a98f8]
mov eax, ecx
lea rsi, [rbx + 0x4dc]
mov dword [rbp + 0x7f], r8d
lea rcx, [rax + rax*2]
shl rcx, 4
add rsi, rcx
cmp edx, 4
jae 0x1400ca32d
mov r14d, edx
mov r8d, 1
mov eax, dword [rsi + r14*4 + 0x20]
mov dword [rbp - 0x49], eax
cmp edx, r8d
jb 0x1400ca300
mov r8d, r14d
lea rdx, [rsi + 0x20]
lea rcx, [rbp - 0x45]
shl r8, 2
call sub.msvcrt.dll_memcpy
lea r8d, [r14 + 1]
cmp r8d, 4
jb 0x1400ca300
mov r8d, dword [rbp + 0x7f]
jmp 0x1400ca345
mov eax, r8d
lea rcx, [rbp - 0x49]
lea rdx, [rax + 8]
lea rcx, [rcx + rax*4]
mov eax, 4
sub eax, r8d
lea rdx, [rsi + rdx*4]
mov r8d, eax
shl r8, 2
call sub.msvcrt.dll_memcpy
mov r8d, dword [rbp + 0x7f]
jmp 0x1400ca345
lea eax, [rdx - 4]
mov dword [rbp - 0x49], eax
mov eax, dword [rsi + 0x20]
mov dword [rbp - 0x45], eax
mov eax, dword [rsi + 0x24]
mov dword [rbp - 0x41], eax
mov eax, dword [rsi + 0x28]
mov dword [rbp - 0x3d], eax
mov eax, dword [rbp - 0x45]
mov esi, dword [rbp - 0x49]
mov dword [rdi + 4], r8d
mov dword [rdi + 0x24], eax
mov eax, dword [rbp - 0x41]
mov dword [rdi + 0x20], esi
mov dword [rdi + 0x28], eax
mov eax, dword [rbp - 0x3d]
xor r15d, r15d
mov dword [rdi + 0x2c], eax
mov rcx, qword [rbx + 0x30]
mov r13d, dword [rdi]
call qword [rbx + SafeArrayPutElement]
mov ecx, dword [rbx + 0x33be4]
mov r8d, dword [rbp + 0x7f]
and ecx, dword [rbp + 0x6f]
movzx r14d, byte [rax - 1]
lea r9, [rax - 1]
mov dword [rbp - 0x11], ecx
mov qword [rbp - 0x31], rcx
lea edx, [rsi + 1]
mov eax, r8d
mov rsi, r9
mov qword [rbp - 0x59], r9
shl rax, 4
sub rsi, rdx
movzx edx, byte [r9 - 1]
movzx r12d, byte [rsi]
add rax, rcx
mov ecx, 8
sub cl, byte [rbx + 0x33bd4]
mov qword [rbp - 0x29], rax
movzx eax, word [rbx + rax*2 + 0x33bf0]
shr rax, 4
shr edx, cl
mov ecx, dword [rbx + 0x33bd4]
mov r10d, dword [rbx + rax*4 + 0x324dc]
mov eax, dword [rbp + 0x6f]
and eax, dword [rbx + 0x33be0]
add r10d, r13d
shl eax, cl
mov dword [rbp - 0x71], r10d
add edx, eax
mov rax, qword [rbx + 0x33be8]
lea ecx, [rdx + rdx*2]
shl ecx, 8
cmp r8d, 7
movzx r8d, r14b
lea rdi, [rax + rcx*2]
jb 0x1400ca476
mov r10d, 0x100
xor r11d, r11d
movzx r9d, r12b
or r8d, r10d
nop word [rax + rax]
mov ecx, r8d
add r9d, r9d
mov eax, r10d
shr ecx, 8
and eax, r9d
add eax, r10d
add ecx, eax
movzx edx, word [rdi + rcx*2]
mov ecx, r8d
add r8d, r8d
shr ecx, 7
shr rdx, 4
mov eax, r8d
and ecx, 1
xor eax, r9d
neg ecx
not eax
sar rcx, 4
and r10d, eax
and ecx, 0x7f
xor rdx, rcx
add r11d, dword [rbx + rdx*4 + 0x324dc]
cmp r8d, 0x10000
jb 0x1400ca420
mov r10d, dword [rbp - 0x71]
jmp 0x1400ca4bb
xor r9d, r9d
bts r8d, 8
nop
mov ecx, r8d
mov eax, r8d
add r8d, r8d
shr ecx, 7
shr rax, 8
movzx edx, word [rdi + rax*2]
and ecx, 1
neg ecx
shr rdx, 4
sar rcx, 4
and ecx, 0x7f
xor rdx, rcx
add r9d, dword [rbx + rdx*4 + 0x324dc]
cmp r8d, 0x10000
jb 0x1400ca480
mov r11d, r9d
mov r9d, dword [rbp - 0x79]
lea rdx, [rbx + 0x4dc]
add r10d, r11d
lea eax, [r9 + 1]
mov dword [rbp - 0x6d], eax
lea rcx, [rax + rax*2]
shl rcx, 4
add rdx, rcx
cmp r10d, dword [rdx]
jae 0x1400ca4f8
mov dword [rdx + 8], r15d
mov dword [rdx], r10d
mov dword [rdx + 0x18], r9d
mov r15d, 1
mov dword [rdx + 0x1c], 0xffffffff
mov r11d, dword [rbp + 0x7f]
mov r8, qword [rbp - 0x29]
movzx eax, word [rbx + r8*2 + 0x33bf0]
xor rax, 0x7f0
shr rax, 4
mov ecx, dword [rbx + rax*4 + 0x324dc]
lea rax, [r11 + 0x19eb8]
lea rax, [rbx + rax*2]
add ecx, r13d
mov r13d, r11d
mov qword [rbp - 0x21], rax
movzx eax, word [rax]
mov dword [rbp - 0x39], ecx
xor rax, 0x7f0
shr rax, 4
mov edi, dword [rbx + rax*4 + 0x324dc]
add edi, ecx
mov dword [rbp - 0x71], edi
cmp r12b, r14b
jne 0x1400ca5a1
cmp dword [rdx + 0x18], r9d
jae 0x1400ca55c
cmp dword [rdx + 0x1c], 0
je 0x1400ca5a1
movzx eax, word [rbx + r8*2 + 0x33dd0]
movzx ecx, word [rbx + r11*2 + 0x33d88]
shr rcx, 4
shr rax, 4
mov r8d, dword [rbx + rcx*4 + 0x324dc]
add r8d, dword [rbx + rax*4 + 0x324dc]
add r8d, edi
cmp r8d, dword [rdx]
ja 0x1400ca5a1
xor eax, eax
mov dword [rdx], r8d
mov dword [rdx + 0x18], r9d
lea r15d, [rax + 1]
mov dword [rdx + 0x1c], eax
mov dword [rdx + 8], eax
mov edi, dword [rbx + 0x4d8]
mov eax, 0xfff
sub eax, r9d
cmp eax, edi
cmovb edi, eax
mov dword [rbp - 0x35], edi
cmp edi, 2
jb 0x1400cb02a
mov r8d, dword [rbx + 0x32f70]
cmp edi, r8d
mov eax, r8d
cmovbe eax, edi
mov dword [rbp - 0x75], eax
test r15d, r15d
jne 0x1400ca778
cmp r12b, r14b
je 0x1400ca778
inc r8d
mov edx, 1
cmp r8d, edi
cmova r8d, edi
cmp r8d, edx
jbe 0x1400ca616
mov rax, qword [rbp - 0x59]
sub rsi, rax
lea rcx, [rax + 1]
movzx eax, byte [rsi + rcx]
cmp byte [rcx], al
jne 0x1400ca616
inc edx
inc rcx
cmp edx, r8d
jb 0x1400ca604
lea r9d, [rdx - 1]
cmp r9d, 2
jb 0x1400ca778
mov edi, dword [rbp + 0x6f]
mov r14d, dword [rbp + 0x67]
lea rcx, [0x140000000]
mov r11d, dword [rcx + r11*4 + 0x1a98c8]
inc edi
and edi, dword [rbx + 0x33be4]
movzx ecx, word [rbx + r11*2 + 0x33d70]
mov esi, r11d
shl rsi, 4
xor rcx, 0x7f0
add rsi, rdi
shr rcx, 4
movzx eax, word [rbx + rsi*2 + 0x33bf0]
mov r8d, dword [rbx + rcx*4 + 0x324dc]
xor rax, 0x7f0
shr rax, 4
add r8d, dword [rbx + rax*4 + 0x324dc]
add r8d, r10d
mov r10d, dword [rbp - 0x79]
inc r10d
add r10d, r9d
cmp r14d, r10d
jae 0x1400ca6cf
lea rcx, [r14 + r14*2]
lea rdx, [rbx + 0x4dc]
mov eax, r10d
shl rcx, 4
sub eax, r14d
add rdx, rcx
add r14d, eax
mov ecx, eax
mov dword [rbp + 0x67], r14d
nop word [rax + rax]
lea rdx, [rdx + 0x30]
mov dword [rdx], 0x40000000
dec rcx
jne 0x1400ca6c0
imul rax, rdi, 0x110
lea ecx, [r9 - 2]
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x33dd0]
mov edx, dword [rbx + rcx*4 + 0x38ea0]
xor rax, 0x7f0
lea rcx, [r10 + r10*2]
shr rax, 4
add rcx, rcx
add edx, dword [rbx + rax*4 + 0x324dc]
movzx eax, word [rbx + r11*2 + 0x33d88]
shr rax, 4
add edx, dword [rbx + rax*4 + 0x324dc]
add edx, r8d
cmp edx, dword [rbx + rcx*8 + 0x4dc]
jae 0x1400ca74c
mov eax, dword [rbp - 0x6d]
xor r11d, r11d
mov dword [rbx + rcx*8 + 0x4dc], edx
mov dword [rbx + rcx*8 + 0x4f8], r11d
mov qword [rbx + rcx*8 + 0x4e4], 1
mov dword [rbx + rcx*8 + 0x4f4], eax
mov r11d, dword [rbp + 0x7f]
mov rdx, qword [rbp - 0x59]
lea rax, [r13*4]
xor r15d, r15d
mov qword [rbp - 0x29], rax
lea rax, [rbp - 0x49]
mov dword [rbp - 0x5d], 2
mov qword [rbp - 9], rax
mov dword [rbp - 0x65], r15d
jmp 0x1400ca784
mov r14d, dword [rbp + 0x67]
jmp 0x1400ca750
mov r14d, dword [rbp + 0x67]
mov ecx, dword [rax]
mov r12d, dword [rbp - 0x75]
mov rsi, rdx
inc ecx
sub rsi, rcx
mov qword [rbp + 7], rsi
movzx eax, byte [rsi]
cmp byte [rdx], al
jne 0x1400cab37
movzx eax, byte [rsi + 1]
cmp byte [rdx + 1], al
jne 0x1400cab37
mov edi, 2
cmp r12d, edi
jbe 0x1400ca7d2
lea rcx, [rsi + 2]
sub rdx, rsi
nop
movzx eax, byte [rcx]
cmp byte [rdx + rcx], al
jne 0x1400ca7d2
inc edi
inc rcx
cmp edi, r12d
jb 0x1400ca7c0
mov r13d, dword [rbp - 0x79]
lea edx, [rdi + r13]
cmp r14d, edx
jae 0x1400ca80f
mov eax, r14d
sub edx, r14d
lea rcx, [rax + rax*2]
lea rax, [rbx + 0x4dc]
shl rcx, 4
add rax, rcx
add r14d, edx
mov ecx, edx
mov dword [rbp + 0x67], r14d
lea rax, [rax + 0x30]
mov dword [rax], 0x40000000
dec rcx
jne 0x1400ca800
mov r9d, dword [rbp - 0x11]
mov r14d, edi
mov r8d, r11d
mov edx, r15d
mov rcx, rbx
mov dword [rbp - 0x61], r14d
call fcn.1400cb400
mov r10, qword [rbp - 0x31]
add eax, dword [rbp - 0x71]
imul rsi, r10, 0x110
mov qword [rbp - 1], rsi
mov dword [rbp - 0xd], eax
xor r9d, r9d
lea edx, [rdi - 2]
lea ecx, [rdi + r13]
add rdx, rsi
lea rcx, [rcx + rcx*2]
mov r8d, dword [rbx + rdx*4 + 0x38ea0]
add rcx, rcx
add r8d, eax
cmp r8d, dword [rbx + rcx*8 + 0x4dc]
jae 0x1400ca886
mov dword [rbx + rcx*8 + 0x4dc], r8d
mov dword [rbx + rcx*8 + 0x4f4], r13d
mov dword [rbx + rcx*8 + 0x4f8], r15d
mov dword [rbx + rcx*8 + 0x4e4], r9d
dec edi
cmp edi, 2
jae 0x1400ca840
mov rsi, qword [rbp + 7]
test r15d, r15d
jne 0x1400ca89d
lea eax, [r14 + 1]
mov dword [rbp - 0x5d], eax
mov edx, dword [rbx + 0x32f70]
mov r9, qword [rbp - 0x59]
lea r11d, [r14 + 1]
add edx, r11d
cmp edx, dword [rbp - 0x35]
cmova edx, dword [rbp - 0x35]
cmp r11d, edx
jae 0x1400ca8da
mov ecx, r11d
mov r8, r9
add rcx, rsi
sub r8, rsi
movzx eax, byte [rcx]
cmp byte [r8 + rcx], al
jne 0x1400ca8da
inc r11d
inc rcx
cmp r11d, edx
jb 0x1400ca8c6
or eax, 0xffffffff
sub eax, r14d
add r11d, eax
cmp r11d, 2
jb 0x1400cab45
movzx edi, byte [r14 + r9]
mov r8d, dword [rbx + 0x33bd4]
mov eax, dword [rbp - 0x61]
mov r10d, dword [rbp + 0x6f]
mov r13d, dword [rbx + 0x33be4]
movzx esi, byte [r14 + rsi]
mov r12, qword [rbx + 0x33be8]
add r10d, r14d
xor r15d, r15d
and r13d, r10d
and r10d, dword [rbx + 0x33be0]
mov ecx, 8
sub cl, r8b
mov r14d, 0x100
or edi, r14d
dec eax
movzx r9d, byte [rax + r9]
shr r9d, cl
mov ecx, r8d
shl r10d, cl
add r9d, r10d
lea r8d, [r9 + r9*2]
shl r8d, 8
nop
add esi, esi
mov eax, r14d
mov ecx, edi
shr ecx, 8
and eax, esi
add eax, r14d
add eax, ecx
mov ecx, edi
add edi, edi
shr ecx, 7
add rax, r8
movzx edx, word [r12 + rax*2]
and ecx, 1
mov eax, edi
neg ecx
shr rdx, 4
xor eax, esi
sar rcx, 4
not eax
and ecx, 0x7f
and r14d, eax
xor rdx, rcx
add r15d, dword [rbx + rdx*4 + 0x324dc]
cmp edi, 0x10000
jb 0x1400ca950
mov r12d, dword [rbp - 0x61]
mov rax, qword [rbp - 0x29]
mov esi, dword [rbp + 0x6f]
inc esi
lea r10, [0x140000000]
mov r8d, dword [rax + r10 + 0x1a9928]
mov eax, r13d
mov r13d, dword [rbp - 0x79]
mov edi, dword [r10 + r8*4 + 0x1a98c8]
mov ecx, r8d
add esi, r12d
and esi, dword [rbx + 0x33be4]
shl rcx, 4
mov r14d, edi
add rcx, rax
shl r14, 4
lea r8d, [r13 + 1]
movzx edx, word [rbx + rcx*2 + 0x33bf0]
add r14, rsi
lea ecx, [r12 - 2]
add rcx, qword [rbp - 1]
movzx eax, word [rbx + r14*2 + 0x33bf0]
shr rdx, 4
mov r9d, dword [rbx + rdx*4 + 0x324dc]
xor rax, 0x7f0
add r9d, dword [rbx + rcx*4 + 0x38ea0]
movzx ecx, word [rbx + rdi*2 + 0x33d70]
shr rax, 4
add r9d, r15d
xor rcx, 0x7f0
add r9d, dword [rbp - 0xd]
shr rcx, 4
mov r10d, dword [rbx + rcx*4 + 0x324dc]
add r10d, dword [rbx + rax*4 + 0x324dc]
lea eax, [r11 + r12]
add r10d, r9d
mov r9d, dword [rbp + 0x67]
add r8d, eax
cmp r9d, r8d
jae 0x1400caa8f
lea rcx, [r9 + r9*2]
lea rdx, [rbx + 0x4dc]
mov eax, r8d
shl rcx, 4
sub eax, r9d
add rdx, rcx
add r9d, eax
mov ecx, eax
mov dword [rbp + 0x67], r9d
nop
lea rdx, [rdx + 0x30]
mov dword [rdx], 0x40000000
dec rcx
jne 0x1400caa80
mov r15d, dword [rbp - 0x65]
imul rax, rsi, 0x110
lea ecx, [r11 - 2]
add rcx, rax
movzx eax, word [rbx + r14*2 + 0x33dd0]
mov edx, dword [rbx + rcx*4 + 0x38ea0]
xor rax, 0x7f0
lea rcx, [r8 + r8*2]
shr rax, 4
add rcx, rcx
add edx, dword [rbx + rax*4 + 0x324dc]
movzx eax, word [rbx + rdi*2 + 0x33d88]
shr rax, 4
add edx, dword [rbx + rax*4 + 0x324dc]
add edx, r10d
mov r10, qword [rbp - 0x31]
cmp edx, dword [rbx + rcx*8 + 0x4dc]
jae 0x1400cab31
mov eax, dword [rbp - 0x6d]
mov dword [rbx + rcx*8 + 0x4dc], edx
mov dword [rbx + rcx*8 + 0x4f8], 0
add eax, r12d
mov dword [rbx + rcx*8 + 0x4e4], 1
mov dword [rbx + rcx*8 + 0x4e8], 1
mov dword [rbx + rcx*8 + 0x4ec], r13d
mov dword [rbx + rcx*8 + 0x4f0], r15d
mov dword [rbx + rcx*8 + 0x4f4], eax
mov r12d, dword [rbp - 0x75]
jmp 0x1400cab49
mov r13d, dword [rbp - 0x79]
mov r9d, dword [rbp + 0x67]
mov r10, qword [rbp - 0x31]
jmp 0x1400cab4d
mov r9d, dword [rbp + 0x67]
mov rdx, qword [rbp - 0x59]
mov rax, qword [rbp - 9]
mov r11d, dword [rbp + 0x7f]
inc r15d
add rax, 4
mov dword [rbp - 0x65], r15d
mov qword [rbp - 9], rax
cmp r15d, 4
jb 0x1400ca780
mov ecx, dword [rbp - 0x69]
lea r15, [rbx + 0x326dc]
cmp ecx, r12d
jbe 0x1400cab9a
xor edx, edx
mov ecx, r12d
cmp r12d, dword [r15]
jbe 0x1400cab90
add edx, 2
cmp r12d, dword [r15 + rdx*4]
ja 0x1400cab87
mov dword [r15 + rdx*4], r12d
add edx, 2
mov dword [rbp - 0x51], edx
mov esi, dword [rbp - 0x5d]
cmp ecx, esi
jb 0x1400cb02a
mov rax, qword [rbp - 0x21]
mov edi, dword [rbp - 0x39]
lea edx, [rcx + r13]
movzx eax, word [rax]
shr rax, 4
mov eax, dword [rbx + rax*4 + 0x324dc]
add edi, eax
mov dword [rbp - 0x71], edi
cmp r9d, edx
jae 0x1400cabff
mov eax, r9d
sub edx, r9d
lea rcx, [rax + rax*2]
lea rax, [rbx + 0x4dc]
shl rcx, 4
add rax, rcx
add r9d, edx
mov ecx, edx
mov dword [rbp + 0x67], r9d
nop dword [rax]
lea rax, [rax + 0x30]
mov dword [rax], 0x40000000
dec rcx
jne 0x1400cabf0
xor edx, edx
mov dword [rbp + 0x7f], edx
cmp esi, dword [r15]
jbe 0x1400cac1c
nop dword [rax]
add edx, 2
cmp esi, dword [r15 + rdx*4]
ja 0x1400cac10
mov dword [rbp + 0x7f], edx
mov r14d, dword [rbp - 0x79]
mov r11d, dword [rbp + 0x6f]
lea eax, [rdx + 1]
imul r10, r10, 0x110
mov r13d, dword [r15 + rax*4]
mov ecx, 0x7ffff
lea r9d, [r14 - 1]
sub ecx, r13d
mov eax, r13d
mov qword [rbp - 0x21], r10
shr ecx, 0x1f
mov dword [rbp - 0x75], r9d
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
dec r11d
movzx eax, byte [rax + rbx + 0x304dc]
mov dword [rbp - 0x69], r11d
lea r8d, [rax + rcx*2]
mov dword [rbp - 0x65], r8d
nop
lea ecx, [rsi - 2]
mov eax, ecx
add rax, r10
mov r12d, dword [rbx + rax*4 + 0x34658]
mov eax, 3
add r12d, edi
cmp esi, 5
cmovb eax, ecx
cmp r13d, 0x80
jae 0x1400cacad
mov ecx, eax
mov eax, r13d
shl rcx, 7
add rcx, rax
add r12d, dword [rbx + rcx*4 + 0x3338c]
jmp 0x1400cacd3
mov edx, eax
mov eax, r8d
mov ecx, r13d
shl rdx, 6
and ecx, 0xf
add rdx, rax
mov eax, dword [rbx + rdx*4 + 0x32f8c]
mov edx, dword [rbp + 0x7f]
add eax, dword [rbx + rcx*4 + 0x33b8c]
add r12d, eax
lea r10d, [rsi + 1]
mov dword [rbp - 0x61], r10d
lea eax, [r10 + r9]
lea rcx, [rax + rax*2]
shl rcx, 4
add rcx, rbx
cmp r12d, dword [rcx + 0x4dc]
jae 0x1400cad15
lea eax, [r13 + 4]
mov dword [rcx + 0x4dc], r12d
mov dword [rcx + 0x4f4], r14d
mov dword [rcx + 0x4f8], eax
mov dword [rcx + 0x4e4], 0
mov eax, edx
cmp esi, dword [r15 + rax*4]
jne 0x1400cb01a
mov r8, qword [rbp - 0x59]
mov edx, dword [rbx + 0x32f70]
lea ecx, [r13 + 1]
add edx, r10d
mov r9, r8
mov edi, r10d
sub r9, rcx
cmp edx, dword [rbp - 0x35]
cmova edx, dword [rbp - 0x35]
cmp r10d, edx
jae 0x1400cad66
mov ecx, r10d
add rcx, r9
sub r8, r9
movzx eax, byte [rcx]
cmp byte [r8 + rcx], al
jne 0x1400cad62
inc edi
inc rcx
cmp edi, edx
jb 0x1400cad50
mov r8, qword [rbp - 0x59]
or eax, 0xffffffff
sub eax, esi
add edi, eax
cmp edi, 2
jb 0x1400cafb8
mov eax, dword [rbx + 0x33be4]
mov edx, dword [rbp - 0x5d]
add r10d, r11d
and eax, r10d
and r10d, dword [rbx + 0x33be0]
xor r15d, r15d
mov dword [rbp - 0x39], eax
mov eax, esi
mov ecx, 8
movzx esi, byte [rax + r9]
movzx r11d, byte [rax + r8]
mov r8d, dword [rbx + 0x33bd4]
mov rax, qword [rbp - 0x59]
sub cl, r8b
mov r14d, 0x100
or r11d, r14d
dec edx
movzx r9d, byte [rdx + rax]
shr r9d, cl
mov ecx, r8d
mov r8, qword [rbx + 0x33be8]
shl r10d, cl
add r9d, r10d
lea r9d, [r9 + r9*2]
shl r9d, 8
nop dword [rax]
add esi, esi
mov eax, r14d
mov ecx, r11d
shr ecx, 8
and eax, esi
add eax, r14d
add eax, ecx
mov ecx, r11d
add r11d, r11d
shr ecx, 7
add rax, r9
movzx edx, word [r8 + rax*2]
and ecx, 1
mov eax, r11d
neg ecx
shr rdx, 4
xor eax, esi
sar rcx, 4
not eax
and ecx, 0x7f
and r14d, eax
xor rdx, rcx
add r15d, dword [rbx + rdx*4 + 0x324dc]
cmp r11d, 0x10000
jb 0x1400cade0
mov r9d, dword [rbp - 0x39]
mov rax, qword [rbp - 0x29]
mov r14d, dword [rbp - 0x79]
lea r11d, [r9 + 1]
lea r10, [0x140000000]
mov edx, dword [rax + r10 + 0x1a98f8]
and r11d, dword [rbx + 0x33be4]
mov r10d, dword [r10 + rdx*4 + 0x1a98c8]
mov ecx, edx
shl rcx, 4
mov esi, r10d
add rcx, r9
shl rsi, 4
movzx eax, word [rbx + rcx*2 + 0x33bf0]
movzx ecx, word [rbx + r10*2 + 0x33d70]
add rsi, r11
shr rax, 4
xor rcx, 0x7f0
mov r8d, dword [rbx + rax*4 + 0x324dc]
movzx eax, word [rbx + rsi*2 + 0x33bf0]
shr rcx, 4
mov r9d, dword [rbx + rcx*4 + 0x324dc]
add r8d, r15d
mov r15d, dword [rbp + 0x67]
xor rax, 0x7f0
add r8d, r12d
shr rax, 4
add r9d, dword [rbx + rax*4 + 0x324dc]
mov eax, dword [rbp - 0x5d]
add r9d, r8d
add eax, edi
lea r8d, [r14 + 1]
add r8d, eax
cmp r15d, r8d
jae 0x1400caf0f
lea rcx, [r15 + r15*2]
lea rdx, [rbx + 0x4dc]
mov eax, r8d
shl rcx, 4
sub eax, r15d
add rdx, rcx
add r15d, eax
mov ecx, eax
mov dword [rbp + 0x67], r15d
nop dword [rax + rax]
lea rdx, [rdx + 0x30]
mov dword [rdx], 0x40000000
dec rcx
jne 0x1400caf00
imul rax, r11, 0x110
mov r11d, dword [rbp - 0x69]
lea ecx, [rdi - 2]
add rcx, rax
movzx eax, word [rbx + rsi*2 + 0x33dd0]
lea r15, [rbx + 0x326dc]
mov edx, dword [rbx + rcx*4 + 0x38ea0]
xor rax, 0x7f0
lea rcx, [r8 + r8*2]
shr rax, 4
add rcx, rcx
add edx, dword [rbx + rax*4 + 0x324dc]
movzx eax, word [rbx + r10*2 + 0x33d88]
mov r10d, dword [rbp - 0x61]
shr rax, 4
add edx, dword [rbx + rax*4 + 0x324dc]
add edx, r9d
cmp edx, dword [rbx + rcx*8 + 0x4dc]
jae 0x1400cafb8
lea eax, [r10 + r14]
mov dword [rbx + rcx*8 + 0x4dc], edx
mov dword [rbx + rcx*8 + 0x4f8], 0
mov dword [rbx + rcx*8 + 0x4f4], eax
lea eax, [r13 + 4]
mov dword [rbx + rcx*8 + 0x4e4], 1
mov dword [rbx + rcx*8 + 0x4e8], 1
mov dword [rbx + rcx*8 + 0x4ec], r14d
mov dword [rbx + rcx*8 + 0x4f0], eax
mov edx, dword [rbp + 0x7f]
add edx, 2
mov dword [rbp + 0x7f], edx
cmp edx, dword [rbp - 0x51]
je 0x1400cb02a
mov r9d, dword [rbp - 0x75]
mov edi, dword [rbp - 0x71]
lea eax, [rdx + 1]
mov r13d, dword [r15 + rax*4]
cmp r13d, 0x80
jb 0x1400cb016
mov ecx, 0x7ffff
mov eax, r13d
mov esi, r10d
sub ecx, r13d
mov dword [rbp - 0x5d], r10d
mov r10, qword [rbp - 0x21]
shr ecx, 0x1f
neg ecx
and ecx, 0xc
add ecx, 6
shr rax, cl
movzx eax, byte [rax + rbx + 0x304dc]
lea r8d, [rax + rcx*2]
mov dword [rbp - 0x65], r8d
jmp 0x1400cac70
mov r8d, dword [rbp - 0x65]
mov esi, r10d
mov dword [rbp - 0x5d], r10d
mov r10, qword [rbp - 0x21]
jmp 0x1400cac70
mov esi, dword [rbp - 0x6d]
lea r15, [0x140000000]
mov dword [rbp - 0x79], esi
cmp esi, dword [rbp + 0x67]
jne 0x1400ca100
jmp 0x1400cb04f
mov dword [rbx + 0x4d4], r14d
mov dword [rbx + 0x4d0], edi
mov rdx, qword [rbp + 0x77]
mov r8d, esi
mov rcx, rbx
call fcn.1400c9610
mov r14, qword [rsp + 0xc0]
mov rsi, qword [rsp + 0xe0]
mov r15, qword [rsp + 0xb8]
mov rdi, qword [rsp + 0xd8]
mov r12, qword [rsp + 0xd0]
mov r13, qword [rsp + 0xc8]
add rsp, 0xe8
pop rbx
pop rbp
ret