Function at 0x50c260
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 [0x64a040]
xor eax, ebp
mov dword [esp + 0x100], eax
movsx eax, byte [edx + 0xb]
test eax, eax
jns 0x50d129
mov ecx, dword [edx + 4]
test al, al
jns 0x50c295
mov edx, dword [edx]
mov dword [esp + 8], ecx
test ecx, ecx
js 0x50d13a
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 0x50c2bb
test edx, edx
je 0x50d1b6
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 0x50d1a4
push 0
push 0x3e8
push eax
push ecx
call fcn.005a13d0
mov dword [esp + 0x10], eax
add edi, esi
mov ecx, dword [esp + 0xc]
adc ebx, ecx
cmp edi, 2
sbb ebx, 0
jb 0x50d196
push 0
push 0x3e8
push ecx
push esi
call fcn.005a13d0
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 0x50d149
mov ecx, ebx
mov ebx, eax
mov edi, dword [ebp + 0x1c]
test ebx, ebx
jle 0x50cf55
cmp ecx, 0x7fffffff
je 0x50d130
mov eax, ecx
cmp edi, 0x3eb
jae 0x50d039
cmp eax, ebx
je 0x50d158
cmp edi, 3
jb 0x50d0de
mov ecx, eax
sub eax, ebx
add eax, 2
cmp edi, eax
ja 0x50d0de
cmp byte [esp + 0x10], 0
je 0x50d0de
mov dword [esp + 0x34], 0x6282cc
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 [0x6354d0]
movupd xmmword [esp + 0x58], xmm0
lea ebx, [esp + 0x70]
test esi, esi
je 0x50c41b
lea eax, [esi*8]
mov ecx, esi
shr ecx, 0x1d
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
cmp esi, 0x40
jae 0x50cd5e
mov eax, esi
mov dword [esp + 0xb0], eax
push eax
push edx
push ebx
call fcn.005822f0
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 0x50cd28
cmp eax, 0x38
je 0x50c455
mov ecx, 0x38
sub ecx, eax
add eax, ebx
push ecx
push 0
push eax
call fcn.00582870
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.004f3300
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 [0x65b068]
test esi, esi
je 0x50c4fe
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 0x50cdcf
cmp eax, 0x40
jb 0x50c4fe
mov edx, eax
and edx, 7
jne 0x50c4fe
mov esi, eax
add esi, 0x10
jb 0x50c4fe
mov edx, dword [ecx + 0xc]
cmp esi, edx
ja 0x50c4fe
mov ecx, dword [ecx + 4]
mov esi, dword [ecx + eax + 4]
cmp esi, 0xc8799269
jne 0x50c4fe
add ecx, eax
mov esi, dword [ecx]
cmp esi, 0x10
jb 0x50c4fe
mov esi, dword [ecx]
add esi, eax
jb 0x50c4fe
cmp esi, edx
ja 0x50c4fe
test ecx, ecx
je 0x50c4fe
mov ebx, dword [ecx + 0xc]
cmp ebx, 0x30
jne 0x50c73a
mov esi, dword [0x65071c]
cmp esi, 1
jbe 0x50cf88
push esi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x50ce5b
mov dword [esp + 0x10], esi
mov esi, dword [0x650724]
test esi, esi
je 0x50c810
mov eax, dword [0x65071c]
cmp eax, 1
jbe 0x50cfb7
mov edi, dword [esi + 4]
test edi, edi
je 0x50c810
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 0x50ce46
mov ebx, ecx
cmp ecx, edi
jb 0x50c5f3
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 0x50c810
mov esi, dword [eax]
test esi, esi
je 0x50c810
mov eax, dword [esi + 4]
cmp ecx, eax
jne 0x50c70e
mov eax, dword [esi + 8]
xor eax, dword [esp + 8]
mov edx, dword [esi + 0xc]
xor edx, dword [esp + 4]
or edx, eax
jne 0x50c733
mov ebx, dword [esi + 0x10]
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test ebx, ebx
je 0x50c81a
mov esi, dword [esp + 0x40]
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
xor eax, eax
cmp edi, fcn.0057b630
je 0x50c65f
mov ecx, edi
call dword [0x6445dc]
mov ecx, ebx
call edi
cmp esi, eax
jne 0x50d0f0
mov esi, dword [esp + 0x4c]
test esi, esi
je 0x50c6d8
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, 0x57b640
mov dword [esp + 4], ecx
jne 0x50c6f0
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 0x50d0f0
cmp edi, 2
jb 0x50d174
cmp edx, 1
mov edx, dword [esp + 4]
jbe 0x50d187
cmp dword [eax + 4], edx
jne 0x50d0f0
mov eax, dword [eax + ecx - 8]
cmp eax, esi
jne 0x50d0f0
mov ecx, dword [esp + 0x100]
xor ecx, ebp
call fcn.005810d5
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, edi
call dword [0x6445dc]
mov ecx, ebx
push esi
push dword [esp + 0xc]
push dword [esp + 0xc]
call edi
test al, al
jne 0x50c6d8
jmp 0x50d0f0
cmp dword [esp + 0xc], 1
mov dword [esp + 0x18], ebx
jbe 0x50ce03
cmp eax, edi
jb 0x50c727
xor edx, edx
div edi
mov eax, edx
mov ebx, dword [esp + 0x18]
cmp eax, ebx
jne 0x50c810
mov esi, dword [esi]
jmp 0x50c602
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x34]
cmp ebx, 0x40
mov dword [esp + 0x1c], esi
jb 0x50d0ce
mov ecx, ebx
and ecx, 7
jne 0x50d0ce
mov dword [esp + 0x18], edi
mov edx, ebx
add edx, 0x10
jb 0x50d0ce
mov edi, dword [esi + 0xc]
cmp edx, edi
ja 0x50d0ce
mov edx, dword [esi + 4]
mov ecx, dword [edx + ebx + 4]
cmp ecx, 0xc8799269
jne 0x50d0ce
add edx, ebx
mov ecx, dword [edx]
cmp ecx, 0x10
jb 0x50d0ce
mov esi, dword [edx]
add esi, ebx
setb cl
test edx, edx
je 0x50d0ce
test cl, cl
jne 0x50d0ce
cmp esi, edi
mov esi, dword [esp + 0x10]
ja 0x50d0ce
lock cmpxchg dword [esi + 0x38], ebx
mov edi, dword [esp + 0x18]
jne 0x50c4a6
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 0x50d0ce
lock inc dword [esi + 0x3c]
cmp edi, 0xf1645914
jne 0x50c4a0
cmp ebx, dword [esp + 0xc]
je 0x50c4a0
jmp 0x50ce67
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 [0x6354d0]
movupd xmmword [esp + 0x58], xmm0
test edi, edi
lea ebx, [esp + 0x70]
je 0x50c894
lea eax, [edi*8]
mov ecx, edi
shr ecx, 0x1d
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x68], eax
cmp edi, 0x40
jae 0x50cdda
mov eax, edi
mov dword [esp + 0xb0], eax
push eax
push esi
push ebx
call fcn.005822f0
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 0x50cd99
cmp eax, 0x38
je 0x50c8ce
mov ecx, 0x38
sub ecx, eax
add eax, ebx
push ecx
push 0
push eax
call fcn.00582870
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.004f3300
add esp, 0xc
mov ebx, dword [esp + 0x58]
mov edi, dword [0x65071c]
cmp edi, 1
jbe 0x50d088
push edi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x50d02d
mov eax, dword [0x650724]
test eax, eax
je 0x50c922
mov esi, dword [eax + 0x50]
test esi, esi
jne 0x50d1ee
push edi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 0x34]
mov esi, dword [eax]
cmp esi, 0x5735c0
je 0x50cb3a
mov ecx, esi
call dword [0x6445dc]
lea ecx, [esp + 0x34]
call esi
push eax
call fcn.0050d310
add esp, 4
mov esi, eax
cmp dword [esp + 0x4c], 0
je 0x50cfe5
mov dword [esp + 0x58], 0
mov ebx, dword [0x65b068]
test ebx, ebx
je 0x50ce0d
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.0050e2a0
mov edi, dword [edi]
test edi, edi
je 0x50ce0d
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 8]
cmp esi, 0x502040
je 0x50c9d3
cmp esi, fcn.00402610
je 0x50cd0e
mov ecx, esi
call dword [0x6445dc]
lea ecx, [esp + 0x34]
push edi
call esi
push edi
call fcn.0050d8b0
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 0x50cb31
mov ecx, dword [ebx + 4]
cmp dword [esp + 8], edi
jne 0x50d0b7
mov al, byte [ecx + 0x1c]
test al, 1
jne 0x50cb31
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x24]
test al, 1
jne 0x50d1c5
cmp dword [esp + 4], 0x40
jb 0x50cb31
mov eax, dword [esp + 4]
and eax, 7
jne 0x50cb31
mov esi, dword [esp + 4]
add esi, 0x10
jb 0x50cb31
mov eax, dword [ecx + 0xc]
cmp esi, eax
ja 0x50cb31
mov esi, dword [esp + 4]
mov esi, dword [edx + esi + 4]
cmp esi, 0xc8799269
jne 0x50cb31
add edx, dword [esp + 4]
mov esi, dword [edx]
cmp esi, 0x10
jb 0x50cb31
mov esi, dword [edx]
add esi, dword [esp + 4]
setb bl
test edx, edx
je 0x50cb31
test bl, bl
jne 0x50cb31
cmp esi, eax
ja 0x50cb31
mov esi, 0x30
xor eax, eax
lock cmpxchg dword [edx + 0xc], esi
jne 0x50cb31
mov eax, dword [ecx + 4]
mov edx, dword [eax + 0x2c]
cmp edx, 0x30
je 0x50ce50
cmp edx, 0x40
jb 0x50d168
mov eax, edx
and eax, 7
jne 0x50d168
mov esi, edx
add esi, 0x10
jb 0x50d168
mov eax, dword [ecx + 0xc]
cmp esi, eax
ja 0x50d168
mov esi, dword [ecx + 4]
mov edi, dword [esi + edx + 4]
cmp edi, 0xc8799269
jne 0x50d168
add esi, edx
mov edi, dword [esi]
cmp edi, 0x10
jb 0x50d168
mov edi, dword [esi]
add edi, edx
jb 0x50d168
cmp edi, eax
ja 0x50d168
test esi, esi
je 0x50d168
mov eax, 0x30
mov edi, dword [esp + 4]
lock cmpxchg dword [esi + 0xc], edi
jne 0x50d1db
mov esi, edi
mov ecx, dword [ecx + 4]
mov eax, edx
lock cmpxchg dword [ecx + 0x2c], edi
mov ebx, dword [esp + 8]
jmp 0x50c640
push 0x14
call fcn.0057dc30
add esp, 4
mov esi, eax
mov eax, dword [esp + 0x4c]
inc eax
mov ecx, esi
push eax
call fcn.0050e220
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esp + 0x48]
sub esp, 8
movsd qword [esp], xmm0
call fcn.005aaa00
add esp, 8
fstp qword [esp + 0x28]
mov eax, dword [esi]
mov ecx, dword [esi + 4]
sub ecx, eax
cmp ecx, 4
jbe 0x50d11a
movsd xmm0, qword [esp + 0x28]
movsd qword [esp + 0x10], xmm0
mov ebx, dword [esp + 0x44]
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 + 8], esi
jb 0x50cc70
add edi, 0xfffffffd
mov esi, 2
nop word [eax + eax]
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
sub esp, 8
movsd qword [esp], xmm0
call fcn.005aaa00
add esp, 8
fstp qword [esp + 0x58]
lea eax, [esp + 0x58]
push eax
call fcn.00505000
add esp, 4
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 4], ecx
sub eax, ecx
sar eax, 2
cmp eax, esi
jbe 0x50d11a
movsd xmm0, qword [esp + 0x58]
movsd xmm1, qword [esp + 0x10]
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 + 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 0x50cbc0
mov esi, dword [esp + 8]
mov ecx, dword [esi]
mov eax, dword [esi + 4]
cmp eax, ecx
je 0x50d11a
mov dword [eax - 4], 0x7fffffff
mov eax, esi
mov esi, dword [esi]
mov eax, dword [eax + 4]
mov edi, eax
sub edi, esi
je 0x50d1d1
js 0x50d1d8
mov ecx, edi
shr ecx, 2
mov edx, esi
and edi, 3
jne 0x50cf67
sub esi, eax
cmp esi, 0xfffffffc
ja 0x50cd02
nop dword [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 0x50ccb0
mov eax, dword [esp + 8]
mov dword [eax + 0xc], ecx
jmp 0x50c949
lea ecx, [esp + 0x34]
push edi
call fcn.00402610
jmp 0x50c9d3
mov byte [eax + 2], 0
mov word [eax], 0
jmp 0x50cd47
cmp ecx, 0x3f
je 0x50cd47
add eax, ebx
cmp ecx, 0x3c
je 0x50cd1d
mov edx, 0x3f
sub edx, ecx
push edx
push 0
push eax
call fcn.00582870
add esp, 0xc
lea eax, [esp + 0x58]
push 1
push ebx
push eax
call fcn.004f3300
add esp, 0xc
xor eax, eax
jmp 0x50c440
mov eax, esi
shr eax, 6
lea ecx, [esp + 0x58]
push eax
push edx
push ecx
call fcn.004f3300
mov edx, dword [esp + 0x10]
add esp, 0xc
mov eax, esi
and eax, 0x3f
je 0x50c41b
and esi, 0x7fffffc0
add edx, esi
jmp 0x50c409
mov byte [eax + 2], 0
mov word [eax], 0
jmp 0x50cdb8
cmp ecx, 0x3f
je 0x50cdb8
add eax, ebx
cmp ecx, 0x3c
je 0x50cd8e
mov edx, 0x3f
sub edx, ecx
push edx
push 0
push eax
call fcn.00582870
add esp, 0xc
push 1
push ebx
lea eax, [esp + 0x60]
push eax
call fcn.004f3300
add esp, 0xc
xor eax, eax
jmp 0x50c8b9
mov ecx, dword [ecx + 4]
add ecx, 0x30
jmp 0x50c4ee
mov eax, edi
shr eax, 6
push eax
push esi
lea eax, [esp + 0x60]
push eax
call fcn.004f3300
add esp, 0xc
mov eax, edi
and eax, 0x3f
je 0x50c894
and edi, 0xffffffc0
add esi, edi
jmp 0x50c882
lea edx, [edi - 1]
and eax, edx
jmp 0x50c727
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 [0x6445dc]
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 0x50c9a9
lea ebx, [edi - 1]
and ebx, ecx
jmp 0x50c5f3
mov esi, dword [ecx + 4]
add esi, 0x30
jmp 0x50cb09
push esi
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x50c51c
mov esi, dword [esi + 0x30]
mov ecx, dword [esi + 4]
push 0x68
push 0xf1645914
push ebx
call fcn.00540ee0
mov dword [esp + 0x18], esi
mov ecx, dword [esi + 4]
push ebx
mov ebx, eax
call fcn.00540f50
test ebx, ebx
je 0x50c4fe
cmp byte [ebx + 0x60], 0
je 0x50c4fe
cmp byte [ebx + eax - 1], 0
jne 0x50c4fe
mov ecx, dword [ebx + 0x20]
mov eax, dword [ebx + 0x24]
mov edx, ecx
or edx, eax
je 0x50c4fe
mov edx, dword [ebx + 0x40]
mov edi, dword [ebx + 0x44]
mov esi, edx
or esi, edi
je 0x50c4fe
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 0x50ceec
xor edx, ecx
xor edi, eax
or edi, edx
jne 0x50c4fe
mov esi, ebx
add esi, 0x60
push esi
call fcn.00598320
add esp, 4
push eax
push esi
call fcn.00540c00
add esp, 8
xor edx, dword [ebx + 0x24]
xor eax, dword [ebx + 0x20]
or eax, edx
jne 0x50c4fe
mov ecx, dword [esp + 0x18]
push ebx
lea eax, [esp + 0x5c]
push eax
call fcn.00542ab0
mov eax, dword [esp + 0x58]
test eax, eax
je 0x50c4fe
xor esi, esi
mov dword [esp + 0x58], esi
push eax
call fcn.0050d8b0
add esp, 4
mov edi, dword [esp + 0x58]
mov dword [esp + 0x58], esi
test edi, edi
jne 0x50d231
mov esi, dword [esp + 0x10]
jmp 0x50c498
xor ebx, ebx
inc ebx
mov eax, ebx
test ecx, ecx
jg 0x50c33f
jmp 0x50c34d
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 + 0x636878]
inc edx
dec edi
jne 0x50cf67
jmp 0x50cca6
push 0x65071c
call fcn.0040bbb0
add esp, 4
test al, al
je 0x50d21c
mov dword [0x650720], 0
mov esi, 0x650720
mov dword [0x65071c], esi
jmp 0x50c50d
push 0x65071c
call fcn.0040bbb0
add esp, 4
test al, al
je 0x50d227
mov dword [0x650720], 0
mov eax, 0x650720
mov dword [0x65071c], eax
jmp 0x50c53c
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 0x50d187
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 0x50d187
mov eax, dword [ecx + eax*4 - 8]
mov dword [esp + 0x48], eax
jmp 0x50c95f
push edi
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x50c90e
mov dword [esp + 0xc], eax
push esi
push edx
mov edi, esi
mov esi, 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 edi
push esi
call fcn.0054b930
add esp, 0x14
test al, al
je 0x50d253
mov edi, dword [ebp + 0x1c]
mov edx, dword [esp + 4]
mov esi, dword [esp + 8]
mov eax, dword [esp + 0xc]
jmp 0x50c359
push 0x65071c
call fcn.0040bbb0
add esp, 4
test al, al
je 0x50d248
mov dword [0x650720], 0
mov edi, 0x650720
mov dword [0x65071c], edi
jmp 0x50c8ff
xor eax, eax
push eax
push 0xf1645914
push eax
push dword [esp + 0x10]
call fcn.0043b0e0
jmp 0x50cb31
mov ecx, dword [esp + 0x1c]
push 1
call fcn.005abbd0
jmp 0x50c4fe
push esi
push edx
call fcn.00540c00
add esp, 8
push eax
push str.Histogram.BadConstructionArguments
jmp 0x50d106
push dword [esp + 0x3c]
push dword [esp + 0x3c]
call fcn.00540c00
add esp, 8
push eax
push str.Histogram.MismatchedConstructionArguments
call fcn.00510d30
add esp, 8
call fcn.005e9340
mov ebx, eax
jmp 0x50c6d8
push str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x62a183
call fcn.005aacb0
mov ecx, eax
jmp 0x50c28f
mov eax, 0x7ffffffe
jmp 0x50c34d
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 0x62a183
call fcn.005aacb0
mov dword [esp + 0x10], 0
mov ecx, eax
jmp 0x50c334
lea eax, [ebx + 1]
mov dword [esp + 0x10], 0
jmp 0x50c361
push 1
call fcn.005abbd0
jmp 0x50cb31
cmp dword [esp + 4], 0xffffffff
jne 0x50d0f0
xor eax, eax
dec eax
jmp 0x50c6d0
push str....._third_partylibc_srcinclude_vector:1418:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x62a183
call fcn.005aacb0
xor eax, eax
test ecx, ecx
setns al
neg eax
jmp 0x50c316
xor ecx, ecx
test eax, eax
setns cl
neg ecx
mov dword [esp + 0x10], ecx
jmp 0x50c2f4
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 0x62a183
call fcn.005aacb0
push 0
call fcn.005abbd0
jmp 0x50cb31
xor ecx, ecx
jmp 0x50cd02
int3
mov edi, eax
mov esi, dword [ecx + 4]
mov eax, edx
lock cmpxchg dword [esi + 0x2c], edi
mov edx, eax
jmp 0x50caa4
bswap ebx
mov eax, dword [esi]
mov ecx, dword [eax + 4]
mov dword [esp + 4], ecx
call dword [0x6445dc]
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 0x50c929
jmp 0x50d10e
mov esi, dword [0x65071c]
jmp 0x50c50d
mov eax, dword [0x65071c]
jmp 0x50c53c
mov eax, dword [edi]
mov esi, dword [eax]
mov ecx, esi
call dword [0x6445dc]
mov ecx, edi
push 1
call esi
jmp 0x50cf4c
mov edi, dword [0x65071c]
jmp 0x50c8ff
push 0
push 0x14
push str.PageLoad.Clients.Ads
push dword [esp + 0x14]
push dword [esp + 0x14]
call fcn.0054b930
add esp, 0x14
test al, al
jne 0x50d074
mov edi, 0x66
push 2
call fcn.00557ce0
add esp, 4
test al, al
jne 0x50d294
mov dword [esp + 0x10], 0
jmp 0x50d077
lea ecx, [esp + 0x58]
push 2
push 0x1bf
push str.histogram.cc
call fcn.0040ca50
lea eax, [esp + 0x60]
push 0xb
push str.Histogram:
push eax
call fcn.00545ec0
add esp, 0xc
push dword [esp + 8]
mov esi, dword [esp + 8]
push esi
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 [ebp + 0x1c]
call fcn.00464a90
lea ecx, [esp + 0x58]
call fcn.0040b060
mov edx, esi
mov esi, dword [esp + 8]
mov dword [esp + 0x10], 0
jmp 0x50d07f