Function at 0x541c10
Capabilities:
Encode data using xor
Hash data with crc32

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xf8
mov ecx, dword [ebp + 8]
mov eax, dword [0x64a040]
xor eax, ebp
mov dword [esp + 0xf0], eax
test ecx, ecx
je 0x542357
mov ebx, dword [ebp + 0x14]
mov edi, dword [ebp + 0x10]
mov esi, dword [ebp + 0xc]
push ecx
call fcn.00598320
add esp, 4
mov edx, eax
cmp edi, 1
jne 0x541c5d
cmp ebx, 2
mov ecx, ebx
jne 0x541c5f
jmp 0x542429
mov ecx, ebx
cmp edi, esi
jl 0x542366
mov al, 1
mov dword [esp], eax
mov eax, edi
mov edi, esi
test edi, edi
jle 0x54223c
cmp eax, 0x7fffffff
je 0x54234d
mov ebx, eax
cmp ecx, 0x3eb
jae 0x5422c1
mov esi, ecx
cmp ebx, edi
je 0x542374
cmp esi, 3
jb 0x542383
mov eax, ebx
sub eax, edi
add eax, 2
cmp esi, eax
ja 0x542383
cmp byte [esp], 0
je 0x542383
mov ecx, dword [ebp + 8]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], esi
mov eax, dword [ebp + 0x18]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x20], 0x6282d8
mov dword [esp + 0x40], 0
push edx
push ecx
call fcn.00542500
add esp, 8
mov esi, eax
test eax, eax
je 0x541e3d
mov ebx, dword [esp + 0x2c]
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
xor eax, eax
cmp edi, fcn.0057b630
je 0x541d26
mov ecx, edi
call dword [0x6445dc]
mov ecx, esi
call edi
mov dword [esp], esi
cmp ebx, eax
jne 0x5423d4
mov ebx, dword [esp + 0x38]
test ebx, ebx
je 0x541da1
mov esi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov ecx, dword [esp]
mov eax, dword [ecx]
mov edi, dword [eax + 0x10]
cmp edi, 0x57b640
jne 0x541de0
mov eax, dword [ecx + 0xc]
mov ecx, dword [eax + 0xc]
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
sub ecx, eax
mov edx, ecx
sar edx, 2
lea edi, [edx - 1]
cmp edi, ebx
mov ebx, dword [esp + 4]
jne 0x5423d4
cmp edi, 2
jb 0x5423ff
cmp edx, 1
jbe 0x54241a
cmp dword [eax + 4], esi
jne 0x5423d4
mov eax, dword [eax + ecx - 8]
cmp eax, ebx
jne 0x5423d4
mov dword [esp + 0x20], 0x6282d8
mov eax, dword [esp + 0x40]
mov ecx, eax
shr ecx, 0xe
mov edx, eax
shr edx, 0x13
mov edx, dword [edx*4 + 0x6527ec]
bt edx, ecx
jb 0x54240c
mov ecx, dword [esp + 0xf0]
xor ecx, ebp
call fcn.005810d5
mov eax, dword [esp]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
call dword [0x6445dc]
mov ecx, dword [esp]
push ebx
push dword [esp + 8]
push esi
call edi
test al, al
jne 0x541da1
jmp 0x5423d4
mov byte [eax + 2], 0
mov word [eax], 0
jmp 0x541e26
cmp ecx, 0x3f
je 0x541e26
add eax, esi
cmp ecx, 0x3c
je 0x541dfc
mov edx, 0x3f
sub edx, ecx
push edx
push 0
push eax
call fcn.00582870
add esp, 0xc
lea eax, [esp + 0x48]
push 1
push esi
push eax
call fcn.004f3300
add esp, 0xc
xor eax, eax
jmp 0x541eca
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x28]
xorps xmm0, xmm0
lea esi, [esp + 0x60]
movups xmmword [esi + 0x34], xmm0
movups xmmword [esi + 0x28], xmm0
movups xmmword [esi + 0x18], xmm0
movups xmmword [esi + 8], xmm0
movups xmmword [esi - 8], xmm0
movapd xmm0, xmmword [0x6354d0]
movupd xmmword [esi - 0x18], xmm0
test ebx, ebx
je 0x541ea2
lea eax, [ebx*8]
mov ecx, ebx
shr ecx, 0x1d
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x58], eax
cmp ebx, 0x40
jae 0x5421de
mov eax, ebx
mov dword [esp + 0xa0], eax
push eax
push edi
push esi
call fcn.005822f0
add esp, 0xc
mov ecx, dword [esp + 0xa0]
mov eax, dword [esp + 0x58]
mov dword [esp], eax
mov ebx, dword [esp + 0x5c]
mov byte [esp + ecx + 0x60], 0x80
lea eax, [ecx + 1]
cmp eax, 0x39
jae 0x541e07
cmp eax, 0x38
je 0x541edf
mov ecx, 0x38
sub ecx, eax
add eax, esi
push ecx
push 0
push eax
call fcn.00582870
add esp, 0xc
lea edi, [esp + 0x48]
mov eax, dword [esp]
mov dword [edi + 0x50], eax
mov dword [edi + 0x54], ebx
push 1
push esi
push edi
call fcn.004f3300
add esp, 0xc
mov ebx, dword [edi]
mov edi, dword [0x65071c]
cmp edi, 1
jbe 0x54230f
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x5422b5
mov eax, dword [0x650724]
test eax, eax
je 0x541f2c
mov esi, dword [eax + 0x50]
test esi, esi
jne 0x5423aa
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x20]
mov esi, dword [eax]
cmp esi, 0x5735c0
je 0x542011
mov ecx, esi
call dword [0x6445dc]
lea ecx, [esp + 0x20]
call esi
push eax
call fcn.0050d310
add esp, 4
mov esi, eax
cmp dword [esp + 0x38], 0
je 0x54226d
mov dword [esp + 0x48], 0
mov edi, dword [0x65b068]
test edi, edi
je 0x542207
lea ebx, [esp + 0x44]
mov ecx, edi
lea eax, [esp + 0x48]
push eax
push dword [esp + 0x40]
push esi
push dword [esp + 0x40]
push dword [esp + 0x40]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push dword [esp + 0x48]
push ebx
call fcn.0050e2a0
mov ebx, dword [ebx]
test ebx, ebx
je 0x542207
mov eax, dword [esp + 0x20]
mov esi, dword [eax + 8]
cmp esi, 0x502040
je 0x541fd9
cmp esi, fcn.00402610
je 0x542005
mov ecx, esi
call dword [0x6445dc]
lea ecx, [esp + 0x20]
push ebx
call esi
push ebx
call fcn.0050d8b0
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x48]
test eax, eax
je 0x541d07
xor edx, edx
cmp esi, ebx
sete dl
mov ecx, edi
push edx
push eax
call fcn.00567ef0
jmp 0x541d07
lea ecx, [esp + 0x20]
push ebx
call fcn.00402610
jmp 0x541fd9
push 0x14
call fcn.0057dc30
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x38]
inc eax
mov ecx, esi
push eax
call fcn.0050e220
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0x34]
sub esp, 8
movsd qword [esp], xmm0
call fcn.005aaa00
add esp, 8
fstp qword [esp + 0x18]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
sub ecx, eax
cmp ecx, 4
jbe 0x54233e
movsd xmm0, qword [esp + 0x18]
movsd qword [esp + 8], xmm0
mov ebx, dword [esp + 0x30]
mov dword [eax + 4], ebx
mov ecx, dword [esi]
mov eax, dword [esi + 4]
mov edi, eax
sub edi, ecx
sar edi, 2
lea edx, [edi - 1]
cmp edx, 3
mov dword [esp + 4], esi
jb 0x54213e
add edi, 0xfffffffd
mov esi, 2
nop
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
sub esp, 8
movsd qword [esp], xmm0
call fcn.005aaa00
add esp, 8
fstp qword [esp + 0x48]
lea eax, [esp + 0x48]
push eax
call fcn.00505000
add esp, 4
mov eax, dword [esp + 4]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ecx
sub eax, ecx
sar eax, 2
cmp eax, esi
jbe 0x54233e
movsd xmm0, qword [esp + 0x48]
movsd xmm1, qword [esp + 8]
subsd xmm1, xmm0
movd xmm2, edi
por xmm2, xmmword [0x62d130]
subsd xmm2, qword [0x62d140]
divsd xmm1, xmm2
addsd xmm1, xmm0
sub esp, 8
movsd qword [esp], xmm1
call fcn.005aaa50
fstp qword [esp]
call fcn.005aa9ad
add esp, 8
fstp qword [esp + 0x10]
cvttsd2si eax, qword [esp + 0x10]
cmp ebx, eax
lea ebx, [ebx + 1]
cmovl ebx, eax
mov eax, dword [esp]
mov dword [eax + esi*4], ebx
inc esi
dec edi
jne 0x542090
mov esi, dword [esp + 4]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
cmp eax, ecx
je 0x54233e
mov dword [eax - 4], 0x7fffffff
mov eax, esi
mov esi, dword [esi]
mov eax, dword [eax + 4]
mov edi, eax
sub edi, esi
je 0x542438
js 0x54243f
mov ecx, edi
shr ecx, 2
mov edx, esi
and edi, 3
jne 0x54224e
sub esi, eax
cmp esi, 0xfffffffc
ja 0x5421d2
nop dword [eax + eax]
movzx esi, byte [edx]
movzx edi, cl
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x636878]
movzx esi, byte [edx + 1]
movzx edi, cl
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x636878]
movzx esi, byte [edx + 2]
movzx edi, cl
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x636878]
movzx esi, byte [edx + 3]
movzx edi, cl
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x636878]
add edx, 4
cmp edx, eax
jne 0x542180
mov eax, dword [esp + 4]
mov dword [eax + 0xc], ecx
jmp 0x541f53
mov eax, ebx
shr eax, 6
lea ecx, [esp + 0x48]
push eax
push edi
push ecx
call fcn.004f3300
add esp, 0xc
mov eax, ebx
and eax, 0x3f
je 0x541ea2
and ebx, 0xffffffc0
add edi, ebx
jmp 0x541e90
lea eax, [esp + 0x20]
and byte [eax + 0x1c], 0xbf
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x6445dc]
lea eax, [esp + 0x44]
lea ecx, [esp + 0x20]
push esi
mov esi, eax
push eax
call ebx
mov ebx, dword [esi]
lea eax, [esp + 0x20]
mov eax, dword [eax + 0x1c]
lock or dword [ebx + 8], eax
jmp 0x541fb3
xor edi, edi
inc edi
mov ebx, edi
test eax, eax
jg 0x541c78
jmp 0x541c85
movzx ebx, byte [edx]
mov dword [esp], ebx
movzx ebx, cl
xor ebx, dword [esp]
shr ecx, 8
xor ecx, dword [ebx*4 + 0x636878]
inc edx
dec edi
jne 0x54224e
jmp 0x542174
mov eax, dword [esi + 4]
sub eax, dword [esi]
sar eax, 2
lea ecx, [eax - 1]
mov dword [esp + 0x38], ecx
mov ecx, dword [esi]
mov edx, dword [esi + 4]
sub edx, ecx
cmp edx, 4
jbe 0x54241a
mov ecx, dword [ecx + 4]
mov dword [esp + 0x30], ecx
lea edx, [eax - 2]
mov ecx, dword [esi]
mov edi, dword [esi + 4]
sub edi, ecx
sar edi, 2
cmp edi, edx
jbe 0x54241a
mov eax, dword [ecx + eax*4 - 8]
mov dword [esp + 0x34], eax
jmp 0x541f69
push edi
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x541f18
mov dword [esp + 8], ecx
push edx
mov esi, dword [ebp + 8]
push esi
mov dword [esp + 0xc], edx
call fcn.00540c00
add esp, 8
push eax
push str.Histogram.TooManyBuckets.1000
call fcn.00510d30
add esp, 8
push 0
push 0x10
push str.Blink.UseCounter
push dword [esp + 0x10]
push esi
call fcn.0054b930
add esp, 0x14
test al, al
je 0x54244d
mov esi, dword [esp + 8]
mov edx, dword [esp + 4]
jmp 0x541c93
push 0x65071c
call fcn.0040bbb0
add esp, 4
test al, al
je 0x542442
mov dword [0x650720], 0
mov edi, 0x650720
mov dword [0x65071c], edi
jmp 0x541f09
push str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x62a183
call fcn.005aacb0
mov ebx, 0x7ffffffe
jmp 0x541c85
push str....._third_partylibc_srcinclude_string_view:267:_assertion___s___nullptr_failed:_null_pointer_passed_to_non_null_argument_of_char_traits_..._::length_n
push 0x62a183
call fcn.005aacb0
mov dword [esp], 0
mov eax, esi
jmp 0x541c70
lea ebx, [edi + 1]
mov dword [esp], 0
jmp 0x541c9b
push edx
push dword [ebp + 8]
call fcn.00540c00
add esp, 8
push eax
push str.Histogram.BadConstructionArguments
call fcn.00510d30
add esp, 8
call fcn.005e9340
mov dword [esp], eax
jmp 0x541dc7
bswap ebx
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov dword [esp], ecx
call dword [0x6445dc]
mov ecx, esi
push ebx
call dword [esp + 4]
mov ebx, eax
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test bl, bl
jne 0x541f33
jmp 0x5423f2
push dword [esp + 0x28]
push dword [esp + 0x28]
call fcn.00540c00
add esp, 8
push eax
push str.Histogram.MismatchedConstructionArguments
call fcn.00510d30
add esp, 8
call fcn.005e9340
mov dword [esp], eax
jmp 0x541da1
cmp esi, 0xffffffff
jne 0x5423d4
xor eax, eax
dec eax
jmp 0x541d99
push eax
call fcn.00506f30
add esp, 4
jmp 0x541dc7
push str....._third_partylibc_srcinclude_vector:1418:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x62a183
call fcn.005aacb0
mov edi, 2
mov ecx, 3
jmp 0x541c5f
xor ecx, ecx
jmp 0x5421d2
int3
mov edi, dword [0x65071c]
jmp 0x541f09
push 0
push 0x14
push str.PageLoad.Clients.Ads
push dword [esp + 0x10]
push dword [ebp + 8]
call fcn.0054b930
add esp, 0x14
test al, al
jne 0x542302
mov esi, 0x66
push 2
call fcn.00557ce0
add esp, 4
test al, al
jne 0x542490
mov dword [esp], 0
mov edx, dword [esp + 4]
jmp 0x541c93
lea ecx, [esp + 0x48]
push 2
push 0x1bf
push str.histogram.cc
call fcn.0040ca50
lea eax, [esp + 0x50]
push 0xb
push str.Histogram:
push eax
call fcn.00545ec0
add esp, 0xc
push dword [esp + 4]
push dword [ebp + 8]
push eax
call fcn.00545ec0
add esp, 0xc
push 0x1c
push str._has_too_many_bucket_count:
push eax
call fcn.00545ec0
add esp, 0xc
mov ecx, eax
push dword [esp + 8]
call fcn.00464a90
lea ecx, [esp + 0x48]
call fcn.0040b060
mov edx, dword [esp + 4]
mov dword [esp], 0
jmp 0x541c93