Function at 0x180007620
Capabilities:
Encode data using base64
Encode data using xor
Hash data using fnv

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x78
lea rbp, [rsp + 0x70]
mov qword [rbp], 0xfffffffffffffffe
mov r14, r8
mov r12, rdx
mov qword [rbp - 0x10], rcx
mov r8, qword [r8 + 0x10]
cmp qword [r14 + 0x18], 8
mov r10, r14
jb 0x180007658
mov r10, qword [r14]
mov rax, r8
add rax, r8
je 0x180007689
lea rdi, [rax - 1]
mov r9d, eax
and r9d, 2
movabs rbx, 0x100000001b3
cmp rdi, 3
jae 0x180007698
movabs rdi, 0xcbf29ce484222325
xor esi, esi
jmp 0x1800076ec
movabs rdx, 0xcbf29ce484222325
jmp 0x180007716
and rax, 0xfffffffffffffffc
movabs rdi, 0xcbf29ce484222325
xor esi, esi
nop dword [rax + rax]
movzx edx, byte [r10 + rsi]
xor rdx, rdi
imul rdx, rbx
movzx edi, byte [r10 + rsi + 1]
xor rdi, rdx
imul rdi, rbx
movzx edx, byte [r10 + rsi + 2]
xor rdx, rdi
imul rdx, rbx
movzx edi, byte [r10 + rsi + 3]
xor rdi, rdx
imul rdi, rbx
add rsi, 4
cmp rax, rsi
jne 0x1800076b0
mov rdx, rdi
test r9, r9
je 0x180007716
add rsi, r10
xor eax, eax
nop dword [rax]
movzx edx, byte [rsi + rax]
xor rdx, rdi
imul rdx, rbx
inc rax
mov rdi, rdx
cmp r9, rax
jne 0x180007700
mov rcx, qword [rbp - 0x10]
mov rbx, qword [rcx + 0x30]
mov qword [rbp - 0x28], rdx
and rbx, rdx
mov rdx, qword [rcx + 0x18]
mov rax, rbx
shl rax, 4
mov r15, qword [rdx + rax + 8]
cmp r15, qword [rcx + 8]
je 0x1800077d7
add rbx, rbx
mov r9, qword [rdx + rbx*8]
test r8, r8
je 0x1800077c4
mov rax, r8
dec rax
cmp r8, qword [r15 + 0x20]
jne 0x1800077a3
nop word [rax + rax]
cmp qword [r15 + 0x28], 8
jb 0x180007770
mov rbx, qword [r15 + 0x10]
jmp 0x180007774
lea rbx, [r15 + 0x10]
xor edi, edi
nop word cs:[rax + rax]
movzx edx, word [r10 + rdi*2]
movzx esi, word [rbx + rdi*2]
cmp dx, si
jne 0x18000779a
lea rcx, [rdi + 1]
cmp rax, rdi
mov rdi, rcx
jne 0x180007780
cmp dx, si
je 0x180007998
cmp r15, r9
je 0x1800077d4
mov r15, qword [r15 + 8]
cmp r8, qword [r15 + 0x20]
je 0x180007760
jmp 0x1800077a3
mov r15, qword [r15 + 8]
cmp qword [r15 + 0x20], 0
je 0x180007998
cmp r15, r9
jne 0x1800077c0
mov r15, r9
movabs rax, 0x555555555555555
mov rsi, qword [rbp - 0x10]
cmp qword [rsi + 0x10], rax
je 0x180008029
lea rax, [rsi + 8]
mov qword [rbp - 0x40], rax
mov ecx, Ordinal_50
call fcn.1800c38b8
mov qword [rbp - 0x38], rax
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm1
movaps xmm0, xmmword [0x18015e0c0]
movups xmmword [r14 + 0x10], xmm0
mov word [r14], 0
mov rdx, qword [rsi + 0x10]
inc rdx
mov r14, rsi
js 0x18000783e
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
jmp 0x180007856
mov rcx, rdx
shr rcx, 1
and edx, 1
or rdx, rcx
xorps xmm0, xmm0
cvtsi2ss xmm0, rdx
addss xmm0, xmm0
movss xmm1, dword [r14]
mov rdi, qword [r14 + 0x38]
test rdi, rdi
mov qword [rbp - 0x20], rax
js 0x18000786f
cvtsi2ss xmm2, rdi
jmp 0x180007886
mov rax, rdi
shr rax, 1
mov ecx, edi
and ecx, 1
or rcx, rax
cvtsi2ss xmm2, rcx
addss xmm2, xmm2
movaps xmm3, xmm0
divss xmm3, xmm2
ucomiss xmm3, xmm1
jbe 0x180007f55
divss xmm0, xmm1
call fcn.18015a998
cvttss2si rax, xmm0
mov rcx, rax
subss xmm0, dword [0x18018be80]
cvttss2si rdx, xmm0
sar rcx, 0x3f
and rdx, rcx
or rdx, rax
cmp rdx, 9
mov eax, 8
cmovae rax, rdx
cmp rdi, rax
jae 0x1800078ed
lea rcx, [rdi*8]
cmp rcx, rax
cmovb rcx, rax
cmp rdi, 0x200
cmovae rcx, rax
mov rdi, rcx
movabs rax, 0x800000000000001
cmp rdi, rax
jae 0x180008035
dec rdi
or rdi, 1
bsr rcx, rdi
xor rcx, 0xffffffffffffffc0
add rcx, 0x41
mov r15d, 1
shl r15, cl
mov ebx, 2
shl rbx, cl
mov r13, qword [r14 + 8]
mov rax, qword [r14 + 0x18]
mov rdx, qword [r14 + 0x20]
mov r9, rdx
sub r9, rax
mov rsi, r9
sar rsi, 3
cmp rsi, rbx
mov qword [rbp - 0x48], r12
jae 0x1800079a7
mov rax, rbx
shr rax, 0x3d
jne 0x180008041
mov eax, reloc.WS2_32.dll_recv
shl rax, cl
cmp rbx, 0x200
jb 0x1800079fa
movabs rcx, 0x1ffffffffffffffc
cmp rbx, rcx
jae 0x18000804b
add rax, 0x27
mov rcx, rax
call fcn.1800c38b8
mov rsi, rax
add rsi, 0x27
and rsi, 0xffffffffffffffe0
mov qword [rsi - 8], rax
jmp 0x180007a05
mov qword [r12], r15
mov byte [r12 + 8], 0
jmp 0x180008017
cmp rax, rdx
je 0x180007bbc
add r9, 0xfffffffffffffff8
cmp r9, 0x18
jb 0x180007bb0
shr r9, 3
inc r9
mov r8, r9
and r8, 0xfffffffffffffffc
movq xmm0, r13
pshufd xmm0, xmm0, 0x44
lea rdi, [r8 - 4]
mov rbx, rdi
shr rbx, 2
inc rbx
mov ecx, ebx
and ecx, 3
cmp rdi, 0xc
jae 0x180007b31
xor edi, edi
jmp 0x180007b79
mov rcx, rax
call fcn.1800c38b8
mov rsi, rax
mov rcx, qword [r14 + 0x18]
mov rdx, qword [r14 + 0x28]
sub rdx, rcx
je 0x180007a3c
cmp rdx, 0x1000
jb 0x180007a37
mov rax, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rax
cmp rcx, 0x20
jae 0x180008046
add rdx, 0x27
mov rcx, rax
call fcn.1800c38fc
mov qword [r14 + 0x18], rsi
lea rax, [rsi + rbx*8]
mov qword [r14 + 0x20], rax
mov qword [r14 + 0x28], rax
dec rbx
movabs rcx, 0x1fffffffffffffff
and rcx, rbx
cmp rcx, 3
jb 0x180007b20
inc rcx
mov r8, rcx
and r8, 0xfffffffffffffffc
movq xmm0, r13
pshufd xmm0, xmm0, 0x44
lea rdi, [r8 - 4]
mov rbx, rdi
shr rbx, 2
inc rbx
mov edx, ebx
and edx, 3
cmp rdi, 0xc
jae 0x180007a97
xor edi, edi
jmp 0x180007ad9
and rbx, 0xfffffffffffffffc
xor edi, edi
nop dword [rax]
movdqu xmmword [rsi + rdi*8], xmm0
movdqu xmmword [rsi + rdi*8 + 0x10], xmm0
movdqu xmmword [rsi + rdi*8 + 0x20], xmm0
movdqu xmmword [rsi + rdi*8 + 0x30], xmm0
movdqu xmmword [rsi + rdi*8 + 0x40], xmm0
movdqu xmmword [rsi + rdi*8 + 0x50], xmm0
movdqu xmmword [rsi + rdi*8 + 0x60], xmm0
movdqu xmmword [rsi + rdi*8 + 0x70], xmm0
add rdi, 0x10
add rbx, 0xfffffffffffffffc
jne 0x180007aa0
test rdx, rdx
je 0x180007b04
lea rbx, [rsi + rdi*8]
add rbx, 0x10
shl rdx, 5
xor edi, edi
nop dword [rax]
movdqu xmmword [rbx + rdi - 0x10], xmm0
movdqu xmmword [rbx + rdi], xmm0
add rdi, 0x20
cmp rdx, rdi
jne 0x180007af0
cmp rcx, r8
je 0x180007bbc
lea rsi, [rsi + r8*8]
nop word cs:[rax + rax]
mov qword [rsi], r13
add rsi, 8
cmp rsi, rax
jne 0x180007b20
jmp 0x180007bbc
and rbx, 0xfffffffffffffffc
xor edi, edi
nop word [rax + rax]
movdqu xmmword [rax + rdi*8], xmm0
movdqu xmmword [rax + rdi*8 + 0x10], xmm0
movdqu xmmword [rax + rdi*8 + 0x20], xmm0
movdqu xmmword [rax + rdi*8 + 0x30], xmm0
movdqu xmmword [rax + rdi*8 + 0x40], xmm0
movdqu xmmword [rax + rdi*8 + 0x50], xmm0
movdqu xmmword [rax + rdi*8 + 0x60], xmm0
movdqu xmmword [rax + rdi*8 + 0x70], xmm0
add rdi, 0x10
add rbx, 0xfffffffffffffffc
jne 0x180007b40
test rcx, rcx
je 0x180007ba4
lea rbx, [rax + rdi*8]
add rbx, 0x10
shl rcx, 5
xor edi, edi
nop dword [rax]
movdqu xmmword [rbx + rdi - 0x10], xmm0
movdqu xmmword [rbx + rdi], xmm0
add rdi, 0x20
cmp rcx, rdi
jne 0x180007b90
cmp r9, r8
je 0x180007bbc
lea rax, [rax + r8*8]
nop dword [rax]
mov qword [rax], r13
add rax, 8
cmp rax, rdx
jne 0x180007bb0
lea rcx, [r15 - 1]
mov qword [r14 + 0x30], rcx
mov qword [r14 + 0x38], r15
mov r15, qword [r14 + 8]
mov rdi, qword [r15]
cmp rdi, r13
je 0x180007e9e
movabs rsi, 0xcbf29ce484222325
movabs r12, 0x100000001b3
mov qword [rbp - 8], r13
jmp 0x180007c15
mov qword [rcx + rbx*8], r11
mov qword [rcx + r15*8], r11
mov r13, qword [rbp - 8]
cmp rdi, r13
je 0x180007e96
mov r11, rdi
cmp qword [rdi + 0x28], 8
jb 0x180007c30
mov r9, qword [r11 + 0x10]
jmp 0x180007c34
lea r9, [r11 + 0x10]
mov r8, qword [r11 + 0x20]
mov rax, r8
mov rdx, rsi
add rax, r8
je 0x180007cd6
lea rcx, [rax - 1]
mov ebx, eax
and ebx, 2
cmp rcx, 3
jae 0x180007c60
xor edi, edi
mov rcx, rsi
jmp 0x180007cac
and rax, 0xfffffffffffffffc
xor edi, edi
mov rcx, rsi
nop dword [rax]
movzx edx, byte [r9 + rdi]
xor rdx, rcx
imul rdx, r12
movzx ecx, byte [r9 + rdi + 1]
xor rcx, rdx
imul rcx, r12
movzx edx, byte [r9 + rdi + 2]
xor rdx, rcx
imul rdx, r12
movzx ecx, byte [r9 + rdi + 3]
xor rcx, rdx
imul rcx, r12
add rdi, 4
cmp rax, rdi
jne 0x180007c70
mov rdx, rcx
test rbx, rbx
je 0x180007cd6
add rdi, r9
xor eax, eax
nop dword [rax]
movzx edx, byte [rdi + rax]
xor rdx, rcx
imul rdx, r12
inc rax
mov rcx, rdx
cmp rbx, rax
jne 0x180007cc0
and rdx, qword [r14 + 0x30]
mov rdi, qword [r11]
mov rcx, qword [r14 + 0x18]
lea rbx, [rdx + rdx]
mov rax, rdx
shl rax, 4
lea r15, [rdx + rdx]
inc r15
mov r13, qword [rcx + rax]
cmp r13, qword [rbp - 8]
je 0x180007c00
mov qword [rbp - 0x50], rbx
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x30], rcx
mov r10, qword [rcx + r15*8]
cmp r8, qword [r10 + 0x20]
jne 0x180007d68
test r8, r8
je 0x180007e20
cmp qword [r10 + 0x28], 8
jb 0x180007d2d
mov rcx, qword [r10 + 0x10]
jmp 0x180007d31
lea rcx, [r10 + 0x10]
lea rdx, [r8 - 1]
xor r14d, r14d
nop dword [rax + rax]
movzx eax, word [r9 + r14*2]
movzx ebx, word [rcx + r14*2]
cmp ax, bx
jne 0x180007d5b
lea rdi, [r14 + 1]
cmp rdx, r14
mov r14, rdi
jne 0x180007d40
cmp ax, bx
mov r14, qword [rbp - 0x10]
je 0x180007e20
cmp r13, r10
je 0x180007de0
lea rdx, [r8 - 1]
jmp 0x180007d8e
cmp bx, di
je 0x180007e57
cmp r13, r10
je 0x180007de0
mov r10, qword [r10 + 8]
cmp r8, qword [r10 + 0x20]
jne 0x180007d89
test r8, r8
je 0x180007e57
cmp qword [r10 + 0x28], 8
jb 0x180007db0
mov rcx, qword [r10 + 0x10]
jmp 0x180007db4
lea rcx, [r10 + 0x10]
xor eax, eax
nop word cs:[rax + rax]
movzx ebx, word [r9 + rax*2]
movzx edi, word [rcx + rax*2]
cmp bx, di
jne 0x180007d80
lea rsi, [rax + 1]
cmp rdx, rax
mov rax, rsi
jne 0x180007dc0
jmp 0x180007d80
mov rax, qword [r11 + 8]
mov rdi, qword [rbp - 0x18]
mov qword [rax], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], r13
mov rdx, qword [r13 + 8]
mov qword [rdx], r11
mov qword [r13 + 8], rcx
mov qword [rdi + 8], rax
mov qword [r11 + 8], rdx
mov rax, qword [rbp - 0x30]
mov rcx, qword [rbp - 0x50]
mov qword [rax + rcx*8], r11
jmp 0x180007e7f
mov rax, qword [r10]
cmp rax, r11
mov rdi, qword [rbp - 0x18]
je 0x180007e4d
mov rcx, qword [r11 + 8]
mov qword [rcx], rdi
mov rdx, qword [rdi + 8]
mov qword [rdx], rax
mov rbx, qword [rax + 8]
mov qword [rbx], r11
mov qword [rax + 8], rdx
mov qword [rdi + 8], rcx
mov qword [r11 + 8], rbx
mov rax, qword [rbp - 0x30]
mov qword [rax + r15*8], r11
jmp 0x180007e7f
mov rax, qword [r10]
mov rcx, qword [r11 + 8]
mov rdi, qword [rbp - 0x18]
mov qword [rcx], rdi
mov rdx, qword [rdi + 8]
mov qword [rdx], rax
mov rbx, qword [rax + 8]
mov qword [rbx], r11
mov qword [rax + 8], rdx
mov qword [rdi + 8], rcx
mov qword [r11 + 8], rbx
mov r13, qword [rbp - 8]
movabs rsi, 0xcbf29ce484222325
cmp rdi, r13
jne 0x180007c15
mov r15, qword [r14 + 8]
mov rcx, qword [r14 + 0x30]
and rcx, qword [rbp - 0x28]
mov rdi, qword [r14 + 0x18]
mov rax, rcx
shl rax, 4
mov r9, qword [rdi + rax + 8]
cmp r9, r15
mov r12, qword [rbp - 0x48]
je 0x180007f55
add rcx, rcx
mov r10, qword [rbp - 0x20]
mov r8, qword [r10 + 0x20]
cmp qword [r10 + 0x28], 8
jb 0x180007ed7
mov r10, qword [r10 + 0x10]
jmp 0x180007edb
add r10, 0x10
mov r15, qword [rdi + rcx*8]
test r8, r8
je 0x180007f44
mov rcx, r8
dec rcx
cmp r8, qword [r9 + 0x20]
jne 0x180007f2f
cmp qword [r9 + 0x28], 8
jb 0x180007f00
mov rdi, qword [r9 + 0x10]
jmp 0x180007f04
lea rdi, [r9 + 0x10]
xor ebx, ebx
nop word cs:[rax + rax]
movzx eax, word [r10 + rbx*2]
movzx esi, word [rdi + rbx*2]
cmp ax, si
jne 0x180007f2a
lea rdx, [rbx + 1]
cmp rcx, rbx
mov rbx, rdx
jne 0x180007f10
cmp ax, si
je 0x180007f52
cmp r9, r15
je 0x180007f55
mov r9, qword [r9 + 8]
cmp r8, qword [r9 + 0x20]
je 0x180007ef0
jmp 0x180007f2f
mov r9, qword [r9 + 8]
cmp qword [r9 + 0x20], 0
je 0x180007f52
cmp r9, r15
jne 0x180007f40
jmp 0x180007f55
mov r15, qword [r9]
mov qword [rbp - 0x38], 0
mov rax, qword [r15 + 8]
inc qword [r14 + 0x10]
mov rsi, qword [rbp - 0x20]
mov qword [rsi], r15
mov qword [rsi + 8], rax
mov qword [rax], rsi
mov qword [r15 + 8], rsi
mov rbx, qword [r14 + 0x18]
mov rdi, qword [rbp - 0x28]
and rdi, qword [r14 + 0x30]
shl rdi, 4
lea rcx, [rbx + rdi]
lea rdx, [rbx + rdi]
add rdx, 8
mov rbx, qword [rbx + rdi]
cmp rbx, qword [r14 + 8]
je 0x180007fac
cmp rbx, r15
je 0x180007fb2
mov rcx, rdx
cmp qword [rdx], rax
jne 0x180007fb5
jmp 0x180007fb2
mov qword [rcx], rsi
mov rcx, rdx
mov qword [rcx], rsi
mov qword [r12], rsi
mov byte [r12 + 8], 1
mov rsi, qword [rbp - 0x38]
test rsi, rsi
je 0x180008017
mov rax, qword [rsi + 0x28]
cmp rax, 8
jb 0x18000800a
mov rcx, qword [rsi + 0x10]
lea rdx, [rax + rax]
add rdx, 2
cmp rdx, 0x1000
jb 0x180008005
mov rbx, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, rbx
cmp rcx, 0x20
jae 0x180008046
add rax, rax
add rax, 0x29
mov rdx, rax
mov rcx, rbx
call fcn.1800c38fc
mov edx, Ordinal_50
mov rcx, rsi
call fcn.1800c38fc
nop
add rsp, 0x78
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
lea rcx, str.unordered_map_set_too_long
call fcn.1800c4700
lea rcx, str.invalid_hash_bucket_count
call fcn.1800c4700
call fcn.1800015b0
call fcn.180139754
call fcn.1800015b0
int3