Function at 0x4f6220
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, 0x108
mov edx, dword [ebp + 8]
mov eax, dword [0x644040]
xor eax, ebp
mov dword [esp + 0x100], eax
movsx eax, byte [edx + 0xb]
test eax, eax
jns 0x4f7159
mov ecx, dword [edx + 4]
test al, al
jns 0x4f6255
mov edx, dword [edx]
mov dword [esp + 8], ecx
test ecx, ecx
js 0x4f716a
mov esi, dword [ebp + 0xc]
mov eax, dword [ebp + 0x10]
mov dword [esp + 0xc], eax
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
je 0x4f627b
test edx, edx
je 0x4f71e6
mov dword [esp + 4], edx
mov edx, ecx
add edx, 1
mov edi, eax
adc edi, 0x80000000
cmp edx, 2
mov ebx, 0x80000000
sbb edi, 0
mov edi, 1
jb 0x4f71d4
push 0
push 0x3e8
push eax
push ecx
call fcn.00588630
mov dword [esp + 0x10], eax
add edi, esi
mov ecx, dword [esp + 0xc]
adc ebx, ecx
cmp edi, 2
sbb ebx, 0
jb 0x4f71c6
push 0
push 0x3e8
push ecx
push esi
call fcn.00588630
mov ebx, dword [esp + 0x10]
mov cl, 1
mov dword [esp + 0x10], ecx
cmp eax, ebx
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
jg 0x4f7179
mov ecx, ebx
mov ebx, eax
mov edi, dword [ebp + 0x1c]
test ebx, ebx
jle 0x4f6f76
cmp ecx, 0x7fffffff
je 0x4f7160
mov eax, ecx
cmp edi, 0x3eb
jae 0x4f705a
cmp eax, ebx
je 0x4f7188
cmp edi, 3
jb 0x4f70ff
mov ecx, eax
sub eax, ebx
add eax, 2
cmp edi, eax
ja 0x4f70ff
cmp byte [esp + 0x10], 0
je 0x4f70ff
mov dword [esp + 0x34], 0x6222cc
mov dword [esp + 0x38], edx
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edi
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x50], eax
xorps xmm0, xmm0
movups xmmword [esp + 0xa4], xmm0
movups xmmword [esp + 0x98], xmm0
movups xmmword [esp + 0x88], xmm0
movups xmmword [esp + 0x78], xmm0
movups xmmword [esp + 0x68], xmm0
movapd xmm0, xmmword [0x62f520]
movupd xmmword [esp + 0x58], xmm0
lea ebx, [esp + 0x70]
test esi, esi
je 0x4f63db
lea eax, [esi*8]
mov ecx, esi
shr ecx, 0x1d
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
cmp esi, 0x40
jae 0x4f6d7f
mov eax, esi
mov dword [esp + 0xb0], eax
push eax
push edx
push ebx
call fcn.00569390
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 0x4f6d49
cmp eax, 0x38
je 0x4f6415
mov ecx, 0x38
sub ecx, eax
add eax, ebx
push ecx
push 0
push eax
call fcn.00569910
add esp, 0xc
mov dword [esp + 0xa8], esi
mov dword [esp + 0xac], edi
lea eax, [esp + 0x58]
push 1
push ebx
push eax
call fcn.004dde80
add esp, 0xc
mov eax, dword [esp + 0x58]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 8], eax
mov esi, dword [0x655080]
test esi, esi
je 0x4f64be
mov eax, dword [esi + 0x2c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 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 0x4f6df0
cmp eax, 0x40
jb 0x4f64be
mov edx, eax
and edx, 7
jne 0x4f64be
mov esi, eax
add esi, 0x10
jb 0x4f64be
mov edx, dword [ecx + 0xc]
cmp esi, edx
ja 0x4f64be
mov ecx, dword [ecx + 4]
mov esi, dword [ecx + eax + 4]
cmp esi, 0xc8799269
jne 0x4f64be
add ecx, eax
mov esi, dword [ecx]
cmp esi, 0x10
jb 0x4f64be
mov esi, dword [ecx]
add esi, eax
jb 0x4f64be
cmp esi, edx
ja 0x4f64be
test ecx, ecx
je 0x4f64be
mov ebx, dword [ecx + 0xc]
cmp ebx, 0x30
jne 0x4f66fa
mov esi, dword [0x64a734]
cmp esi, 1
jbe 0x4f6f88
push esi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4f6e7c
mov dword [esp + 0x10], esi
mov esi, dword [0x64a73c]
test esi, esi
je 0x4f67d0
mov eax, dword [0x64a734]
cmp eax, 1
jbe 0x4f6fb7
mov edi, dword [esi + 4]
test edi, edi
je 0x4f67d0
mov edx, dword [esp + 4]
bswap edx
mov eax, dword [esp + 8]
bswap eax
mov dword [esp + 8], 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, edi
shr edx, 1
and edx, 0x55555555
mov eax, edi
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 + 0xc], eax
cmp eax, 1
jbe 0x4f6e67
mov ebx, ecx
cmp ecx, edi
jb 0x4f65b3
mov eax, ecx
xor edx, edx
div edi
mov ebx, edx
mov eax, dword [esi]
mov eax, dword [eax + ebx*4]
test eax, eax
je 0x4f67d0
mov esi, dword [eax]
test esi, esi
je 0x4f67d0
mov eax, dword [esi + 4]
cmp ecx, eax
jne 0x4f66ce
mov eax, dword [esi + 8]
xor eax, dword [esp + 8]
mov edx, dword [esi + 0xc]
xor edx, dword [esp + 4]
or edx, eax
jne 0x4f66f3
mov ebx, dword [esi + 0x10]
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebx, ebx
je 0x4f67da
mov esi, dword [esp + 0x40]
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
xor eax, eax
cmp edi, fcn.00562fa0
je 0x4f661f
mov ecx, edi
call dword [0x63e64c]
mov ecx, ebx
call edi
cmp esi, eax
jne 0x4f7111
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x4f6698
mov ecx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [esp + 8], eax
mov eax, dword [ebx]
mov edi, dword [eax + 0x10]
cmp edi, 0x562fb0
mov dword [esp + 4], ecx
jne 0x4f66b0
mov eax, dword [ebx + 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, esi
mov esi, dword [esp + 8]
jne 0x4f7111
cmp edi, 2
jb 0x4f71a4
cmp edx, 1
mov edx, dword [esp + 4]
jbe 0x4f71b7
cmp dword [eax + 4], edx
jne 0x4f7111
mov eax, dword [eax + ecx - 8]
cmp eax, esi
jne 0x4f7111
mov ecx, dword [esp + 0x100]
xor ecx, ebp
call fcn.00568175
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
call dword [0x63e64c]
mov ecx, ebx
push esi
push dword [esp + 0xc]
push dword [esp + 0xc]
call edi
test al, al
jne 0x4f6698
jmp 0x4f7111
cmp dword [esp + 0xc], 1
mov dword [esp + 0x18], ebx
jbe 0x4f6e24
cmp eax, edi
jb 0x4f66e7
xor edx, edx
div edi
mov eax, edx
mov ebx, dword [esp + 0x18]
cmp eax, ebx
jne 0x4f67d0
mov esi, dword [esi]
jmp 0x4f65c2
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x34]
cmp ebx, 0x40
mov dword [esp + 0x1c], esi
jb 0x4f70ef
mov ecx, ebx
and ecx, 7
jne 0x4f70ef
mov dword [esp + 0x18], edi
mov edx, ebx
add edx, 0x10
jb 0x4f70ef
mov edi, dword [esi + 0xc]
cmp edx, edi
ja 0x4f70ef
mov edx, dword [esi + 4]
mov ecx, dword [edx + ebx + 4]
cmp ecx, 0xc8799269
jne 0x4f70ef
add edx, ebx
mov ecx, dword [edx]
cmp ecx, 0x10
jb 0x4f70ef
mov esi, dword [edx]
add esi, ebx
setb cl
test edx, edx
je 0x4f70ef
test cl, cl
jne 0x4f70ef
cmp esi, edi
mov esi, dword [esp + 0x10]
ja 0x4f70ef
lock cmpxchg dword [esi + 0x38], ebx
mov edi, dword [esp + 0x18]
jne 0x4f6466
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 0x4f70ef
lock inc dword [esi + 0x3c]
cmp edi, 0xf1645914
jne 0x4f6460
cmp ebx, dword [esp + 0xc]
je 0x4f6460
jmp 0x4f6e88
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov esi, dword [esp + 0x38]
mov edi, dword [esp + 0x3c]
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 [0x62f520]
movupd xmmword [esp + 0x58], xmm0
test edi, edi
lea ebx, [esp + 0x70]
je 0x4f6854
lea eax, [edi*8]
mov ecx, edi
shr ecx, 0x1d
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
cmp edi, 0x40
jae 0x4f6dfb
mov eax, edi
mov dword [esp + 0xb0], eax
push eax
push esi
push ebx
call fcn.00569390
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 0x4f6dba
cmp eax, 0x38
je 0x4f688e
mov ecx, 0x38
sub ecx, eax
add eax, ebx
push ecx
push 0
push eax
call fcn.00569910
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.004dde80
add esp, 0xc
mov ebx, dword [esp + 0x58]
mov edi, dword [0x64a734]
cmp edi, 1
jbe 0x4f70a9
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x4f704e
mov eax, dword [0x64a73c]
test eax, eax
je 0x4f68e2
mov esi, dword [eax + 0x50]
test esi, esi
jne 0x4f7227
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x34]
mov esi, dword [eax]
cmp esi, 0x558840
je 0x4f6aee
mov ecx, esi
call dword [0x63e64c]
lea ecx, [esp + 0x34]
call esi
push eax
call fcn.004f7340
add esp, 4
mov esi, eax
cmp dword [esp + 0x4c], 0
je 0x4f7006
mov dword [esp + 0x58], 0
mov ebx, dword [0x655080]
test ebx, ebx
je 0x4f6e2e
lea edi, [esp + 0x54]
mov ecx, ebx
lea eax, [esp + 0x58]
push eax
push dword [esp + 0x54]
push esi
push dword [esp + 0x54]
push dword [esp + 0x54]
push dword [esp + 0x50]
push dword [esp + 0x50]
push dword [esp + 0x5c]
push edi
call fcn.004f8080
mov edi, dword [edi]
test edi, edi
je 0x4f6e2e
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 8]
cmp esi, method.std::__Cr::basic_streambuf_char__struct_std::__Cr::char_traits_char__.virtual_4
je 0x4f6987
mov ecx, esi
call dword [0x63e64c]
lea ecx, [esp + 0x34]
push edi
call esi
push edi
call fcn.004f78e0
add esp, 4
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x58]
mov eax, ecx
mov dword [esp + 4], ecx
test ecx, ecx
je 0x4f6ae5
mov ecx, dword [ebx + 4]
cmp dword [esp + 8], edi
jne 0x4f70d8
mov al, byte [ecx + 0x1c]
test al, 1
jne 0x4f6ae5
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x24]
test al, 1
jne 0x4f71f5
cmp dword [esp + 4], 0x40
jb 0x4f6ae5
mov eax, dword [esp + 4]
and eax, 7
jne 0x4f6ae5
mov esi, dword [esp + 4]
add esi, 0x10
jb 0x4f6ae5
mov eax, dword [ecx + 0xc]
cmp esi, eax
ja 0x4f6ae5
mov esi, dword [esp + 4]
mov esi, dword [edx + esi + 4]
cmp esi, 0xc8799269
jne 0x4f6ae5
add edx, dword [esp + 4]
mov esi, dword [edx]
cmp esi, 0x10
jb 0x4f6ae5
mov esi, dword [edx]
add esi, dword [esp + 4]
setb bl
test edx, edx
je 0x4f6ae5
test bl, bl
jne 0x4f6ae5
cmp esi, eax
ja 0x4f6ae5
mov esi, 0x30
xor eax, eax
lock cmpxchg dword [edx + 0xc], esi
jne 0x4f6ae5
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0x2c]
cmp edx, 0x30
je 0x4f6e71
cmp edx, 0x40
jb 0x4f7198
mov eax, edx
and eax, 7
jne 0x4f7198
mov esi, edx
add esi, 0x10
jb 0x4f7198
mov eax, dword [ecx + 0xc]
cmp esi, eax
ja 0x4f7198
mov esi, dword [ecx + 4]
mov edi, dword [esi + edx + 4]
cmp edi, 0xc8799269
jne 0x4f7198
add esi, edx
mov edi, dword [esi]
cmp edi, 0x10
jb 0x4f7198
mov edi, dword [esi]
add edi, edx
jb 0x4f7198
cmp edi, eax
ja 0x4f7198
test esi, esi
je 0x4f7198
mov eax, 0x30
mov edi, dword [esp + 4]
lock cmpxchg dword [esi + 0xc], edi
jne 0x4f720b
mov esi, edi
mov ecx, dword [ecx + 4]
mov eax, edx
lock cmpxchg dword [ecx + 0x2c], edi
mov ebx, dword [esp + 8]
jmp 0x4f6600
push 0x14
call fcn.00564ea5
add esp, 4
mov ebx, eax
mov ecx, dword [esp + 0x4c]
xor eax, eax
mov esi, ecx
mov dword [ebx], eax
mov dword [ebx + 4], eax
mov dword [ebx + 8], eax
mov edi, 0
mov edx, 0
inc esi
mov dword [esp + 8], ebx
je 0x4f6b7e
mov dword [esp + 4], ecx
cmp esi, 0x40000000
jae 0x4f721e
lea eax, [esi*4]
push eax
call fcn.00564ea5
add esp, 4
mov edi, eax
mov ebx, dword [esp + 8]
mov dword [ebx], eax
mov dword [ebx + 4], eax
lea esi, [eax + esi*4]
mov dword [ebx + 8], esi
mov eax, dword [esp + 4]
lea eax, [eax*4 + 4]
xor ecx, ecx
nop dword [eax]
mov edx, edi
add edx, ecx
je 0x4f714a
mov dword [edx], 0
add ecx, 4
cmp eax, ecx
jne 0x4f6b60
mov dword [ebx + 4], esi
xor eax, eax
mov edx, esi
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x10], eax
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0x48]
sub esp, 8
movsd qword [esp], xmm0
mov esi, edx
call fcn.00591c60
add esp, 8
fstp qword [esp + 0x28]
sub esi, edi
cmp esi, 4
jbe 0x4f713b
movsd xmm0, qword [esp + 0x28]
movsd qword [esp + 0x10], xmm0
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
mov dword [edi + 4], eax
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
mov edi, eax
sub edi, ecx
sar edi, 2
lea edx, [edi - 1]
cmp edx, 3
jb 0x4f6ca0
add edi, 0xfffffffd
mov esi, 2
mov ecx, dword [esp + 4]
nop dword [eax]
mov dword [esp + 4], ecx
xorps xmm0, xmm0
cvtsi2sd xmm0, ecx
sub esp, 8
movsd qword [esp], xmm0
call fcn.00591c60
add esp, 8
fstp qword [esp + 0x58]
lea eax, [esp + 0x58]
push eax
call fcn.004ef3c0
add esp, 4
mov eax, dword [esp + 8]
mov ebx, dword [eax]
mov eax, dword [eax + 4]
sub eax, ebx
sar eax, 2
cmp eax, esi
jbe 0x4f713b
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x10]
subsd xmm1, xmm0
movd xmm2, edi
por xmm2, xmmword [0x627190]
subsd xmm2, qword [0x6271a0]
divsd xmm1, xmm2
addsd xmm1, xmm0
sub esp, 8
movsd qword [esp], xmm1
call fcn.00591cb0
fstp qword [esp]
call fcn.00591c0d
add esp, 8
fstp qword [esp + 0x20]
cvttsd2si eax, qword [esp + 0x20]
mov ecx, dword [esp + 4]
cmp ecx, eax
lea ecx, [ecx + 1]
cmovl ecx, eax
mov dword [ebx + esi*4], ecx
inc esi
dec edi
jne 0x4f6bf0
mov ebx, dword [esp + 8]
mov ecx, dword [ebx]
mov eax, dword [ebx + 4]
cmp eax, ecx
je 0x4f713b
mov dword [eax - 4], 0x7fffffff
mov esi, dword [ebx]
mov eax, dword [ebx + 4]
mov edi, eax
sub edi, esi
je 0x4f7201
js 0x4f7208
mov ecx, edi
shr ecx, 2
mov edx, esi
and edi, 3
jne 0x4f6fe5
sub esi, eax
cmp esi, 0xfffffffc
ja 0x4f6d32
nop dword [eax + eax]
movzx esi, byte [edx]
movzx edi, cl
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x630a84]
movzx esi, byte [edx + 1]
movzx edi, cl
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x630a84]
movzx esi, byte [edx + 2]
movzx edi, cl
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x630a84]
movzx esi, byte [edx + 3]
movzx edi, cl
xor edi, esi
shr ecx, 8
xor ecx, dword [edi*4 + 0x630a84]
add edx, 4
cmp edx, eax
jne 0x4f6ce0
mov eax, dword [esp + 8]
mov dword [eax + 0xc], ecx
jmp 0x4f6909
mov byte [eax + 2], 0
mov word [eax], 0
jmp 0x4f6d68
cmp ecx, 0x3f
je 0x4f6d68
add eax, ebx
cmp ecx, 0x3c
je 0x4f6d3e
mov edx, 0x3f
sub edx, ecx
push edx
push 0
push eax
call fcn.00569910
add esp, 0xc
lea eax, [esp + 0x58]
push 1
push ebx
push eax
call fcn.004dde80
add esp, 0xc
xor eax, eax
jmp 0x4f6400
mov eax, esi
shr eax, 6
lea ecx, [esp + 0x58]
push eax
push edx
push ecx
call fcn.004dde80
mov edx, dword [esp + 0x10]
add esp, 0xc
mov eax, esi
and eax, 0x3f
je 0x4f63db
and esi, 0x7fffffc0
add edx, esi
jmp 0x4f63c9
mov byte [eax + 2], 0
mov word [eax], 0
jmp 0x4f6dd9
cmp ecx, 0x3f
je 0x4f6dd9
add eax, ebx
cmp ecx, 0x3c
je 0x4f6daf
mov edx, 0x3f
sub edx, ecx
push edx
push 0
push eax
call fcn.00569910
add esp, 0xc
push 1
push ebx
lea eax, [esp + 0x60]
push eax
call fcn.004dde80
add esp, 0xc
xor eax, eax
jmp 0x4f6879
mov ecx, dword [ecx + 4]
add ecx, 0x30
jmp 0x4f64ae
mov eax, edi
shr eax, 6
push eax
push esi
lea eax, [esp + 0x60]
push eax
call fcn.004dde80
add esp, 0xc
mov eax, edi
and eax, 0x3f
je 0x4f6854
and edi, 0xffffffc0
add esi, edi
jmp 0x4f6842
lea edx, [edi - 1]
and eax, edx
jmp 0x4f66e7
lea eax, [esp + 0x34]
and byte [eax + 0x1c], 0xbf
mov eax, dword [eax]
mov edi, ebx
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x63e64c]
lea eax, [esp + 0x54]
lea ecx, [esp + 0x34]
push esi
mov esi, eax
push eax
call ebx
mov ebx, edi
mov edi, dword [esi]
lea eax, [esp + 0x34]
mov eax, dword [eax + 0x1c]
lock or dword [edi + 8], eax
jmp 0x4f6969
lea ebx, [edi - 1]
and ebx, ecx
jmp 0x4f65b3
mov esi, dword [ecx + 4]
add esi, 0x30
jmp 0x4f6abd
push esi
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x4f64dc
mov esi, dword [esi + 0x30]
mov ecx, dword [esi + 4]
push 0x68
push 0xf1645914
push ebx
call fcn.0052b910
mov dword [esp + 0x18], esi
mov ecx, dword [esi + 4]
push ebx
mov ebx, eax
call fcn.0052b980
test ebx, ebx
je 0x4f64be
cmp byte [ebx + 0x60], 0
je 0x4f64be
cmp byte [ebx + eax - 1], 0
jne 0x4f64be
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
mov edx, ecx
or edx, eax
je 0x4f64be
mov edx, dword [ebx + 0x40]
mov edi, dword [ebx + 0x44]
mov esi, edx
or esi, edi
je 0x4f64be
mov esi, edx
xor esi, ecx
mov dword [esp + 0x1c], ebx
mov ebx, edi
xor ebx, eax
add ecx, 1
adc eax, 0
or ebx, esi
mov ebx, dword [esp + 0x1c]
je 0x4f6f0d
xor edx, ecx
xor edi, eax
or edi, edx
jne 0x4f64be
mov esi, ebx
add esi, 0x60
push esi
call fcn.0057f420
add esp, 4
push eax
push esi
call fcn.0052b630
add esp, 8
xor edx, dword [ebx + 0x24]
xor eax, dword [ebx + 0x20]
or eax, edx
jne 0x4f64be
mov ecx, dword [esp + 0x18]
push ebx
lea eax, [esp + 0x5c]
push eax
call fcn.0052cf70
mov eax, dword [esp + 0x58]
test eax, eax
je 0x4f64be
xor esi, esi
mov dword [esp + 0x58], esi
push eax
call fcn.004f78e0
add esp, 4
mov edi, dword [esp + 0x58]
mov dword [esp + 0x58], esi
test edi, edi
jne 0x4f726a
mov esi, dword [esp + 0x10]
jmp 0x4f6458
xor ebx, ebx
inc ebx
mov eax, ebx
test ecx, ecx
jg 0x4f62ff
jmp 0x4f630d
push 0x64a734
call fcn.00409590
add esp, 4
test al, al
je 0x4f7255
mov dword [0x64a738], 0
mov esi, 0x64a738
mov dword [0x64a734], esi
jmp 0x4f64cd
push 0x64a734
call fcn.00409590
add esp, 4
test al, al
je 0x4f7260
mov dword [0x64a738], 0
mov eax, 0x64a738
mov dword [0x64a734], eax
jmp 0x4f64fc
movzx ebx, byte [edx]
mov dword [esp + 4], ebx
movzx ebx, cl
xor ebx, dword [esp + 4]
shr ecx, 8
xor ecx, dword [ebx*4 + 0x630a84]
inc edx
dec edi
jne 0x4f6fe5
jmp 0x4f6cd4
mov eax, dword [esi + 4]
sub eax, dword [esi]
sar eax, 2
lea ecx, [eax - 1]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esi]
mov edx, dword [esi + 4]
sub edx, ecx
cmp edx, 4
jbe 0x4f71b7
mov ecx, dword [ecx + 4]
mov dword [esp + 0x44], ecx
lea edx, [eax - 2]
mov ecx, dword [esi]
mov edi, dword [esi + 4]
sub edi, ecx
sar edi, 2
cmp edi, edx
jbe 0x4f71b7
mov eax, dword [ecx + eax*4 - 8]
mov dword [esp + 0x48], eax
jmp 0x4f691f
push edi
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x4f68ce
mov dword [esp + 0xc], eax
push esi
push edx
mov edi, esi
mov esi, edx
call fcn.0052b630
add esp, 8
push eax
push str.Histogram.TooManyBuckets.1000
call fcn.004faec0
add esp, 8
push 0
push 0x10
push str.Blink.UseCounter
push edi
push esi
call fcn.005357f0
add esp, 0x14
test al, al
je 0x4f728c
mov edi, dword [ebp + 0x1c]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0xc]
jmp 0x4f6319
push 0x64a734
call fcn.00409590
add esp, 4
test al, al
je 0x4f7281
mov dword [0x64a738], 0
mov edi, 0x64a738
mov dword [0x64a734], edi
jmp 0x4f68bf
xor eax, eax
push eax
push 0xf1645914
push eax
push dword [esp + 0x10]
call fcn.00412380
jmp 0x4f6ae5
mov ecx, dword [esp + 0x1c]
push 1
call fcn.00592910
jmp 0x4f64be
push esi
push edx
call fcn.0052b630
add esp, 8
push eax
push str.Histogram.BadConstructionArguments
jmp 0x4f7127
push dword [esp + 0x3c]
push dword [esp + 0x3c]
call fcn.0052b630
add esp, 8
push eax
push 0x62fb00
call fcn.004faec0
add esp, 8
call fcn.005c7650
mov ebx, eax
jmp 0x4f6698
push str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x624173
call fcn.00591ed0
push str....._third_partylibc_srcinclude__memoryconstruct_at.h:40:_assertion___location___nullptr_failed:_null_pointer_given_to_construct_at_n
push 0x624173
call fcn.00591ed0
mov ecx, eax
jmp 0x4f624f
mov eax, 0x7ffffffe
jmp 0x4f630d
push str....._third_partylibc_srcinclude_string_view:314:_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 0x624173
call fcn.00591ed0
mov dword [esp + 0x10], 0
mov ecx, eax
jmp 0x4f62f4
lea eax, [ebx + 1]
mov dword [esp + 0x10], 0
jmp 0x4f6321
push 1
call fcn.00592910
jmp 0x4f6ae5
cmp dword [esp + 4], 0xffffffff
jne 0x4f7111
xor eax, eax
dec eax
jmp 0x4f6690
push str....._third_partylibc_srcinclude_vector:1418:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x624173
call fcn.00591ed0
xor eax, eax
test ecx, ecx
setns al
neg eax
jmp 0x4f62d6
xor ecx, ecx
test eax, eax
setns cl
neg ecx
mov dword [esp + 0x10], ecx
jmp 0x4f62b4
push str....._third_partylibc_srcinclude_string_view:316:_assertion___len__0____s___nullptr_failed:_string_view::string_view__CharT___size_t_:_received_nullptr_n
push 0x624173
call fcn.00591ed0
push 0
call fcn.00592910
jmp 0x4f6ae5
xor ecx, ecx
jmp 0x4f6d32
int3
mov edi, eax
mov esi, dword [ecx + 4]
mov eax, edx
lock cmpxchg dword [esi + 0x2c], edi
mov edx, eax
jmp 0x4f6a58
mov ecx, dword [esp + 8]
call fcn.00591ed0
bswap ebx
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov dword [esp + 4], ecx
call dword [0x63e64c]
mov ecx, esi
push ebx
call dword [esp + 8]
mov ebx, eax
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test bl, bl
jne 0x4f68e9
jmp 0x4f712f
mov esi, dword [0x64a734]
jmp 0x4f64cd
mov eax, dword [0x64a734]
jmp 0x4f64fc
mov eax, dword [edi]
mov esi, dword [eax]
mov ecx, esi
call dword [0x63e64c]
mov ecx, edi
push 1
call esi
jmp 0x4f6f6d
mov edi, dword [0x64a734]
jmp 0x4f68bf
push 0
push 0x14
push str.PageLoad.Clients.Ads
push dword [esp + 0x14]
push dword [esp + 0x14]
call fcn.005357f0
add esp, 0x14
test al, al
jne 0x4f7095
mov edi, 0x66
push 2
call fcn.00563020
add esp, 4
test al, al
jne 0x4f72cd
mov dword [esp + 0x10], 0
jmp 0x4f7098
lea ecx, [esp + 0x58]
push 2
push 0x1bf
push str.histogram.cc
call fcn.0040a9f0
lea eax, [esp + 0x60]
push 0xb
push str.Histogram:
push eax
call fcn.005320d0
add esp, 0xc
push dword [esp + 8]
mov esi, dword [esp + 8]
push esi
push eax
call fcn.005320d0
add esp, 0xc
push 0x1c
push str._has_too_many_bucket_count:
push eax
call fcn.005320d0
add esp, 0xc
mov ecx, eax
push dword [ebp + 0x1c]
call fcn.00451d70
lea ecx, [esp + 0x58]
call fcn.00407a90
mov edx, esi
mov esi, dword [esp + 8]
mov dword [esp + 0x10], 0
jmp 0x4f70a0