Function at 0x529830
Capabilities:
Encode data using xor
Hash data using fnv

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x8c
push ebx
push esi
push edi
lea eax, [ebp - 4]
mov dword [ebp - 0x30], 0
push eax
lea eax, [ebp - 0x30]
mov dword [ebp - 4], 0
push eax
push dword [ebp + 8]
mov esi, ecx
mov dword [ebp - 0x28], esi
call fcn.0052a740
mov ebx, dword [ebp + 0xc]
test ebx, ebx
je 0x52a2e3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 4]
mov dword [ebp - 0x2c], eax
mov edi, dword [eax]
mov dword [ebp - 4], edi
cmp edi, eax
je 0x529a09
cmp dword [edi + 0x34], 0xf
lea eax, [edi + 0x20]
mov ebx, dword [ebx]
mov esi, eax
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x34], ebx
mov dword [ebp - 0x24], ecx
jbe 0x529898
mov esi, dword [eax]
xor ecx, ecx
mov dword [ebp - 0x20], ebx
mov edx, 0x811c9dc5
cmp dword [eax + 0x10], ecx
jbe 0x5298cf
mov edi, dword [ebp - 0x24]
nop word [eax + eax]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, edi
jb 0x5298b0
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp - 4]
mov ebx, dword [ebx]
mov dword [ebp - 0x20], ebx
lea eax, [edi + 0x20]
mov ecx, dword [ebp - 0x34]
push edx
push eax
lea eax, [ebp - 0x88]
push eax
call fcn.004100f0
mov eax, dword [eax + 4]
test eax, eax
je 0x5298f0
cmp eax, dword [ebx + 4]
jne 0x5299f5
cmp dword [edi + 0x34], 0xf
lea esi, [edi + 0x20]
mov eax, dword [edi + 0x38]
mov edx, esi
mov dword [ebp - 0x24], eax
jbe 0x529903
mov edx, dword [esi]
xor ecx, ecx
mov ebx, 0x811c9dc5
cmp dword [esi + 0x10], ecx
jbe 0x529922
nop
movzx eax, byte [edx + ecx]
inc ecx
xor eax, ebx
imul ebx, eax, 0x1000193
cmp ecx, dword [esi + 0x10]
jb 0x529910
mov ecx, dword [ebp - 0x20]
lea eax, [ebp - 0x54]
push ebx
push esi
push eax
call fcn.004100f0
mov eax, dword [ebp - 0x50]
test eax, eax
jne 0x5299ef
mov eax, dword [ebp - 0x20]
cmp dword [eax + 8], 0x71c71c7
je 0x52a717
push 0x24
call fcn.005ab82c
add esp, 4
mov dword [ebp - 4], eax
lea ecx, [eax + 8]
push esi
call fcn.004141c0
mov eax, dword [ebp - 4]
mov esi, dword [ebp - 0x20]
mov dword [eax + 0x20], 0
mov ecx, dword [esi + 8]
inc ecx
mov eax, ecx
shr eax, 0x1f
movd xmm0, ecx
cvtdq2pd xmm0, xmm0
addsd xmm0, qword [eax*8 + 0x739f30]
mov eax, dword [esi + 0x1c]
cvtpd2ps xmm1, xmm0
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x739f30]
cvtpd2ps xmm0, xmm0
divss xmm1, xmm0
comiss xmm1, dword [esi]
jbe 0x5299e0
push ecx
mov ecx, esi
call fcn.0042cd50
push eax
mov ecx, esi
call fcn.0042cb60
mov eax, dword [ebp - 4]
mov ecx, esi
push ebx
add eax, 8
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.004100f0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x50], eax
jmp 0x5299e3
mov ecx, dword [ebp - 0x54]
push dword [ebp - 4]
push ecx
push ebx
mov ecx, esi
call fcn.0040fa90
mov ecx, dword [ebp - 0x24]
mov dword [eax + 0x20], ecx
mov edi, dword [edi]
mov ebx, dword [ebp + 0xc]
mov dword [ebp - 4], edi
cmp edi, dword [ebp - 0x2c]
jne 0x529880
mov esi, dword [ebp - 0x28]
mov edi, dword [ebx]
xorps xmm0, xmm0
movups xmmword [ebp - 0x4c], xmm0
mov dword [ebp - 0x3c], 8
mov edx, 0x811c9dc5
mov dword [ebp - 0x38], 0xf
xor ecx, ecx
mov dword [ebp - 0x4c], 0x4847494c
mov dword [ebp - 0x48], 0x474e4954
mov byte [ebp - 0x44], 0
nop dword [eax]
movzx eax, byte [ebp + ecx - 0x4c]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, 8
jb 0x529a40
push edx
lea eax, [ebp - 0x4c]
mov ecx, edi
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.004100f0
mov eax, dword [eax + 4]
test eax, eax
jne 0x529a6d
mov eax, dword [edi + 4]
mov ecx, edi
cmp eax, dword [ecx + 4]
je 0x52a08c
cmp dword [eax + 0x20], 0
je 0x52a08c
mov eax, dword [esi + 0x40]
xorps xmm0, xmm0
mov esi, dword [eax + 0x26f0]
mov eax, dword [0x731e30]
and esi, 0xf
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x1c]
movq xmm0, qword [str.LIGHTS_POINT]
push eax
mov dword [ebp - 0xc], 0xc
mov dword [ebp - 8], 0xf
movq qword [ebp - 0x1c], xmm0
mov byte [ebp - 0x10], 0
call fcn.004be2e0
mov dword [eax], esi
mov eax, dword [ebp - 8]
cmp eax, 0xf
jbe 0x529adf
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x1c]
push eax
call fcn.00414390
add esp, 0xc
mov edi, dword [ebp - 0x28]
movq xmm0, qword [str.LIGHTS_SPOT]
mov ecx, dword [ebx]
mov eax, dword [edi + 0x40]
mov esi, dword [eax + 0x26f0]
mov ax, word [0x731e84]
mov word [ebp - 0x14], ax
mov al, byte [0x731e86]
mov byte [ebp - 0x12], al
lea eax, [ebp - 0x1c]
shr esi, 4
push eax
and esi, 0xf
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0xb
mov dword [ebp - 8], 0xf
movq qword [ebp - 0x1c], xmm0
mov byte [ebp - 0x11], 0
call fcn.004be2e0
mov dword [eax], esi
mov eax, dword [ebp - 8]
cmp eax, 0xf
jbe 0x529b4e
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x1c]
push eax
call fcn.00414390
add esp, 0xc
mov eax, dword [edi + 0x40]
movq xmm0, qword [str.LIGHTS_TUBE]
mov ecx, dword [ebx]
mov esi, dword [eax + 0x26f0]
mov ax, word [0x731f0c]
mov word [ebp - 0x14], ax
mov al, byte [0x731f0e]
mov byte [ebp - 0x12], al
lea eax, [ebp - 0x1c]
shr esi, 8
push eax
and esi, 0xf
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0xb
mov dword [ebp - 8], 0xf
movq qword [ebp - 0x1c], xmm0
mov byte [ebp - 0x11], 0
call fcn.004be2e0
lea ecx, [ebp - 0x1c]
mov dword [eax], esi
call fcn.004143d0
mov eax, dword [edi + 0x40]
xorps xmm0, xmm0
mov esi, dword [ebx]
mov dword [ebp - 4], 0x1f
mov edi, dword [eax + 0x26f0]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x1c]
shr edi, 0xc
push eax
and edi, 0xf
mov dword [ebp - 0xc], 0
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 8], 0
call fcn.00414510
movups xmm0, xmmword [str.LIGHTS_DIRECTIONAL]
mov edx, dword [ebp - 4]
add esp, 8
mov dword [ebp - 0x1c], eax
mov ecx, esi
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], 0x12
movups xmmword [eax], xmm0
mov dx, word [0x731f7c]
mov word [eax + 0x10], dx
mov byte [eax + 0x12], 0
lea eax, [ebp - 0x1c]
push eax
call fcn.004be2e0
mov dword [eax], edi
mov eax, dword [ebp - 8]
cmp eax, 0xf
jbe 0x529c35
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x1c]
push eax
call fcn.00414390
add esp, 0xc
mov eax, dword [ebp - 0x28]
xorps xmm0, xmm0
mov esi, dword [ebx]
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 0x6c], 0
mov eax, dword [eax + 0x40]
mov dword [ebp - 0x68], 0
mov dword [ebp - 4], 0x1f
mov eax, dword [eax + 0x26f0]
mov ecx, eax
shr ecx, 0x10
mov edi, eax
and ecx, 3
shr edi, 0x14
mov dword [ebp - 0x2c], ecx
and edi, 3
mov ecx, eax
mov dword [ebp - 0x34], edi
shr ecx, 0x12
and ecx, 3
mov dword [ebp - 0x24], ecx
mov ecx, eax
shr eax, 0x18
and eax, 3
shr ecx, 0x16
mov dword [ebp - 0x50], eax
and ecx, 3
lea eax, [ebp - 4]
mov dword [ebp - 0x20], ecx
push eax
lea eax, [ebp - 0x7c]
push eax
call fcn.00414510
movups xmm0, xmmword [str.LIGHTS_SPOT_SHADOW_COOKIE]
mov ecx, dword [ebp - 4]
mov edx, eax
mov dword [ebp - 0x68], ecx
add esp, 8
mov dword [ebp - 0x7c], edx
mov ecx, esi
mov dword [ebp - 0x6c], 0x19
movups xmmword [edx], xmm0
movq xmm0, qword [0x731fdc]
movq qword [edx + 0x10], xmm0
mov al, byte [0x731fe4]
mov byte [edx + 0x18], al
lea eax, [ebp - 0x7c]
push eax
mov byte [edx + 0x19], 0
call fcn.004be2e0
lea ecx, [ebp - 0x7c]
mov dword [eax], edi
call fcn.004143d0
mov esi, dword [ebx]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
xorps xmm0, xmm0
mov dword [ebp - 8], 0
push eax
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 4], 0x1f
call fcn.00414510
movups xmm0, xmmword [str.LIGHTS_SPOT_SHADOW]
mov edx, dword [ebp - 4]
add esp, 8
mov dword [ebp - 0x1c], eax
mov ecx, esi
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], 0x12
movups xmmword [eax], xmm0
mov dx, word [0x731ff8]
mov word [eax + 0x10], dx
mov byte [eax + 0x12], 0
lea eax, [ebp - 0x1c]
push eax
call fcn.004be2e0
mov ecx, dword [ebp - 0x2c]
mov dword [eax], ecx
mov eax, dword [ebp - 8]
cmp eax, 0xf
jbe 0x529d6d
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x1c]
push eax
call fcn.00414390
add esp, 0xc
mov esi, dword [ebx]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
xorps xmm0, xmm0
mov dword [ebp - 8], 0
push eax
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 4], 0x1f
call fcn.00414510
movups xmm0, xmmword [str.LIGHTS_SPOT_COOKIE]
mov edx, dword [ebp - 4]
add esp, 8
mov dword [ebp - 0x1c], eax
mov ecx, esi
mov dword [ebp - 8], edx
mov dword [ebp - 0xc], 0x12
movups xmmword [eax], xmm0
mov dx, word [0x73200c]
mov word [eax + 0x10], dx
mov byte [eax + 0x12], 0
lea eax, [ebp - 0x1c]
push eax
call fcn.004be2e0
mov ecx, dword [ebp - 0x24]
mov dword [eax], ecx
mov eax, dword [ebp - 8]
cmp eax, 0xf
jbe 0x529dec
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x1c]
push eax
call fcn.00414390
add esp, 0xc
mov esi, dword [ebx]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x7c]
mov dword [ebp - 0x6c], 0
xorps xmm0, xmm0
mov dword [ebp - 0x68], 0
push eax
movups xmmword [ebp - 0x7c], xmm0
mov dword [ebp - 4], 0x1f
call fcn.00414510
movups xmm0, xmmword [str.LIGHTS_DIRECTIONAL_SHADOW]
mov ecx, dword [ebp - 4]
mov edx, eax
mov dword [ebp - 0x68], ecx
add esp, 8
mov dword [ebp - 0x7c], edx
mov ecx, esi
mov dword [ebp - 0x6c], 0x19
movups xmmword [edx], xmm0
movq xmm0, qword [0x732020]
movq qword [edx + 0x10], xmm0
mov al, byte [0x732028]
mov byte [edx + 0x18], al
lea eax, [ebp - 0x7c]
push eax
mov byte [edx + 0x19], 0
call fcn.004be2e0
mov ecx, dword [ebp - 0x20]
mov dword [eax], ecx
mov eax, dword [ebp - 0x68]
cmp eax, 0xf
jbe 0x529e77
push eax
push dword [ebp - 0x7c]
lea eax, [ebp - 0x7c]
push eax
call fcn.00414390
add esp, 0xc
mov edi, dword [ebx]
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
xorps xmm0, xmm0
mov dword [ebp - 8], 0
push eax
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 4], 0x1f
call fcn.00414510
movups xmm0, xmmword [str.LIGHTS_POINT_SHADOW]
mov ecx, dword [ebp - 4]
mov esi, eax
mov dword [ebp - 8], ecx
add esp, 8
mov dword [ebp - 0x1c], esi
mov ecx, edi
mov dword [ebp - 0xc], 0x13
movups xmmword [esi], xmm0
mov dx, word [0x732098]
mov word [esi + 0x10], dx
mov al, byte [0x73209a]
mov byte [esi + 0x12], al
lea eax, [ebp - 0x1c]
push eax
mov byte [esi + 0x13], 0
call fcn.004be2e0
mov esi, dword [ebp - 0x50]
mov dword [eax], esi
mov eax, dword [ebp - 8]
cmp eax, 0xf
jbe 0x529f00
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x1c]
push eax
call fcn.00414390
add esp, 0xc
mov eax, dword [ebp - 0x20]
add eax, esi
add eax, dword [ebp - 0x2c]
add eax, dword [ebp - 0x34]
je 0x52a026
mov edi, dword [ebx]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
xorps xmm0, xmm0
mov dword [ebp - 8], 0
push eax
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 0x2c], 0x1f
call fcn.00414510
movups xmm0, xmmword [str.LIGHTS_SHADOW_MAPPING]
mov ecx, dword [ebp - 0x2c]
mov esi, eax
mov dword [ebp - 8], ecx
add esp, 8
mov dword [ebp - 0x1c], esi
mov ecx, edi
mov dword [ebp - 0xc], 0x15
movups xmmword [esi], xmm0
mov edx, dword [0x7378f8]
mov dword [esi + 0x10], edx
mov al, byte [0x7378fc]
mov byte [esi + 0x14], al
lea eax, [ebp - 0x1c]
push eax
mov byte [esi + 0x15], 0
call fcn.004be2e0
mov dword [eax], 1
mov eax, dword [ebp - 8]
cmp eax, 0xf
jbe 0x529f99
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x1c]
push eax
call fcn.00414390
add esp, 0xc
mov eax, dword [ebp - 0x28]
xorps xmm0, xmm0
mov esi, dword [ebx]
mov dword [ebp - 0x2c], 0x1f
mov eax, dword [eax + 0x40]
movzx edi, byte [eax + 0x158]
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x1c]
mov dword [ebp - 0xc], 0
push eax
movups xmmword [ebp - 0x1c], xmm0
mov dword [ebp - 8], 0
call fcn.00414510
movups xmm0, xmmword [str.LIGHTS_SHADOW_MAPPING_QUALITY]
mov ecx, dword [ebp - 0x2c]
mov edx, eax
mov dword [ebp - 8], ecx
add esp, 8
mov dword [ebp - 0x1c], edx
mov ecx, esi
mov dword [ebp - 0xc], 0x1d
movups xmmword [edx], xmm0
movq xmm0, qword [0x7378d8]
movq qword [edx + 0x10], xmm0
mov eax, dword [0x7378e0]
mov dword [edx + 0x18], eax
mov al, byte [0x7378e4]
mov byte [edx + 0x1c], al
lea eax, [ebp - 0x1c]
push eax
mov byte [edx + 0x1d], 0
call fcn.004be2e0
lea ecx, [ebp - 0x1c]
mov dword [eax], edi
call fcn.004143d0
mov eax, dword [ebp - 0x34]
add eax, dword [ebp - 0x24]
je 0x52a08c
movq xmm0, qword [str.LIGHTS_COOKIE]
xor eax, eax
mov ecx, dword [ebx]
mov word [ebp - 0xe], ax
mov eax, dword [0x737914]
mov dword [ebp - 0x14], eax
mov al, byte [0x737918]
mov byte [ebp - 0x10], al
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0xc], 0xd
mov dword [ebp - 8], 0xf
movq qword [ebp - 0x1c], xmm0
mov byte [ebp - 0xf], 0
call fcn.004be2e0
mov dword [eax], 1
mov eax, dword [ebp - 8]
cmp eax, 0xf
jbe 0x52a08c
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x1c]
push eax
call fcn.00414390
add esp, 0xc
mov edi, dword [ebp - 0x28]
mov eax, dword [edi + 0x40]
lea esi, [edi + 0x40]
mov eax, dword [eax + 0xd0]
shr eax, 0xa
test al, 1
je 0x52a129
mov ax, word [0x737908]
movq xmm0, qword [str.SCENE_ORTHO]
mov ecx, dword [ebx]
mov word [ebp - 0x14], ax
mov al, byte [0x73790a]
mov byte [ebp - 0x12], al
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0xb
mov dword [ebp - 8], 0xf
movq qword [ebp - 0x1c], xmm0
mov byte [ebp - 0x11], 0
call fcn.004be2e0
lea esi, [edi + 0x40]
mov dword [eax], 1
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x52a129
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x52a11c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52a712
push ecx
push edx
call fcn.005ab85c
add esp, 8
lea esi, [edi + 0x40]
mov eax, dword [edi + 0x40]
mov edi, esi
mov eax, dword [eax + 0xd0]
mov dword [ebp - 0x34], eax
test eax, 0x1800000
je 0x52a23e
mov ax, word [0x73791c]
xorps xmm0, xmm0
mov ecx, dword [ebx]
movups xmmword [ebp - 0x4c], xmm0
mov word [ebp - 0x4c], ax
mov al, byte [0x73791e]
mov byte [ebp - 0x4a], al
lea eax, [ebp - 0x4c]
push eax
lea eax, [ebp - 0x50]
mov dword [ebp - 0x3c], 3
push eax
mov dword [ebp - 0x38], 0xf
mov byte [ebp - 0x49], 0
call fcn.00429d10
mov ecx, dword [ebx]
mov eax, dword [ebp - 0x50]
cmp eax, dword [ecx + 4]
je 0x52a23e
cmp dword [eax + 0x20], 0
je 0x52a23e
mov eax, dword [ebp - 0x34]
shr eax, 0x17
mov dword [ebp - 0x24], esi
test al, 1
je 0x52a1e5
movups xmmword [ebp - 0x4c], xmm0
lea eax, [ebp - 0x4c]
mov dword [ebp - 0x3c], 8
push eax
mov dword [ebp - 0x38], 0xf
mov dword [ebp - 0x4c], 0x5f474f46
mov dword [ebp - 0x48], 0x54534944
mov byte [ebp - 0x44], 0
call fcn.004be2e0
lea ecx, [ebp - 0x4c]
mov dword [eax], 1
call fcn.004143d0
mov eax, dword [ebp - 0x28]
add eax, 0x40
mov dword [ebp - 0x24], eax
mov eax, dword [esi]
mov edi, esi
test byte [eax + 0xd3], 1
je 0x52a23e
mov ax, word [0x73792c]
xorps xmm0, xmm0
mov ecx, dword [ebx]
movups xmmword [ebp - 0x4c], xmm0
mov word [ebp - 0x44], ax
lea eax, [ebp - 0x4c]
movq xmm0, qword [str.FOG_HEIGHT]
push eax
mov dword [ebp - 0x3c], 0xa
mov dword [ebp - 0x38], 0xf
movq qword [ebp - 0x4c], xmm0
mov byte [ebp - 0x42], 0
call fcn.004be2e0
lea ecx, [ebp - 0x4c]
mov dword [eax], 1
call fcn.004143d0
mov edi, dword [ebp - 0x24]
mov eax, dword [edi]
mov esi, edi
mov dword [ebp - 0x20], esi
test byte [eax + 0xd0], 2
je 0x52a2db
movq xmm0, qword [str.BACKBUFFER_MS]
xor eax, eax
mov ecx, dword [ebx]
mov word [ebp - 0xe], ax
mov eax, dword [0x732190]
mov dword [ebp - 0x14], eax
mov al, byte [0x732194]
mov byte [ebp - 0x10], al
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0xc], 0xd
mov dword [ebp - 8], 0xf
movq qword [ebp - 0x1c], xmm0
mov byte [ebp - 0xf], 0
call fcn.004be2e0
mov dword [ebp - 0x20], esi
mov dword [eax], 1
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x52a2db
mov edx, dword [ebp - 0x1c]
inc ecx
mov dword [ebp - 0x20], esi
mov eax, edx
cmp ecx, 0x1000
jb 0x52a2d1
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52a712
mov esi, dword [ebp - 0x28]
add esi, 0x40
mov dword [ebp - 0x20], esi
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov edi, dword [ebp - 0x30]
mov dword [ebx + 8], edi
jmp 0x52a2ec
mov edi, dword [ebp - 0x30]
add esi, 0x40
mov dword [ebp - 0x20], esi
mov eax, dword [esi]
test dword [eax + 0xd0], 0x20000
je 0x52a37a
mov ax, word [0x737920]
xorps xmm0, xmm0
mov ecx, dword [ebx]
movups xmmword [ebp - 0x1c], xmm0
mov word [ebp - 0x1c], ax
mov al, byte [0x737922]
mov byte [ebp - 0x1a], al
lea eax, [ebp - 0x1c]
push eax
mov dword [ebp - 0xc], 3
mov dword [ebp - 8], 0xf
mov byte [ebp - 0x19], 0
call fcn.004be2e0
mov dword [ebp - 0x20], esi
mov dword [eax], 1
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x52a37a
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x52a367
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52a721
push ecx
push edx
call fcn.005ab85c
mov esi, dword [ebp - 0x28]
add esp, 8
add esi, 0x40
mov dword [ebp - 0x20], esi
mov eax, esi
test ebx, ebx
je 0x52a4b1
cmp dword [ebx + 4], 0
je 0x52a4b1
xor ebx, ebx
mov dword [ebp - 0x24], ebx
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
mov edi, dword [eax + ebx*4]
mov eax, ebx
sar eax, 8
movzx ecx, al
movzx eax, bl
xor eax, 0x811c9dc5
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, ebx
sar eax, 0x10
imul ecx, ecx, 0x1000193
movzx eax, al
xor ecx, eax
mov eax, ebx
imul ecx, ecx, 0x1000193
sar eax, 0x18
movzx eax, al
xor ecx, eax
imul eax, ecx, 0x1000193
mov ecx, dword [ebp - 0x30]
push eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.004301e0
mov esi, dword [eax + 4]
mov eax, dword [ebp - 0x30]
test esi, esi
jne 0x52a3f8
mov esi, dword [eax + 4]
test edi, edi
jne 0x52a436
cmp esi, dword [eax + 4]
je 0x52a498
cmp byte [esi + 0x58], 0
je 0x52a498
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax]
lea eax, [esi + 0x10]
add ecx, 0x28e0
cmp dword [eax + 0x14], 0xf
jbe 0x52a425
mov eax, dword [eax]
push 1
push eax
call fcn.004f41f0
mov edi, eax
test edi, edi
je 0x52a498
mov eax, dword [ebp - 0x30]
cmp esi, dword [eax + 4]
je 0x52a498
cmp byte [esi + 0x58], 0
je 0x52a498
mov eax, dword [ebp + 0xc]
lea ecx, [ebp - 0x78]
mov edi, dword [edi + 0xc]
mov edx, ebx
push str.FORMAT
mov esi, dword [eax]
call fcn.00440f30
push eax
mov edx, 0x737930
lea ecx, [ebp - 0x1c]
call fcn.00429cb0
add esp, 4
lea ecx, [ebp - 0x4c]
mov edx, eax
call fcn.004607d0
add esp, 4
mov ecx, esi
push eax
call fcn.004be2e0
lea ecx, [ebp - 0x4c]
mov dword [eax], edi
call fcn.004143d0
lea ecx, [ebp - 0x1c]
call fcn.004143d0
lea ecx, [ebp - 0x78]
call fcn.004143d0
inc ebx
mov dword [ebp - 0x24], ebx
cmp ebx, 0xa
jl 0x52a393
mov eax, dword [ebp - 0x28]
mov ebx, dword [ebp + 0xc]
add eax, 0x40
mov edi, dword [ebp - 0x30]
mov eax, dword [eax]
mov ecx, dword [eax + 0x28dc]
mov eax, dword [ecx]
call dword [eax + 0x18]
push edi
push ebx
push dword [ebp + 8]
mov edx, eax
lea ecx, [ebp - 0x4c]
call fcn.00505140
mov edi, dword [ebp - 0x28]
lea edx, [ebp - 0x4c]
add esp, 0xc
mov dword [ebp - 0xc], 0
cmp dword [ebp - 0x38], 0xf
xorps xmm0, xmm0
movups xmmword [ebp - 0x1c], xmm0
cmova edx, dword [ebp - 0x4c]
mov ecx, edx
mov dword [ebp - 8], 0
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x52a4f8
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x1c]
call fcn.00414570
cmp dword [ebp - 8], 0xf
lea esi, [ebp - 0x1c]
mov edx, 0x811c9dc5
cmova esi, dword [ebp - 0x1c]
xor ecx, ecx
cmp dword [ebp - 0xc], ecx
jbe 0x52a534
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [ebp - 0xc]
jb 0x52a522
push edx
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x5c]
push eax
lea ecx, [edi + 0x20]
call fcn.004100f0
mov esi, dword [eax + 4]
test esi, esi
jne 0x52a54f
mov esi, dword [edi + 0x24]
mov eax, dword [ebp - 8]
cmp eax, 0xf
jbe 0x52a58b
lea ecx, [eax + 1]
mov eax, dword [ebp - 0x1c]
mov edx, eax
cmp ecx, 0x1000
jb 0x52a581
mov eax, dword [edx - 4]
add ecx, 0x23
sub edx, eax
mov dword [ebp + 0xc], eax
lea eax, [edx - 4]
cmp eax, 0x1f
ja 0x52a72b
mov eax, dword [ebp + 0xc]
push ecx
push eax
call fcn.005ab85c
add esp, 8
cmp esi, dword [edi + 0x24]
je 0x52a598
mov esi, dword [esi + 0x20]
jmp 0x52a6d7
push ecx
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], 0
push eax
lea ecx, [ebp - 0x80]
call fcn.00428e90
lea eax, [ebp - 0x80]
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x60], eax
test ebx, ebx
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x58], 0
mov ecx, dword [eax + 0x28dc]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c]
lea eax, [ebp - 0x60]
cmovne eax, ebx
push eax
push dword [ebp + 8]
call edx
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.0040aea0
mov edx, dword [ebp - 0x7c]
call fcn.0042b120
push 0x24
push dword [ebp - 0x7c]
call fcn.005ab85c
add esp, 8
test esi, esi
jne 0x52a651
push ecx
lea eax, [ebp + 0xc]
mov dword [ebp + 0xc], esi
push eax
lea ecx, [ebp - 0x80]
call fcn.00428e90
lea eax, [ebp - 0x80]
mov dword [ebp - 0x5c], esi
mov dword [ebp - 0x60], eax
lea edx, [ebp - 0x60]
mov eax, dword [edi + 0x40]
mov dword [ebp - 0x58], esi
push edx
push str.error
mov ecx, dword [eax + 0x28dc]
mov eax, dword [ecx]
call dword [eax + 0x1c]
lea ecx, [ebp - 0x74]
mov esi, eax
call fcn.0040aea0
mov edx, dword [ebp - 0x7c]
call fcn.0042b120
push 0x24
push dword [ebp - 0x7c]
call fcn.005ab85c
add esp, 8
cmp dword [ebp - 0x38], 0xf
lea ebx, [edi + 0x20]
lea edi, [ebp - 0x4c]
mov dword [ebp - 0xc], 0
cmova edi, dword [ebp - 0x4c]
xorps xmm0, xmm0
mov edx, edi
mov dword [ebp - 8], 0
movups xmmword [ebp - 0x1c], xmm0
lea ecx, [edx + 1]
nop dword [eax]
mov al, byte [edx]
inc edx
test al, al
jne 0x52a680
sub edx, ecx
lea ecx, [ebp - 0x1c]
push edx
push edi
call fcn.00414570
lea eax, [ebp - 0x1c]
mov ecx, ebx
push eax
lea eax, [ebp - 0x5c]
push eax
call fcn.0052af50
mov eax, dword [eax]
mov dword [eax + 0x20], esi
mov ecx, dword [ebp - 8]
cmp ecx, 0xf
jbe 0x52a6d7
mov edx, dword [ebp - 0x1c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x52a6cd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52a726
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov ecx, dword [ebp - 0x38]
cmp ecx, 0xf
jbe 0x52a707
mov edx, dword [ebp - 0x4c]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x52a6fd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x52a72b
push ecx
push edx
call fcn.005ab85c
add esp, 8
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call fcn.005c695f
push str.unordered_map_set_too_long
call fcn.005acb94
call fcn.005c695f
call fcn.005c695f
call fcn.005c695f
int3