Function at 0x5258a0
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, 0xa8
mov eax, dword [0x646040]
xor eax, ebp
mov dword [esp + 0xa0], eax
mov esi, dword [ecx + 4]
mov dword [esp + 4], ecx
mov edi, dword [ecx + 8]
xorps xmm0, xmm0
lea ebx, [esp + 0x58]
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 0x525924
lea eax, [edi*8]
mov ecx, edi
shr ecx, 0x1d
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
cmp edi, 0x40
jae 0x52630b
mov eax, edi
mov dword [esp + 0x98], eax
push eax
push esi
push ebx
call fcn.00568550
add esp, 0xc
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov byte [esp + ecx + 0x58], 0x80
lea eax, [ecx + 1]
cmp eax, 0x39
jae 0x5262d5
cmp eax, 0x38
je 0x52595e
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 + 0x40]
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 + 0xc], eax
mov eax, dword [ebx + 4]
mov dword [esp + 8], eax
mov edi, dword [0x6570b0]
test edi, edi
je 0x5259fe
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], 0xffffffff
mov eax, dword [edi + 0x3c]
mov dword [esp + 0x10], eax
mov eax, dword [edi + 0x38]
mov ecx, dword [edi + 0x34]
cmp eax, 0x30
je 0x526334
cmp eax, 0x40
jb 0x5259fe
mov edx, eax
and edx, 7
jne 0x5259fe
mov esi, eax
add esi, 0x10
jb 0x5259fe
mov edx, dword [ecx + 0xc]
cmp esi, edx
ja 0x5259fe
mov ecx, dword [ecx + 4]
mov esi, dword [ecx + eax + 4]
cmp esi, 0xc8799269
jne 0x5259fe
add ecx, eax
mov esi, dword [ecx]
cmp esi, 0x10
jb 0x5259fe
mov esi, dword [ecx]
add esi, eax
jb 0x5259fe
cmp esi, edx
ja 0x5259fe
test ecx, ecx
je 0x5259fe
mov ebx, dword [ecx + 0xc]
cmp ebx, 0x30
jne 0x525c6a
mov esi, dword [0x64c744]
cmp esi, 1
jbe 0x5264e0
push esi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x5263ad
mov dword [esp + 0x10], esi
mov edi, dword [0x64c74c]
test edi, edi
je 0x525d3a
mov eax, dword [0x64c744]
cmp eax, 1
jbe 0x52650f
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x525d3a
mov edx, dword [esp + 0xc]
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 + 0xc], 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 + 0x1c], eax
cmp eax, 1
jbe 0x5263a3
mov esi, ecx
cmp ecx, ebx
jb 0x525af3
mov eax, ecx
xor edx, edx
div ebx
mov esi, edx
mov eax, dword [edi]
mov eax, dword [eax + esi*4]
test eax, eax
je 0x525d3a
mov edi, dword [eax]
test edi, edi
je 0x525d3a
mov eax, dword [edi + 4]
cmp ecx, eax
jne 0x525c20
mov eax, dword [edi + 8]
xor eax, dword [esp + 8]
mov edx, dword [edi + 0xc]
xor edx, dword [esp + 0xc]
or edx, eax
jne 0x525c45
mov edi, dword [edi + 0x10]
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
test edi, edi
mov eax, dword [esp + 4]
je 0x525d48
mov esi, dword [eax + 0xc]
mov eax, dword [edi]
mov ebx, dword [eax + 0xc]
xor eax, eax
cmp ebx, fcn.005616f0
je 0x525b7a
cmp ebx, 0x561760
je 0x525c0e
cmp ebx, 0x52c900
je 0x525c18
mov ecx, ebx
call dword [0x6401dc]
mov ecx, edi
call ebx
cmp esi, eax
jne 0x5265b7
mov eax, dword [esp + 4]
mov esi, dword [eax + 0x18]
test esi, esi
je 0x525bf6
mov ecx, dword [eax + 0x10]
mov dword [esp + 8], ecx
mov eax, dword [eax + 0x14]
mov dword [esp + 0xc], eax
mov eax, dword [edi]
mov ebx, dword [eax + 0x10]
cmp ebx, 0x561700
jne 0x525c4c
mov eax, dword [edi + 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 ebx, [edx - 1]
cmp ebx, esi
jne 0x5265b7
cmp ebx, 2
jb 0x5265f2
cmp edx, 1
jbe 0x526601
mov edx, dword [esp + 8]
cmp dword [eax + 4], edx
jne 0x5265b7
mov eax, dword [eax + ecx - 8]
cmp eax, dword [esp + 0xc]
jne 0x5265b7
mov ecx, dword [esp + 0xa0]
xor ecx, ebp
call fcn.00567335
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, 2
jmp 0x525b7a
xor eax, eax
inc eax
jmp 0x525b7a
cmp dword [esp + 0x1c], 1
mov dword [esp + 0x24], esi
jbe 0x526399
cmp eax, ebx
jb 0x525c39
xor edx, edx
div ebx
mov eax, edx
mov esi, dword [esp + 0x24]
cmp eax, esi
jne 0x525d3a
mov edi, dword [edi]
jmp 0x525b02
mov ecx, ebx
call dword [0x6401dc]
mov ecx, edi
push esi
push dword [esp + 0x10]
push dword [esp + 0x10]
call ebx
test al, al
jne 0x525bf6
jmp 0x5265b7
mov esi, dword [edi + 0x34]
cmp ebx, 0x40
mov dword [esp + 0x20], esi
jb 0x5265a7
mov ecx, ebx
and ecx, 7
jne 0x5265a7
mov edx, ebx
add edx, 0x10
jb 0x5265a7
mov ecx, esi
mov esi, dword [esi + 0xc]
cmp edx, esi
ja 0x5265a7
mov edx, dword [ecx + 4]
mov ecx, dword [edx + ebx + 4]
cmp ecx, 0xc8799269
jne 0x5265a7
mov dword [esp + 0x24], edi
add edx, ebx
mov ecx, dword [edx]
cmp ecx, 0x10
jb 0x5265a7
mov edi, dword [edx]
add edi, ebx
setb cl
test edx, edx
je 0x5265a7
test cl, cl
jne 0x5265a7
cmp edi, esi
mov edi, dword [esp + 0x24]
ja 0x5265a7
lock cmpxchg dword [edi + 0x38], ebx
jne 0x5259a6
mov esi, dword [edx + 8]
mov ecx, dword [edi + 0x34]
mov eax, dword [ecx + 4]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x20], ecx
mov ecx, dword [ecx + 0xc]
cmp ecx, eax
cmovb eax, ecx
mov ecx, 0xaaaaaaab
mul ecx
shr edx, 4
cmp dword [esp + 0x10], edx
ja 0x5265a7
lock inc dword [edi + 0x3c]
cmp esi, 0xf1645914
jne 0x52599c
cmp ebx, dword [esp + 0x1c]
je 0x52599c
jmp 0x5263b9
push dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
mov eax, dword [esp + 4]
mov esi, dword [eax + 4]
mov edi, dword [eax + 8]
xorpd xmm0, xmm0
movupd xmmword [esp + 0x8c], xmm0
movupd xmmword [esp + 0x80], xmm0
movupd xmmword [esp + 0x70], xmm0
movupd xmmword [esp + 0x60], xmm0
movupd xmmword [esp + 0x50], xmm0
movapd xmm0, xmmword [0x630720]
movupd xmmword [esp + 0x40], xmm0
test edi, edi
lea ebx, [esp + 0x58]
je 0x525dbd
lea eax, [edi*8]
mov ecx, edi
shr ecx, 0x1d
mov dword [esp + 0x54], ecx
mov dword [esp + 0x50], eax
cmp edi, 0x40
jae 0x52633f
mov eax, edi
mov dword [esp + 0x98], eax
push eax
push esi
push ebx
call fcn.00568550
add esp, 0xc
mov ecx, dword [esp + 0x98]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov byte [esp + ecx + 0x58], 0x80
lea eax, [ecx + 1]
cmp eax, 0x39
jae 0x525e68
cmp eax, 0x38
je 0x525df7
mov ecx, 0x38
sub ecx, eax
add eax, ebx
push ecx
push 0
push eax
call fcn.00568ad0
add esp, 0xc
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], edi
push 1
push ebx
lea eax, [esp + 0x48]
push eax
call fcn.004e2300
add esp, 0xc
mov eax, dword [esp + 0x40]
bswap eax
push eax
call fcn.00530c80
add esp, 4
test al, al
je 0x52661a
mov esi, dword [esp + 4]
mov eax, dword [esi]
mov edi, dword [eax]
cmp edi, 0x529fe0
je 0x525e9e
cmp edi, 0x55bf50
je 0x526161
mov ecx, edi
call dword [0x6401dc]
mov esi, dword [esp + 4]
mov ecx, esi
call edi
jmp 0x52606d
mov byte [eax + 2], 0
mov word [eax], 0
jmp 0x525e87
cmp ecx, 0x3f
je 0x525e87
add eax, ebx
cmp ecx, 0x3c
je 0x525e5d
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 + 0x48]
push eax
call fcn.004e2300
add esp, 0xc
xor eax, eax
jmp 0x525de2
push 0x14
call fcn.00564055
add esp, 4
mov edi, eax
mov eax, dword [esi + 0x18]
inc eax
mov ecx, edi
push eax
call fcn.0052a210
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [esi + 0x14]
sub esp, 8
movsd qword [esp], xmm0
call fcn.00590e00
add esp, 8
fstp qword [esp + 0x30]
mov eax, dword [edi]
mov ecx, dword [edi + 4]
sub ecx, eax
cmp ecx, 4
jbe 0x5265e3
movsd xmm0, qword [esp + 0x30]
movsd qword [esp + 0x10], xmm0
mov ebx, dword [esi + 0x10]
mov dword [eax + 4], ebx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov esi, eax
sub esi, ecx
sar esi, 2
lea edx, [esi - 1]
cmp edx, 3
mov dword [esp + 8], edi
jb 0x525fd0
add esi, 0xfffffffd
mov edi, 2
nop dword [eax + eax]
xorps xmm0, xmm0
cvtsi2sd xmm0, ebx
sub esp, 8
movsd qword [esp], xmm0
call fcn.00590e00
add esp, 8
fstp qword [esp + 0x40]
lea eax, [esp + 0x40]
push eax
call fcn.004ffdf0
add esp, 4
mov eax, dword [esp + 8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp + 0xc], ecx
sub eax, ecx
sar eax, 2
cmp eax, edi
jbe 0x5265e3
movsd xmm0, qword [esp + 0x40]
movsd xmm1, qword [esp + 0x10]
subsd xmm1, xmm0
movd xmm2, esi
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 + 0x28]
cvttsd2si eax, qword [esp + 0x28]
cmp ebx, eax
lea ebx, [ebx + 1]
cmovl ebx, eax
mov eax, dword [esp + 0xc]
mov dword [eax + edi*4], ebx
inc edi
dec esi
jne 0x525f20
mov edi, dword [esp + 8]
mov ecx, dword [edi]
mov eax, dword [edi + 4]
cmp eax, ecx
je 0x5265e3
mov dword [eax - 4], 0x7fffffff
mov esi, dword [edi]
mov eax, dword [edi + 4]
mov edi, eax
sub edi, esi
je 0x526610
js 0x526617
mov ecx, edi
shr ecx, 2
mov edx, esi
and edi, 3
jne 0x5264bf
sub esi, eax
cmp esi, 0xfffffffc
ja 0x526062
nop dword [eax + 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 0x526010
mov eax, dword [esp + 8]
mov dword [eax + 0xc], ecx
mov esi, dword [esp + 4]
push eax
call fcn.00530e50
add esp, 4
mov edi, eax
cmp dword [esi + 0x18], 0
je 0x52653d
mov dword [esp + 0x38], 0
mov eax, dword [0x6570b0]
mov dword [esp + 0xc], eax
test eax, eax
je 0x526368
lea eax, [esp + 0x38]
mov ecx, dword [esp + 0xc]
push eax
mov eax, dword [esp + 8]
push dword [eax + 0x1c]
push edi
mov eax, dword [esp + 0x10]
push dword [eax + 0x14]
mov eax, dword [esp + 0x14]
push dword [eax + 0x10]
mov eax, dword [esp + 0x18]
push dword [eax + 8]
mov eax, dword [esp + 0x1c]
push dword [eax + 4]
mov eax, dword [esp + 0x20]
push dword [eax + 0xc]
lea eax, [esp + 0x60]
push eax
call fcn.00531cd0
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x40]
test ebx, ebx
je 0x526368
mov eax, dword [esi]
mov edi, dword [eax + 8]
cmp edi, 0x4f0f90
je 0x52610d
cmp edi, 0x409010
je 0x52613b
mov ecx, edi
call dword [0x6401dc]
mov ecx, dword [esp + 4]
push ebx
call edi
push ebx
call fcn.005313f0
add esp, 4
mov edi, eax
mov eax, dword [esp + 0x38]
test eax, eax
je 0x526132
xor edx, edx
cmp edi, ebx
sete dl
mov ecx, dword [esp + 0xc]
push edx
push eax
call fcn.00530d10
mov eax, dword [esp + 4]
jmp 0x525b44
mov eax, dword [ebx]
mov edi, dword [eax + 0xc]
mov ecx, edi
call dword [0x6401dc]
mov ecx, ebx
call edi
cmp eax, 5
je 0x52610d
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x52610d
jmp 0x526639
push 0x14
call fcn.00564055
add esp, 4
mov edi, eax
mov eax, dword [esp + 4]
mov eax, dword [eax + 0x18]
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 0x526227
mov edx, dword [esp + 4]
xorps xmm0, xmm0
cvtsi2sd xmm0, dword [edx + 0x10]
cvtsi2sd xmm1, dword [edx + 0x14]
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 0x5265e3
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 0x5261d0
mov esi, dword [edi]
mov edx, dword [edi + 4]
cmp edx, esi
je 0x5265e3
mov dword [edx - 4], 0x7fffffff
mov esi, dword [edi]
mov dword [esp + 8], edi
mov eax, dword [edi + 4]
mov edi, eax
sub edi, esi
je 0x526610
js 0x526636
mov ecx, edi
shr ecx, 2
mov edx, esi
and edi, 3
jne 0x526586
sub esi, eax
cmp esi, 0xfffffffc
ja 0x526062
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 0x52626f
jmp 0x526062
mov byte [eax + 2], 0
mov word [eax], 0
jmp 0x5262f4
cmp ecx, 0x3f
je 0x5262f4
add eax, ebx
cmp ecx, 0x3c
je 0x5262ca
mov edx, 0x3f
sub edx, ecx
push edx
push 0
push eax
call fcn.00568ad0
add esp, 0xc
lea eax, [esp + 0x40]
push 1
push ebx
push eax
call fcn.004e2300
add esp, 0xc
xor eax, eax
jmp 0x525949
mov eax, edi
shr eax, 6
lea ecx, [esp + 0x40]
push eax
push esi
push ecx
call fcn.004e2300
add esp, 0xc
mov eax, edi
and eax, 0x3f
je 0x525924
and edi, 0xffffffc0
add esi, edi
jmp 0x525912
mov ecx, dword [ecx + 4]
add ecx, 0x30
jmp 0x5259ee
mov eax, edi
shr eax, 6
push eax
push esi
lea eax, [esp + 0x48]
push eax
call fcn.004e2300
add esp, 0xc
mov eax, edi
and eax, 0x3f
je 0x525dbd
and edi, 0xffffffc0
add esi, edi
jmp 0x525dab
and byte [esi + 0x1c], 0xbf
mov eax, dword [esi]
mov ebx, dword [eax + 4]
mov ecx, ebx
call dword [0x6401dc]
mov ecx, dword [esp + 4]
push edi
lea eax, [esp + 0x44]
push eax
call ebx
mov esi, dword [esp + 4]
mov ebx, dword [esp + 0x40]
mov eax, dword [esi + 0x1c]
lock or dword [ebx + 8], eax
jmp 0x5260e9
lea edx, [ebx - 1]
and eax, edx
jmp 0x525c39
lea esi, [ebx - 1]
and esi, ecx
jmp 0x525af3
push esi
call dword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
jmp 0x525a1c
mov esi, dword [edi + 0x30]
mov ecx, dword [esi + 4]
push 0x68
push 0xf1645914
push ebx
call fcn.0052c910
mov dword [esp + 0x10], esi
mov ecx, dword [esi + 4]
push ebx
mov ebx, eax
call fcn.0052c980
test ebx, ebx
je 0x5259fe
cmp byte [ebx + 0x60], 0
je 0x5259fe
cmp byte [ebx + eax - 1], 0
jne 0x5259fe
mov eax, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
mov edx, eax
or edx, ecx
je 0x5259fe
mov esi, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
mov edi, esi
or edi, edx
je 0x5259fe
mov edi, esi
xor edi, eax
mov dword [esp + 0x20], ebx
mov ebx, edx
xor ebx, ecx
or ebx, edi
mov edi, dword [esp + 0x24]
setne bl
add eax, 1
adc ecx, 0
xor eax, esi
xor ecx, edx
or ecx, eax
setne al
test bl, al
mov ebx, dword [esp + 0x20]
jne 0x5259fe
mov esi, ebx
add esi, 0x60
push esi
call fcn.0057e5c0
add esp, 4
push eax
push esi
call fcn.00539f60
add esp, 8
xor edx, dword [ebx + 0x24]
xor eax, dword [ebx + 0x20]
or eax, edx
jne 0x5259fe
mov ecx, dword [esp + 0x10]
push ebx
lea eax, [esp + 0x44]
push eax
call fcn.0053ad60
mov eax, dword [esp + 0x40]
test eax, eax
je 0x5259fe
xor esi, esi
mov dword [esp + 0x40], esi
push eax
call fcn.005313f0
add esp, 4
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x40], esi
test ebx, ebx
je 0x525994
mov eax, dword [ebx]
mov esi, dword [eax]
mov ecx, esi
call dword [0x6401dc]
mov ecx, ebx
push 1
call esi
jmp 0x525994
movzx ebx, cl
mov dword [esp + 0xc], ebx
movzx ebx, byte [edx]
xor ebx, dword [esp + 0xc]
shr ecx, 8
xor ecx, dword [ebx*4 + 0x631d30]
inc edx
dec edi
jne 0x5264bf
jmp 0x526004
push 0x64c744
call fcn.0040ea60
add esp, 4
test al, al
je 0x5266af
mov dword [0x64c748], 0
mov esi, 0x64c748
mov dword [0x64c744], esi
jmp 0x525a0d
push 0x64c744
call fcn.0040ea60
add esp, 4
test al, al
je 0x5266ba
mov dword [0x64c748], 0
mov eax, 0x64c748
mov dword [0x64c744], eax
jmp 0x525a3c
mov eax, dword [edi + 4]
sub eax, dword [edi]
sar eax, 2
lea ecx, [eax - 1]
mov dword [esi + 0x18], ecx
mov ecx, dword [edi]
mov edx, dword [edi + 4]
sub edx, ecx
cmp edx, 4
jbe 0x526601
mov ebx, esi
mov ecx, dword [ecx + 4]
mov dword [esi + 0x10], ecx
lea edx, [eax - 2]
mov ecx, dword [edi]
mov esi, dword [edi + 4]
sub esi, ecx
sar esi, 2
cmp esi, edx
jbe 0x526601
mov eax, dword [ecx + eax*4 - 8]
mov dword [ebx + 0x14], eax
mov esi, ebx
jmp 0x526082
movzx ebx, cl
mov dword [esp + 0xc], ebx
movzx ebx, byte [edx]
xor ebx, dword [esp + 0xc]
shr ecx, 8
xor ecx, dword [ebx*4 + 0x631d30]
inc edx
dec edi
jne 0x526586
jmp 0x52625f
mov ecx, dword [esp + 0x20]
push 1
call fcn.00591c90
jmp 0x5259fe
mov eax, dword [esp + 4]
push dword [eax + 8]
push dword [eax + 4]
call fcn.00539f60
add esp, 8
push eax
push str.Histogram.MismatchedConstructionArguments
call fcn.0053a370
add esp, 8
call fcn.005c6df0
mov edi, eax
jmp 0x525bf6
push str....._third_partylibc_srcinclude_vector:1411:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x624e92
call fcn.005912b0
cmp dword [esp + 8], 0xffffffff
jne 0x5265b7
xor eax, eax
dec eax
jmp 0x525bec
push str....._third_partylibc_srcinclude_vector:1418:_assertion___n___size___failed:_vector___index_out_of_bounds_n
push 0x624e92
call fcn.005912b0
xor ecx, ecx
jmp 0x526062
int3
call fcn.005c6df0
mov esi, eax
mov ecx, dword [esp + 0xa0]
xor ecx, ebp
call fcn.00567335
mov eax, esi
jmp 0x525c06
int3
mov ecx, dword [eax + 4]
mov dword [esp + 8], ecx
test ecx, ecx
je 0x52610d
lea ecx, [ebx + 0x14]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x10], 0
mov edi, 0xc
mov dword [esp + 0x3c], eax
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x40]
lea esi, [esp + 0x3c]
push esi
push eax
call fcn.005bab10
add esp, 8
mov ecx, dword [esp + 0x40]
add ecx, 0x14
push dword [esp + 8]
call fcn.00433160
mov eax, dword [esp + 4]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x10]
lea eax, [ecx + edx*8]
add eax, 8
inc edx
mov dword [esp + 0x10], edx
mov ecx, dword [ecx + edi]
add edi, 8
mov dword [esp + 8], ecx
test ecx, ecx
jne 0x52665c
jmp 0x52610d
mov esi, dword [0x64c744]
jmp 0x525a0d
mov eax, dword [0x64c744]
jmp 0x525a3c