Function at 0x4f85c0
Capabilities:
Encode data using xor
Hash data with crc32
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x100
mov ecx, dword [ebp + 8]
mov eax, dword [0x646040]
xor eax, ebp
mov dword [esp + 0xf8], eax
movsx eax, byte [ecx + 0xb]
test eax, eax
jns 0x4f85ed
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
test eax, eax
js 0x4f9461
mov dword [esp + 4], eax
sete al
mov dword [esp], ecx
test ecx, ecx
setne cl
or cl, al
je 0x4f9470
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov edx, ecx
add edx, 1
mov esi, eax
adc esi, 0x80000000
cmp edx, 2
mov edi, dword [ebp + 0xc]
sbb esi, 0
mov esi, dword [ebp + 0x10]
mov ebx, 0x80000000
jb 0x4f94d3
push 0
push 0x3e8
push eax
push ecx
call fcn.005877d0
mov dword [esp + 8], eax
mov eax, edi
xor ecx, ecx
inc ecx
add eax, ecx
adc ebx, esi
cmp eax, 2
sbb ebx, 0
jb 0x4f94c5
push 0
push 0x3e8
push esi
push edi
call fcn.005877d0
mov ebx, dword [esp + 8]
cmp eax, ebx
setle cl
mov dword [esp + 8], ecx
mov edx, dword [esp]
mov edi, dword [esp + 4]
jg 0x4f9450
mov ecx, ebx
mov ebx, eax
mov esi, dword [ebp + 0x1c]
test ebx, ebx
jle 0x4f91c2
cmp ecx, 0x7fffffff
je 0x4f9457
mov eax, ecx
cmp esi, 0x3eb
jae 0x4f93bb
cmp eax, ebx
je 0x4f947f
cmp esi, 3
jb 0x4f94a1
mov ecx, eax
sub eax, ebx
add eax, 2
cmp esi, eax
setbe al
test byte [esp + 8], al
je 0x4f94a1
mov dword [esp + 0x30], 0x62323c
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], edi
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], esi
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x4c], eax
xorps xmm0, xmm0
lea ebx, [esp + 0x70]
movups xmmword [ebx + 0x34], xmm0
movups xmmword [ebx + 0x28], xmm0
movups xmmword [ebx + 0x18], xmm0
movups xmmword [ebx + 8], xmm0
movups xmmword [ebx - 8], xmm0
movapd xmm0, xmmword [0x630720]
movupd xmmword [ebx - 0x18], xmm0
test edi, edi
je 0x4f875b
lea eax, [edi*8]
mov ecx, edi
shr ecx, 0x1d
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
cmp edi, 0x40
jae 0x4f9113
mov dword [esp + 0xb0], edi
push edi
push edx
push ebx
call fcn.00568550
add esp, 0xc
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov byte [esp + ecx + 0x70], 0x80
lea eax, [ecx + 1]
cmp eax, 0x39
jae 0x4f90dd
cmp eax, 0x38
je 0x4f8795
mov ecx, 0x38
sub ecx, eax
add eax, ebx
push ecx
push 0
push eax
call fcn.00568ad0
add esp, 0xc
mov eax, ebx
lea ebx, [esp + 0x58]
mov dword [ebx + 0x50], esi
mov dword [ebx + 0x54], edi
push 1
push eax
push ebx
call fcn.004e2300
add esp, 0xc
mov eax, dword [ebx]
mov dword [esp + 4], eax
mov eax, dword [ebx + 4]
mov dword [esp], eax
mov esi, dword [0x6570b0]
test esi, esi
je 0x4f8834
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x14], eax
mov dword [esp + 8], esi
mov dword [esp + 0x58], 0xffffffff
mov edi, dword [esi + 0x3c]
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x34]
cmp eax, 0x30
je 0x4f9145
cmp eax, 0x40
jb 0x4f8834
mov edx, eax
and edx, 7
jne 0x4f8834
mov esi, eax
add esi, 0x10
jb 0x4f8834
mov edx, dword [ecx + 0xc]
cmp esi, edx
ja 0x4f8834
mov ecx, dword [ecx + 4]
mov esi, dword [ecx + eax + 4]
cmp esi, 0xc8799269
jne 0x4f8834
add ecx, eax
mov esi, dword [ecx]
cmp esi, 0x10
jb 0x4f8834
mov esi, dword [ecx]
add esi, eax
jb 0x4f8834
cmp esi, edx
ja 0x4f8834
test ecx, ecx
je 0x4f8834
mov ebx, dword [ecx + 0xc]
cmp ebx, 0x30
jne 0x4f8a8e
mov esi, dword [0x64c744]
cmp esi, 1
jbe 0x4f92f5
push esi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4f91d4
mov dword [esp + 8], esi
mov esi, dword [0x64c74c]
test esi, esi
je 0x4f8b64
mov eax, dword [0x64c744]
cmp eax, 1
jbe 0x4f9324
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x4f8b64
mov edx, dword [esp + 4]
bswap edx
mov eax, dword [esp]
bswap eax
mov dword [esp], eax
imul eax, eax, 0x5bd1e995
mov ecx, eax
shr ecx, 0x18
xor ecx, eax
imul eax, ecx, 0x5bd1e995
xor eax, 0xde8f4ca8
mov dword [esp + 4], edx
imul ecx, edx, 0x5bd1e995
mov edx, ecx
shr edx, 0x18
xor edx, ecx
imul ecx, edx, 0x5bd1e995
imul eax, eax, 0x5bd1e995
xor eax, ecx
mov ecx, eax
shr ecx, 0xd
xor ecx, eax
imul eax, ecx, 0x5bd1e995
mov ecx, eax
shr ecx, 0xf
xor ecx, eax
mov edx, ebx
shr edx, 1
and edx, 0x55555555
mov eax, ebx
sub eax, edx
mov edx, eax
and edx, 0x33333333
shr eax, 2
and eax, 0x33333333
add eax, edx
mov edx, eax
shr edx, 4
add edx, eax
and edx, 0xf0f0f0f
imul eax, edx, 0x1010101
shr eax, 0x18
mov dword [esp + 0x14], eax
cmp eax, 1
jbe 0x4f91b8
mov edi, ecx
cmp ecx, ebx
jb 0x4f8927
mov eax, ecx
xor edx, edx
div ebx
mov edi, edx
mov eax, dword [esi]
mov eax, dword [eax + edi*4]
test eax, eax
je 0x4f8b64
mov esi, dword [eax]
test esi, esi
je 0x4f8b64
mov eax, dword [esi + 4]
cmp ecx, eax
jne 0x4f8a44
mov eax, dword [esi + 8]
xor eax, dword [esp]
mov edx, dword [esi + 0xc]
xor edx, dword [esp + 4]
or edx, eax
jne 0x4f8a69
mov esi, dword [esi + 0x10]
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test esi, esi
je 0x4f8b6e
mov ebx, dword [esp + 0x3c]
mov eax, dword [esi]
mov edi, dword [eax + 0xc]
xor eax, eax
cmp edi, fcn.005616f0
je 0x4f89a9
cmp edi, 0x561760
je 0x4f8a3a
xor eax, eax
inc eax
cmp edi, 0x52c900
je 0x4f89a9
mov ecx, edi
call dword [0x6401dc]
mov ecx, esi
call edi
cmp ebx, eax
jne 0x4f9407
mov ebx, dword [esp + 0x48]
test ebx, ebx
je 0x4f8a22
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov edi, dword [eax + 0x10]
cmp edi, 0x561700
jne 0x4f8a70
mov eax, dword [esi + 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
jne 0x4f9407
cmp edi, 2
jb 0x4f948f
cmp edx, 1
jbe 0x4f94b6
mov edx, dword [esp]
cmp dword [eax + 4], edx
jne 0x4f9407
mov eax, dword [eax + ecx - 8]
cmp eax, dword [esp + 4]
jne 0x4f9407
mov ecx, dword [esp + 0xf8]
xor ecx, ebp
call fcn.00567335
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 2
jmp 0x4f89a9
cmp dword [esp + 0x14], 1
mov dword [esp + 0x18], edi
jbe 0x4f91ae
cmp eax, ebx
jb 0x4f8a5d
xor edx, edx
div ebx
mov eax, edx
mov edi, dword [esp + 0x18]
cmp eax, edi
jne 0x4f8b64
mov esi, dword [esi]
jmp 0x4f8936
mov ecx, edi
call dword [0x6401dc]
mov ecx, esi
push ebx
push dword [esp + 8]
push dword [esp + 8]
call edi
test al, al
jne 0x4f8a22
jmp 0x4f9407
mov ecx, dword [esp + 8]
mov esi, dword [ecx + 0x34]
cmp ebx, 0x40
mov dword [esp + 0x1c], esi
jb 0x4f9431
mov ecx, ebx
and ecx, 7
jne 0x4f9431
mov dword [esp + 0x18], edi
mov edx, ebx
add edx, 0x10
jb 0x4f9431
mov edi, dword [esi + 0xc]
cmp edx, edi
ja 0x4f9431
mov edx, dword [esi + 4]
mov ecx, dword [edx + ebx + 4]
cmp ecx, 0xc8799269
jne 0x4f9431
add edx, ebx
mov ecx, dword [edx]
cmp ecx, 0x10
jb 0x4f9431
mov esi, dword [edx]
add esi, ebx
setb cl
test edx, edx
je 0x4f9431
test cl, cl
jne 0x4f9431
cmp esi, edi
mov esi, dword [esp + 8]
ja 0x4f9431
lock cmpxchg dword [esi + 0x38], ebx
mov edi, dword [esp + 0x18]
jne 0x4f87dc
mov edi, dword [edx + 8]
mov ecx, dword [esi + 0x34]
mov eax, dword [ecx + 4]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ecx + 0xc]
cmp ecx, eax
cmovb eax, ecx
mov ecx, 0xaaaaaaab
mul ecx
shr edx, 4
cmp dword [esp + 0x18], edx
ja 0x4f9431
lock inc dword [esi + 0x3c]
cmp edi, 0xf1645914
jne 0x4f87d6
cmp ebx, dword [esp + 0x14]
je 0x4f87d6
jmp 0x4f91e0
push dword [esp + 8]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x38]
xorpd xmm0, xmm0
movupd xmmword [esp + 0xa4], xmm0
movupd xmmword [esp + 0x98], xmm0
movupd xmmword [esp + 0x88], xmm0
movupd xmmword [esp + 0x78], xmm0
movupd xmmword [esp + 0x68], xmm0
movapd xmm0, xmmword [0x630720]
movupd xmmword [esp + 0x58], xmm0
test edi, edi
lea ebx, [esp + 0x70]
je 0x4f8be8
lea eax, [edi*8]
mov ecx, edi
shr ecx, 0x1d
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
cmp edi, 0x40
jae 0x4f9150
mov eax, edi
mov dword [esp + 0xb0], eax
push eax
push esi
push ebx
call fcn.00568550
add esp, 0xc
mov ecx, dword [esp + 0xb0]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov byte [esp + ecx + 0x70], 0x80
lea eax, [ecx + 1]
cmp eax, 0x39
jae 0x4f8c8f
cmp eax, 0x38
je 0x4f8c22
mov ecx, 0x38
sub ecx, eax
add eax, ebx
push ecx
push 0
push eax
call fcn.00568ad0
add esp, 0xc
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edi
push 1
push ebx
lea eax, [esp + 0x60]
push eax
call fcn.004e2300
add esp, 0xc
mov eax, dword [esp + 0x58]
bswap eax
push eax
call fcn.00530c80
add esp, 4
test al, al
je 0x4f9425
mov eax, dword [esp + 0x30]
mov esi, dword [eax]
cmp esi, 0x529fe0
je 0x4f8cc5
cmp esi, 0x55bf50
je 0x4f8f6f
mov ecx, esi
call dword [0x6401dc]
lea ecx, [esp + 0x30]
call esi
jmp 0x4f8e98
mov byte [eax + 2], 0
mov word [eax], 0
jmp 0x4f8cae
cmp ecx, 0x3f
je 0x4f8cae
add eax, ebx
cmp ecx, 0x3c
je 0x4f8c84
mov edx, 0x3f
sub edx, ecx
push edx
push 0
push eax
call fcn.00568ad0
add esp, 0xc
push 1
push ebx
lea eax, [esp + 0x60]
push eax
call fcn.004e2300
add esp, 0xc
xor eax, eax
jmp 0x4f8c0d
push 0x14
call fcn.00564055
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x48]
inc eax
mov ecx, esi
push eax
call fcn.0052a210
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0x44]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00590e00
add esp, 8
fstp qword [esp + 0x28]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
sub ecx, eax
cmp ecx, 4
jbe 0x4f9441
movsd xmm0, qword [esp + 0x28]
movsd qword [esp + 8], xmm0
mov ebx, dword [esp + 0x40]
mov dword [eax + 4], ebx
mov ecx, dword [esi]
mov dword [esp], esi
mov eax, dword [esi + 4]
mov edi, eax
sub edi, ecx
sar edi, 2
lea edx, [edi - 1]
cmp edx, 3
jb 0x4f8dfe
add edi, 0xfffffffd
mov esi, 2
nop word cs:[eax + eax]
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
sub esp, 8
movsd qword [esp], xmm0
call fcn.00590e00
add esp, 8
fstp qword [esp + 0x58]
lea eax, [esp + 0x58]
push eax
call fcn.004ffdf0
add esp, 4
mov eax, dword [esp]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 4], ecx
sub eax, ecx
sar eax, 2
cmp eax, esi
jbe 0x4f9441
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 8]
subsd xmm1, xmm0
movd xmm2, edi
por xmm2, xmmword [0x628540]
subsd xmm2, qword [0x628550]
divsd xmm1, xmm2
addsd xmm1, xmm0
sub esp, 8
movsd qword [esp], xmm1
call fcn.00590e50
fstp qword [esp]
call fcn.00590dad
add esp, 8
fstp qword [esp + 0x20]
cvttsd2si eax, qword [esp + 0x20]
cmp ebx, eax
lea ebx, [ebx + 1]
cmovl ebx, eax
mov eax, dword [esp + 4]
mov dword [eax + esi*4], ebx
inc esi
dec edi
jne 0x4f8d50
mov eax, dword [esp]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
cmp eax, ecx
je 0x4f9441
mov dword [eax - 4], 0x7fffffff
mov eax, dword [esp]
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov edi, eax
sub edi, esi
je 0x4f94e5
js 0x4f94ec
mov ecx, edi
shr ecx, 2
mov edx, esi
and edi, 3
jne 0x4f92d4
sub esi, eax
cmp esi, 0xfffffffc
ja 0x4f8e92
nop dword [eax]
movzx esi, cl
movzx edi, byte [edx]
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x631d30]
movzx esi, cl
movzx edi, byte [edx + 1]
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x631d30]
movzx esi, cl
movzx edi, byte [edx + 2]
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x631d30]
movzx esi, cl
movzx edi, byte [edx + 3]
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x631d30]
add edx, 4
cmp edx, eax
jne 0x4f8e40
mov eax, dword [esp]
mov dword [eax + 0xc], ecx
push eax
call fcn.00530e50
add esp, 4
mov esi, eax
cmp dword [esp + 0x48], 0
je 0x4f9352
mov dword [esp + 0x50], 0
mov edi, dword [0x6570b0]
test edi, edi
je 0x4f9179
lea eax, [esp + 0x50]
mov ecx, edi
push eax
push dword [esp + 0x50]
push esi
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [esp + 0x4c]
push dword [esp + 0x4c]
push dword [esp + 0x58]
lea eax, [esp + 0x78]
push eax
call fcn.00531cd0
mov ebx, dword [esp + 0x58]
test ebx, ebx
je 0x4f9179
mov eax, dword [esp + 0x30]
mov esi, dword [eax + 8]
cmp esi, 0x4f0f90
je 0x4f8f20
cmp esi, 0x409010
je 0x4f8f4c
mov ecx, esi
call dword [0x6401dc]
lea ecx, [esp + 0x30]
push ebx
call esi
push ebx
call fcn.005313f0
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4f8973
xor edx, edx
cmp esi, ebx
sete dl
mov ecx, edi
push edx
push eax
call fcn.00530d10
jmp 0x4f8973
mov eax, dword [ebx]
mov esi, dword [eax + 0xc]
mov ecx, esi
call dword [0x6401dc]
mov ecx, ebx
call esi
cmp eax, 5
je 0x4f8f20
mov eax, dword [esp + 0x50]
test eax, eax
je 0x4f8f20
jmp 0x4f94f2
push 0x14
call fcn.00564055
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x48]
inc eax
mov ecx, edi
push eax
call fcn.0052a210
mov esi, dword [edi]
mov edx, dword [edi + 4]
mov eax, edx
sub eax, esi
sar eax, 2
lea ecx, [eax - 1]
cmp ecx, 2
jb 0x4f9030
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0x40]
cvtsi2sd xmm1, dword [esp + 0x44]
add eax, 0xfffffffd
movd xmm2, eax
por xmm2, xmmword [0x628540]
subsd xmm2, qword [0x628550]
xor edx, edx
inc edx
movq xmm3, qword [0x628550]
movsd xmm4, qword [0x617998]
mov esi, dword [edi]
mov ebx, edi
mov edi, dword [edi + 4]
sub edi, esi
sar edi, 2
cmp edi, edx
jbe 0x4f9441
movd xmm5, eax
por xmm5, xmm3
subsd xmm5, xmm3
mulsd xmm5, xmm0
lea edi, [edx - 1]
movd xmm6, edi
por xmm6, xmm3
subsd xmm6, xmm3
mulsd xmm6, xmm1
addsd xmm6, xmm5
divsd xmm6, xmm2
addsd xmm6, xmm4
cvttsd2si edi, xmm6
mov dword [esi + edx*4], edi
dec eax
inc edx
cmp edx, ecx
mov edi, ebx
jne 0x4f8fd9
mov esi, dword [edi]
mov edx, dword [edi + 4]
cmp edx, esi
je 0x4f9441
mov dword [edx - 4], 0x7fffffff
mov esi, dword [edi]
mov dword [esp], edi
mov eax, dword [edi + 4]
mov edi, eax
sub edi, esi
je 0x4f94e5
js 0x4f94ef
mov ecx, edi
shr ecx, 2
mov edx, esi
and edi, 3
jne 0x4f939a
sub esi, eax
cmp esi, 0xfffffffc
ja 0x4f8e92
mov esi, 0xff
mov edi, ecx
and edi, esi
movzx ebx, byte [edx]
xor ebx, edi
shr ecx, 8
xor ecx, dword [ebx*4 + 0x631d30]
mov edi, ecx
and edi, esi
movzx ebx, byte [edx + 1]
xor ebx, edi
shr ecx, 8
xor ecx, dword [ebx*4 + 0x631d30]
mov edi, ecx
and edi, esi
movzx ebx, byte [edx + 2]
xor ebx, edi
shr ecx, 8
xor ecx, dword [ebx*4 + 0x631d30]
mov edi, ecx
and edi, esi
movzx ebx, byte [edx + 3]
xor ebx, edi
shr ecx, 8
xor ecx, dword [ebx*4 + 0x631d30]
add edx, 4
cmp edx, eax
jne 0x4f9077
jmp 0x4f8e92
mov byte [eax + 2], 0
mov word [eax], 0
jmp 0x4f90fc
cmp ecx, 0x3f
je 0x4f90fc
add eax, ebx
cmp ecx, 0x3c
je 0x4f90d2
mov edx, 0x3f
sub edx, ecx
push edx
push 0
push eax
call fcn.00568ad0
add esp, 0xc
lea eax, [esp + 0x58]
push 1
push ebx
push eax
call fcn.004e2300
add esp, 0xc
xor eax, eax
jmp 0x4f8780
shr edi, 6
lea ecx, [esp + 0x58]
push edi
push edx
push ecx
mov esi, edx
call fcn.004e2300
mov ecx, dword [esp + 0x10]
add esp, 0xc
mov edi, ecx
and edi, 0x3f
je 0x4f875b
mov edx, esi
and ecx, 0x7fffffc0
add edx, ecx
jmp 0x4f8749
mov ecx, dword [ecx + 4]
add ecx, 0x30
jmp 0x4f8824
mov eax, edi
shr eax, 6
push eax
push esi
lea eax, [esp + 0x60]
push eax
call fcn.004e2300
add esp, 0xc
mov eax, edi
and eax, 0x3f
je 0x4f8be8
and edi, 0xffffffc0
add esi, edi
jmp 0x4f8bd6
lea eax, [esp + 0x30]
and byte [eax + 0x1c], 0xbf
mov eax, dword [eax]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x6401dc]
lea ecx, [esp + 0x30]
push esi
lea eax, [esp + 0x5c]
push eax
call ebx
mov ebx, dword [esp + 0x58]
lea eax, [esp + 0x30]
mov eax, dword [eax + 0x1c]
lock or dword [ebx + 8], eax
jmp 0x4f8efa
lea edx, [ebx - 1]
and eax, edx
jmp 0x4f8a5d
lea edi, [ebx - 1]
and edi, ecx
jmp 0x4f8927
xor ebx, ebx
inc ebx
mov eax, ebx
test ecx, ecx
jg 0x4f8694
jmp 0x4f86a2
push esi
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x4f8852
mov esi, dword [esi + 0x30]
mov ecx, dword [esi + 4]
push 0x68
push 0xf1645914
push ebx
call fcn.0052c910
mov dword [esp + 0x18], esi
mov ecx, dword [esi + 4]
push ebx
mov ebx, eax
call fcn.0052c980
test ebx, ebx
je 0x4f8834
cmp byte [ebx + 0x60], 0
je 0x4f8834
cmp byte [ebx + eax - 1], 0
jne 0x4f8834
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
mov edx, eax
or edx, ecx
je 0x4f8834
mov edi, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
mov esi, edi
or esi, edx
je 0x4f8834
mov esi, edi
xor esi, eax
mov dword [esp + 0x1c], ebx
mov ebx, edx
xor ebx, ecx
or ebx, esi
setne bl
add eax, 1
adc ecx, 0
xor eax, edi
xor ecx, edx
or ecx, eax
setne al
test bl, al
mov edi, dword [esp + 0x1c]
jne 0x4f8834
mov esi, edi
add esi, 0x60
push esi
call fcn.0057e5c0
add esp, 4
push eax
push esi
call fcn.00539f60
add esp, 8
xor edx, dword [edi + 0x24]
xor eax, dword [edi + 0x20]
or eax, edx
jne 0x4f8834
mov ecx, dword [esp + 0x18]
push edi
lea eax, [esp + 0x5c]
push eax
call fcn.0053ad60
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4f8834
xor esi, esi
mov dword [esp + 0x58], esi
push eax
call fcn.005313f0
add esp, 4
mov edi, dword [esp + 0x58]
mov dword [esp + 0x58], esi
test edi, edi
jne 0x4f9582
mov esi, dword [esp + 8]
jmp 0x4f87ce
movzx ebx, cl
mov dword [esp + 4], ebx
movzx ebx, byte [edx]
xor ebx, dword [esp + 4]
shr ecx, 8
xor ecx, dword [ebx*4 + 0x631d30]
inc edx
dec edi
jne 0x4f92d4
jmp 0x4f8e35
push 0x64c744
call fcn.0040ea60
add esp, 4
test al, al
je 0x4f956d
mov dword [0x64c748], 0
mov esi, 0x64c748
mov dword [0x64c744], esi
jmp 0x4f8843
push 0x64c744
call fcn.0040ea60
add esp, 4
test al, al
je 0x4f9578
mov dword [0x64c748], 0
mov eax, 0x64c748
mov dword [0x64c744], eax
jmp 0x4f8872
mov eax, dword [esi + 4]
sub eax, dword [esi]
sar eax, 2
lea ecx, [eax - 1]
mov dword [esp + 0x48], ecx
mov ecx, dword [esi]
mov edx, dword [esi + 4]
sub edx, ecx
cmp edx, 4
jbe 0x4f94b6
mov ecx, dword [ecx + 4]
mov dword [esp + 0x40], ecx
lea edx, [eax - 2]
mov ecx, dword [esi]
mov edi, dword [esi + 4]
sub edi, ecx
sar edi, 2
cmp edi, edx
jbe 0x4f94b6
mov eax, dword [ecx + eax*4 - 8]
mov dword [esp + 0x44], eax
jmp 0x4f8eae
movzx ebx, cl
mov dword [esp + 4], ebx
movzx ebx, byte [edx]
xor ebx, dword [esp + 4]
shr ecx, 8
xor ecx, dword [ebx*4 + 0x631d30]
inc edx
dec edi
jne 0x4f939a
jmp 0x4f9067
mov dword [esp + 0x14], eax
push edi
push edx
mov esi, edx
call fcn.00539f60
add esp, 8
push eax
push str.Histogram.TooManyBuckets.1000
call fcn.0053a370
add esp, 8
push 0
push 0x10
push str.Blink.UseCounter
push edi
push esi
call fcn.00537f50
add esp, 0x14
test al, al
je 0x4f9599
mov esi, dword [ebp + 0x1c]
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x14]
mov edx, dword [esp]
jmp 0x4f86ae
push dword [esp + 0x38]
push dword [esp + 0x38]
call fcn.00539f60
add esp, 8
push eax
push str.Histogram.MismatchedConstructionArguments
call fcn.0053a370
add esp, 8
call fcn.005c6df0
mov esi, eax
jmp 0x4f8a22
mov ecx, dword [esp + 0x1c]
push 1
call fcn.00591c90
jmp 0x4f8834
push str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x624e92
call fcn.005912b0
mov ecx, eax
jmp 0x4f8689
mov eax, 0x7ffffffe
jmp 0x4f86a2
push str....._third_partylibc_srcinclude_string_view:318:_assertion___len___static_cast_size_type__numeric_limits_difference_type_::max____failed:_string_view::string_view__CharT___size_t_:_length_does_not_fit_in_difference_type_n
push 0x624e92
call fcn.005912b0
push str....._third_partylibc_srcinclude_string_view:320:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
push 0x624e92
call fcn.005912b0
lea eax, [ebx + 1]
mov dword [esp + 8], 0
jmp 0x4f86b6
cmp dword [esp], 0xffffffff
jne 0x4f9407
xor eax, eax
dec eax
jmp 0x4f8a18
push edi
push edx
call fcn.00539f60
add esp, 8
push eax
push str.Histogram.BadConstructionArguments
jmp 0x4f941d
push str....._third_partylibc_srcinclude_vector:1418:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x624e92
call fcn.005912b0
xor eax, eax
test esi, esi
setns al
neg eax
jmp 0x4f866b
xor ecx, ecx
test eax, eax
setns cl
neg ecx
mov dword [esp + 8], ecx
jmp 0x4f8648
xor ecx, ecx
jmp 0x4f8e92
int3
int3
mov ecx, dword [eax + 4]
mov dword [esp + 4], ecx
test ecx, ecx
je 0x4f8f20
lea ecx, [ebx + 0x14]
mov dword [esp + 0x14], ecx
mov dword [esp], 0
mov dword [esp + 8], 0xc
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x14]
lea edx, [esp + 0x58]
lea esi, [esp + 0x54]
push esi
push eax
call fcn.005bab10
add esp, 8
mov ecx, dword [esp + 0x58]
add ecx, 0x14
push dword [esp + 4]
call fcn.00433160
mov ecx, dword [esp + 0x50]
mov edx, dword [esp]
lea eax, [ecx + edx*8]
add eax, 8
inc edx
mov dword [esp], edx
mov edx, dword [esp + 8]
mov ecx, dword [ecx + edx]
add edx, 8
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
test ecx, ecx
jne 0x4f9517
jmp 0x4f8f20
mov esi, dword [0x64c744]
jmp 0x4f8843
mov eax, dword [0x64c744]
jmp 0x4f8872
mov eax, dword [edi]
mov esi, dword [eax]
mov ecx, esi
call dword [0x6401dc]
mov ecx, edi
push 1
call esi
jmp 0x4f92cb
push 0
push 0x14
push str.PageLoad.Clients.Ads
push dword [esp + 0x10]
push dword [esp + 0x10]
call fcn.00537f50
add esp, 0x14
test al, al
je 0x4f95c9
mov esi, dword [ebp + 0x1c]
mov edx, dword [esp]
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x14]
jmp 0x4f86ae
mov esi, 0x66
push 2
call fcn.00561770
add esp, 4
test al, al
jne 0x4f95e6
mov dword [esp + 8], 0
jmp 0x4f95b9
lea ecx, [esp + 0x58]
push 2
push 0x1bf
push str.histogram.cc
call fcn.004096e0
lea eax, [esp + 0x60]
push 0xb
push str.Histogram:
push eax
call fcn.0052f110
add esp, 0xc
push dword [esp + 4]
mov edi, dword [esp + 4]
push edi
push eax
call fcn.0052f110
add esp, 0xc
push 0x1c
push str._has_too_many_bucket_count:
push eax
call fcn.0052f110
add esp, 0xc
mov ecx, eax
push dword [ebp + 0x1c]
call fcn.00455d50
lea ecx, [esp + 0x58]
call fcn.00407fc0
mov edx, edi
mov edi, dword [esp + 4]
mov dword [esp + 8], 0
jmp 0x4f95c0