Function at 0x528fe0
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x7433bd
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x88
cmp byte [0xa902b2], 0
mov eax, ecx
push esi
push edi
mov dword [ebp - 0x28], eax
je 0x5297c8
cmp byte [0x8f059c], 0
je 0x5297c8
mov esi, dword [ebx + 8]
mov eax, esi
mov byte [ebp - 0x21], 0
mov byte [ebp - 0x22], 0
mov byte [ebp - 0x23], 0
cmp dword [esi + 0x14], 0x10
mov ecx, dword [esi + 0x10]
jb 0x52904f
mov eax, dword [esi]
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x30], eax
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
mov ecx, dword [0x8f05f4]
sub esp, 8
cmp dword [0x8f05f8], 0x10
mov edx, esp
mov eax, 0x8f05e4
mov dword [ebp - 4], 0
cmovae eax, dword [0x8f05e4]
mov dword [edx + 4], ecx
lea ecx, [ebp - 0x30]
mov dword [edx], eax
call fcn.00507750
test al, al
je 0x5290aa
mov byte [ebp - 0x21], 1
jmp 0x529116
mov ecx, dword [0x8f05c4]
sub esp, 8
cmp dword [0x8f05c8], 0x10
mov edx, esp
mov eax, 0x8f05b4
cmovae eax, dword [0x8f05b4]
mov dword [edx + 4], ecx
lea ecx, [ebp - 0x30]
mov dword [edx], eax
call fcn.00507750
test al, al
je 0x5290df
mov byte [ebp - 0x22], 1
jmp 0x529116
mov ecx, dword [0x8f05dc]
sub esp, 8
cmp dword [0x8f05e0], 0x10
mov edx, esp
mov eax, 0x8f05cc
cmovae eax, dword [0x8f05cc]
mov dword [edx + 4], ecx
lea ecx, [ebp - 0x30]
mov dword [edx], eax
call fcn.00507750
test al, al
je 0x5291a4
mov byte [ebp - 0x23], 1
lea eax, [ebp - 0x98]
push eax
lea ecx, [ebp - 0x30]
call fcn.004974c0
mov esi, eax
lea eax, [ebp - 0x58]
cmp eax, esi
je 0x529196
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x529162
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x529158
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x5297f4
push edx
push ecx
call fcn.00512900
add esp, 8
mov dword [ebp - 0x48], 0
mov dword [ebp - 0x44], 0xf
mov byte [ebp - 0x58], 0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x58], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x48], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x98]
call fcn.00481f10
lea esi, [ebp - 0x58]
cmp byte [0xa902b2], 0
mov ecx, dword [0x8f0580]
mov eax, dword [0x8f057c]
mov dword [ebp - 0x64], ecx
je 0x5291d9
cmp byte [0x8f028c], 0
je 0x5291d9
test al, al
je 0x52924a
cmp al, 6
jb 0x52924a
shr eax, 8
cmp al, 5
jb 0x52924a
jmp 0x5291dd
test al, al
je 0x52924a
mov dword [ebp - 0x14], 0x2387188
mov edx, dword [ebp - 0x14]
mov eax, dword [0x8f057c]
sub edx, 0x1bf6c9c
mov ecx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [0x8f0580]
mov dword [ebp - 0x14], eax
lea edi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x529202
sub ecx, edi
cmp dword [esi + 0x14], 0x10
mov edi, esi
jb 0x529215
mov edi, dword [esi]
mov eax, dword [esi + 0x10]
push 1
sub esp, 0x10
mov dword [ebp - 0x64], eax
mov eax, esp
mov dword [ebp - 0x68], edi
lea edi, [ebp - 0x68]
push ecx
push edx
push 5
push dword [ebp - 0x14]
mov dword [eax], 0xd
push dword [ebp - 0x20]
mov dword [eax + 4], 0
mov dword [eax + 8], edi
call fcn.00513f20
add esp, 0x28
cmp dword [esi + 0x14], 0x10
mov edx, esi
mov dword [ebp - 0x6c], 0
jb 0x52925b
mov edx, dword [esi]
xor ecx, ecx
mov edi, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x529279
movzx eax, byte [ecx + edx]
inc ecx
xor eax, edi
imul edi, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x529267
mov ecx, dword [ebp - 0x28]
lea eax, [ebp - 0x40]
push edi
push esi
push eax
call fcn.00487090
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x52929c
mov byte [ebp - 0x24], 1
mov edi, eax
jmp 0x529443
mov eax, dword [ebp - 0x28]
cmp dword [eax + 8], 0x71c71c7
je 0x5297f9
add eax, 4
mov dword [ebp - 0x60], eax
push 0x24
mov byte [ebp - 4], 1
mov dword [ebp - 0x5c], 0
call fcn.00512870
add esp, 4
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x5c], eax
lea ecx, [eax + 8]
push esi
call fcn.00480e80
mov eax, dword [ebp - 0x14]
mov dword [eax + 0x20], 0
mov ecx, dword [ebp - 0x28]
mov byte [ebp - 4], 2
mov eax, dword [ecx + 8]
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75a370]
mov eax, dword [ecx + 0x1c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x75a370]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [ecx]
seta al
test al, al
je 0x529355
call fcn.00527b10
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
add eax, 8
push edi
push eax
lea eax, [ebp - 0x74]
push eax
call fcn.00487090
mov ecx, dword [ebp - 0x28]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x40], edx
mov dword [ebp - 0x3c], eax
jmp 0x529358
mov edx, dword [ebp - 0x40]
push dword [ebp - 0x14]
mov dword [ebp - 0x5c], 0
push edx
push edi
call fcn.004cedd0
cmp byte [0xa902b2], 0
mov edi, eax
mov ecx, dword [0x8f0580]
mov edx, dword [0x8f057c]
mov dword [ebp - 0x14], edi
mov byte [ebp - 4], 0
mov dword [ebp - 0x34], ecx
je 0x5293a6
cmp byte [0x8f028c], 0
je 0x5293a6
test dl, dl
je 0x52940b
cmp dl, 6
jb 0x52940b
shr edx, 8
cmp dl, 5
jb 0x52940b
jmp 0x5293aa
test dl, dl
je 0x52940b
mov dword [ebp - 0x20], 0x23a253c
mov edx, dword [ebp - 0x20]
mov eax, dword [0x8f057c]
sub edx, 0x1c12020
mov ecx, edx
mov dword [ebp - 0x38], eax
mov eax, dword [0x8f0580]
mov dword [ebp - 0x28], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x20], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5293d2
sub ecx, dword [ebp - 0x20]
lea edi, [ebp - 0x80]
push 1
sub esp, 0x10
mov eax, esp
push ecx
push edx
push 5
push dword [ebp - 0x28]
mov dword [eax], 0
push dword [ebp - 0x38]
mov dword [eax + 4], 0
mov dword [eax + 8], edi
call fcn.00513f20
mov edi, dword [ebp - 0x14]
add esp, 0x28
lea eax, [ebx + 0x14]
push eax
lea eax, [ebx + 0x10]
push eax
lea eax, [ebp - 0x18]
push eax
call fcn.00526240
add esp, 0xc
mov edx, dword [eax]
mov dword [eax], 0
mov ecx, dword [edi + 0x20]
mov dword [edi + 0x20], edx
test ecx, ecx
je 0x529437
mov eax, dword [ecx]
push 1
call dword [eax]
lea ecx, [ebp - 0x18]
call fcn.00527880
mov byte [ebp - 0x24], 0
cmp byte [ebp - 0x21], 0
mov edi, dword [edi + 0x20]
mov ecx, dword [0x8f0580]
mov eax, dword [0x8f057c]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x34], ecx
je 0x529523
cmp byte [0xa902b2], 0
mov esi, dword [ebx + 0xc]
je 0x529493
cmp byte [0x8f028c], 0
je 0x529493
test al, al
je 0x529516
cmp al, 6
jb 0x529516
shr eax, 8
cmp al, 5
jb 0x529516
jmp 0x52949b
test al, al
je 0x529516
mov dword [ebp - 0x18], 0x23face1
mov edx, dword [ebp - 0x18]
mov eax, dword [0x8f057c]
sub edx, 0x1c6a78d
mov ecx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [0x8f0580]
mov dword [ebp - 0x34], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x5294c3
sub ecx, dword [ebp - 0x18]
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x14], esi
jb 0x5294db
mov eax, dword [esi]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x10]
mov esi, dword [ebp - 0x14]
push 1
sub esp, 0x10
mov dword [ebp - 0x2c], eax
mov eax, esp
mov dword [ebp - 0x30], esi
lea esi, [ebp - 0x30]
push ecx
push edx
push 5
push dword [ebp - 0x34]
mov dword [eax], 0xd
push dword [ebp - 0x20]
mov dword [eax + 4], 0
mov dword [eax + 8], esi
call fcn.00513f20
mov esi, dword [ebx + 0xc]
add esp, 0x28
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 0xc]
jmp 0x529793
cmp byte [ebp - 0x22], 0
je 0x5295f3
cmp byte [0xa902b2], 0
mov esi, dword [ebx + 0xc]
je 0x52955f
cmp byte [0x8f028c], 0
je 0x52955f
test al, al
je 0x5295e3
cmp al, 6
jb 0x5295e3
shr eax, 8
cmp al, 5
jb 0x5295e3
jmp 0x529567
test al, al
je 0x5295e3
mov dword [ebp - 0x18], 0x241cd7e
mov edx, dword [ebp - 0x18]
mov eax, dword [0x8f057c]
sub edx, 0x1c8c7f2
mov ecx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [0x8f0580]
mov dword [ebp - 0x34], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x529590
sub ecx, dword [ebp - 0x18]
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x14], esi
jb 0x5295a8
mov eax, dword [esi]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x10]
mov esi, dword [ebp - 0x14]
push 1
sub esp, 0x10
mov dword [ebp - 0x2c], eax
mov eax, esp
mov dword [ebp - 0x30], esi
lea esi, [ebp - 0x30]
push ecx
push edx
push 5
push dword [ebp - 0x34]
mov dword [eax], 0xd
push dword [ebp - 0x20]
mov dword [eax + 4], 0
mov dword [eax + 8], esi
call fcn.00513f20
mov esi, dword [ebx + 0xc]
add esp, 0x28
push dword [ebx + 0x10]
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 0x10]
jmp 0x529793
cmp byte [ebp - 0x23], 0
je 0x5296c3
cmp byte [0xa902b2], 0
mov esi, dword [ebx + 0xc]
je 0x52962f
cmp byte [0x8f028c], 0
je 0x52962f
test al, al
je 0x5296b3
cmp al, 6
jb 0x5296b3
shr eax, 8
cmp al, 5
jb 0x5296b3
jmp 0x529637
test al, al
je 0x5296b3
mov dword [ebp - 0x18], 0x243ee1f
mov edx, dword [ebp - 0x18]
mov eax, dword [0x8f057c]
sub edx, 0x1cae857
mov ecx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [0x8f0580]
mov dword [ebp - 0x34], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x529660
sub ecx, dword [ebp - 0x18]
cmp dword [esi + 0x14], 0x10
mov dword [ebp - 0x14], esi
jb 0x529678
mov eax, dword [esi]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x10]
mov esi, dword [ebp - 0x14]
push 1
sub esp, 0x10
mov dword [ebp - 0x2c], eax
mov eax, esp
mov dword [ebp - 0x30], esi
lea esi, [ebp - 0x30]
push ecx
push edx
push 5
push dword [ebp - 0x34]
mov dword [eax], 0xd
push dword [ebp - 0x20]
mov dword [eax + 4], 0
mov dword [eax + 8], esi
call fcn.00513f20
mov esi, dword [ebx + 0xc]
add esp, 0x28
push dword [ebx + 0x10]
mov eax, dword [edi]
mov ecx, edi
push esi
call dword [eax + 0x14]
jmp 0x529793
cmp byte [0xa902b2], 0
je 0x5296f2
cmp byte [0x8f028c], 0
je 0x5296f2
test al, al
je 0x529778
cmp al, 6
jb 0x529778
shr eax, 8
cmp al, 5
jb 0x529778
jmp 0x5296fa
test al, al
je 0x529778
mov dword [ebp - 0x18], 0x2460ec4
mov edx, dword [ebp - 0x18]
mov eax, dword [0x8f057c]
sub edx, 0x1cd08bc
mov ecx, edx
mov dword [ebp - 0x20], eax
mov eax, dword [0x8f0580]
mov dword [ebp - 0x34], eax
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x529722
mov eax, dword [ebx + 0xc]
sub ecx, dword [ebp - 0x18]
mov dword [ebp - 0x14], eax
cmp dword [eax + 0x14], 0x10
jb 0x52973d
mov edi, dword [eax]
mov dword [ebp - 0x14], edi
mov eax, dword [eax + 0x10]
mov edi, dword [ebp - 0x14]
push 1
sub esp, 0x10
mov dword [ebp - 0x2c], eax
mov eax, esp
mov dword [ebp - 0x30], edi
lea edi, [ebp - 0x30]
push ecx
push edx
push 5
push dword [ebp - 0x34]
mov dword [eax], 0xd
push dword [ebp - 0x20]
mov dword [eax + 4], 0
mov dword [eax + 8], edi
call fcn.00513f20
mov edi, dword [ebp - 0x28]
add esp, 0x28
mov eax, dword [edi]
mov ecx, edi
push esi
push dword [ebx + 0x10]
push dword [ebx + 0xc]
call dword [eax + 8]
cmp byte [ebx + 0x18], 0
je 0x529793
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x3c]
mov edx, dword [ebp - 0x44]
cmp edx, 0x10
jb 0x5297c3
mov ecx, dword [ebp - 0x58]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x5297b9
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x529803
push edx
push ecx
call fcn.00512900
add esp, 8
mov al, byte [ebp - 0x24]
jmp 0x5297df
push dword [ebx + 0x1c]
push dword [ebx + 0x18]
push dword [ebx + 0x14]
push dword [ebx + 0x10]
push dword [ebx + 0xc]
push dword [ebx + 8]
call fcn.00529810
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret 0x18
call fcn.0070b6e4
push str.unordered_map_set_too_long
call fcn.006ea2aa
call fcn.0070b6e4
int3