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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20c
movq xmm0, qword [str.SHADERVERSION]
xor eax, eax
mov word [ebp - 0x11a], ax
mov eax, dword [0x736128]
push ebx
mov dword [ebp - 0x120], eax
lea ebx, [ebp - 0xf8]
mov al, byte [0x73612c]
push esi
movq qword [ebp - 0x128], xmm0
xorps xmm0, xmm0
mov byte [ebp - 0x11c], al
mov eax, 0x3236
push edi
movups xmmword [ebp - 0x110], xmm0
mov word [ebp - 0x110], ax
lea edi, [ebp - 0x128]
push ecx
lea eax, [ebp - 0x40]
mov dword [ebp - 0x68], ecx
push eax
lea ecx, [ebp - 0xc0]
mov dword [ebp - 0x118], 0xd
mov dword [ebp - 0x114], 0xf
mov byte [ebp - 0x11b], 0
mov dword [ebp - 0x100], 2
mov dword [ebp - 0xfc], 0xf
mov byte [ebp - 0x10e], 0
mov dword [ebp - 0x40], 0
call fcn.0040d180
cmp edi, ebx
je 0x503ca6
cmp dword [edi + 0x14], 0xf
mov edx, edi
mov ebx, dword [edi + 0x10]
jbe 0x503b92
mov edx, dword [edi]
xor ecx, ecx
mov esi, 0x811c9dc5
test ebx, ebx
je 0x503bb1
nop dword [eax]
movzx eax, byte [ecx + edx]
inc ecx
xor eax, esi
imul esi, eax, 0x1000193
cmp ecx, ebx
jb 0x503ba0
push esi
push edi
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0xc0]
call fcn.004100f0
cmp dword [ebp - 0x84], 0
jne 0x503c95
cmp dword [ebp - 0xb8], 0x4924924
je 0x504c92
push 0x38
call fcn.005ab82c
add esp, 4
mov dword [ebp - 0x40], eax
lea ebx, [eax + 8]
push edi
mov ecx, ebx
call fcn.004141c0
lea edx, [edi + 0x18]
lea ecx, [ebx + 0x18]
push edx
call fcn.004141c0
mov eax, dword [ebp - 0xb8]
inc eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x739f30]
mov eax, dword [ebp - 0xa4]
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 [ebp - 0xc0]
jbe 0x503c7f
lea ecx, [ebp - 0xc0]
call fcn.0040fa00
push esi
push ebx
lea eax, [ebp - 0x4c]
push eax
lea ecx, [ebp - 0xc0]
call fcn.004100f0
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], eax
jmp 0x503c85
mov ecx, dword [ebp - 0x88]
push dword [ebp - 0x40]
push ecx
push esi
lea ecx, [ebp - 0xc0]
call fcn.0040fa90
add edi, 0x30
lea eax, [ebp - 0xf8]
cmp edi, eax
jne 0x503b85
lea ebx, [ebp - 0xf8]
mov eax, 1
lea esi, [ebx + 0x2c]
mov ecx, dword [esi - 0x30]
lea esi, [esi - 0x30]
dec eax
lea ebx, [ebx - 0x30]
mov dword [ebp - 0x48], eax
cmp ecx, 0xf
jbe 0x503cf5
mov eax, dword [esi - 0x14]
inc ecx
cmp ecx, 0x1000
jb 0x503ce8
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x504c9c
mov eax, edx
push ecx
push eax
call fcn.005ab85c
mov eax, dword [ebp - 0x48]
add esp, 8
mov dword [esi - 4], 0
mov dword [esi], 0xf
mov byte [esi - 0x14], 0
mov ecx, dword [esi - 0x18]
cmp ecx, 0xf
jbe 0x503d3c
mov eax, dword [ebx]
inc ecx
cmp ecx, 0x1000
jb 0x503d2f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x504c9c
mov eax, edx
push ecx
push eax
call fcn.005ab85c
mov eax, dword [ebp - 0x48]
add esp, 8
mov dword [esi - 0x1c], 0
mov dword [esi - 0x18], 0xf
mov byte [ebx], 0
test eax, eax
jne 0x503cb4
mov edi, dword [ebp - 0x68]
lea ecx, [ebp - 0x208]
sub esp, 8
push edi
call fcn.00427d40
mov eax, dword fs:[0x2c]
xorps xmm0, xmm0
movups xmmword [ebp - 0x24], xmm0
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0xf
mov esi, dword [eax]
mov eax, dword [0x74efe4]
mov byte [ebp - 0x24], 0
cmp eax, dword [esi + 0x98]
jg 0x504982
mov eax, dword [0x74effc]
cmp eax, dword [esi + 0x98]
jg 0x5049e4
mov eax, dword [0x74f014]
cmp eax, dword [esi + 0x98]
jg 0x504a46
mov eax, dword [0x74f02c]
cmp eax, dword [esi + 0x98]
jg 0x504aa8
mov eax, dword [0x74f044]
cmp eax, dword [esi + 0x98]
jg 0x504b0a
mov eax, dword [0x74f05c]
cmp eax, dword [esi + 0x98]
jg 0x504b6c
mov eax, dword [0x74f074]
cmp eax, dword [esi + 0x98]
jg 0x504bce
mov eax, dword [0x74f08c]
cmp eax, dword [esi + 0x98]
jg 0x504c30
xor ecx, ecx
mov dword [ebp - 0xf8], 0
xor esi, esi
mov byte [ebp - 0xf4], 0
xor dl, dl
mov dword [ebp - 0xe0], 0
cmp dword [edi + 0x14], 0xf
xorps xmm0, xmm0
movups xmmword [ebp - 0xf0], xmm0
mov byte [ebp - 0xdc], 0
mov ebx, edi
mov dword [ebp - 0xd8], 0
mov dword [ebp - 0xd4], 0
mov byte [ebp - 0xd0], 0
mov dword [ebp - 0xcc], 0
mov dword [ebp - 0xc8], 0
mov byte [ebp - 0xc4], 0
mov dword [ebp - 0xc], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x48], esi
mov dword [ebp - 0x28], esi
mov byte [ebp - 1], 1
mov byte [ebp - 2], dl
jbe 0x503e98
mov ebx, dword [edi]
cmp byte [ebx], cl
je 0x5048d8
mov edi, ebx
mov al, byte [ebx]
mov cl, al
cmp cl, 0xd
je 0x503eb9
cmp al, 0xa
je 0x503eb9
mov al, byte [ebx + 1]
inc ebx
mov cl, al
test al, al
jne 0x503ea6
xor al, al
mov byte [ebp - 3], al
test dl, dl
je 0x503f45
cmp edi, ebx
jae 0x503f28
mov ecx, 1
lea esi, [edi + 1]
sub ecx, edi
mov dword [ebp - 8], ecx
mov al, byte [esi - 1]
cmp al, 0x2f
jne 0x503ee7
mov dl, byte [ebp - 2]
cmp byte [esi], al
je 0x503f24
jmp 0x503f1c
cmp al, 0x2a
jne 0x503f19
cmp byte [esi], 0x2f
jne 0x503f19
xor dl, dl
mov dword [ebp - 0x40], 0
cmp edi, esi
mov byte [ebp - 2], dl
lea eax, [ecx + esi]
cmova eax, dword [ebp - 0x40]
cmp eax, 1
jb 0x503f1c
push eax
push 0x20
push edi
call fcn.005c3040
mov ecx, dword [ebp - 8]
add esp, 0xc
mov dl, byte [ebp - 2]
inc esi
lea eax, [esi - 1]
cmp eax, ebx
jb 0x503ed7
test dl, dl
je 0x503f45
mov esi, ebx
xor eax, eax
sub esi, edi
cmp edi, ebx
cmova esi, eax
test esi, esi
je 0x503f45
push esi
push 0x20
push edi
call fcn.005c3040
add esp, 0xc
add edi, esi
mov al, byte [edi]
cmp al, 0x20
je 0x503f4f
cmp al, 9
jne 0x503f52
inc edi
jmp 0x503f45
mov dword [ebp - 8], edi
cmp al, 0x23
jne 0x504840
mov eax, ebx
lea ecx, [ebp - 0x24]
sub eax, edi
push eax
push edi
call fcn.0040c060
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x24]
lea edi, [ebp - 0x24]
mov eax, dword [ebp - 0x14]
cmova ecx, edx
cmova edi, edx
add eax, ecx
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
push edi
cmova ecx, edx
mov edx, 0x74efe8
push ecx
push eax
push ecx
lea ecx, [ebp - 0xf8]
call fcn.004ad6e0
add esp, 0x10
test al, al
je 0x5041c8
cmp byte [ebp - 1], 0
je 0x5046c2
mov edi, dword [ebp - 0xec]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xf0]
mov ecx, edi
sub ecx, esi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x5046c2
cmp byte [esi + 0x14], 0
je 0x503ff2
mov eax, dword [esi + 0xc]
mov edx, eax
mov ecx, dword [esi + 0x10]
mov dword [ebp - 0x40], ecx
jmp 0x503ff8
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [ebp - 0x40], eax
xorps xmm0, xmm0
mov dword [ebp - 0x54], 0
mov dword [ebp - 0x50], 0
movups xmmword [ebp - 0x64], xmm0
cmp edx, ecx
jne 0x504021
mov dword [ebp - 0x50], 0xf
mov byte [ebp - 0x64], 0
jmp 0x50402e
sub ecx, dword [ebp - 0x40]
push ecx
push eax
lea ecx, [ebp - 0x64]
call fcn.00414570
xorps xmm0, xmm0
mov dword [ebp - 0x70], 0
movups xmmword [ebp - 0x80], xmm0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp byte [esi + 8], 0
je 0x504054
mov ecx, dword [esi]
mov eax, dword [esi + 4]
jmp 0x504058
xor eax, eax
xor ecx, ecx
sub eax, ecx
cmp eax, 2
jle 0x50410d
sub edi, esi
lea ecx, [ebp - 0xcc]
mov eax, 0x2aaaaaab
imul edi
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 2
jbe 0x504083
lea ecx, [esi + 0x18]
lea eax, [ebp - 0x160]
push eax
call fcn.004ab270
mov esi, eax
lea eax, [ebp - 0x80]
cmp eax, esi
je 0x504100
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x5040cc
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x5040c2
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x504c9c
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
movups xmm0, xmmword [esi]
movups xmmword [ebp - 0x80], xmm0
movq xmm0, qword [esi + 0x10]
movq qword [ebp - 0x70], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0xf
mov byte [esi], 0
lea ecx, [ebp - 0x160]
call fcn.004143d0
jmp 0x50411c
push 1
push 0x734f70
lea ecx, [ebp - 0x80]
call fcn.0040c060
lea eax, [ebp - 0x64]
push eax
lea ecx, [ebp - 0xc0]
call fcn.0040ced0
lea ecx, [ebp - 0x80]
cmp eax, ecx
je 0x504145
cmp dword [ebp - 0x6c], 0xf
push dword [ebp - 0x70]
cmova ecx, dword [ebp - 0x80]
push ecx
mov ecx, eax
call fcn.0040c060
mov ecx, dword [ebp - 0x6c]
cmp ecx, 0xf
jbe 0x504179
mov edx, dword [ebp - 0x80]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x50416f
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x504c9c
push ecx
push edx
call fcn.005ab85c
add esp, 8
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0xf
mov byte [ebp - 0x80], 0
cmp ecx, 0xf
jbe 0x50483d
mov edx, dword [ebp - 0x64]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x5041b9
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x504c9c
push ecx
push edx
call fcn.005ab85c
add esp, 8
jmp 0x50483d
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x24]
lea edi, [ebp - 0x24]
mov eax, dword [ebp - 0x14]
cmova ecx, edx
cmova edi, edx
add eax, ecx
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
push edi
cmova ecx, edx
mov edx, 0x74f000
push ecx
push eax
push ecx
lea ecx, [ebp - 0xf8]
call fcn.004ad6e0
add esp, 0x10
test al, al
je 0x50436e
mov ecx, dword [ebp - 0xec]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xf0]
sub ecx, esi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x5046c2
cmp byte [esi + 0x14], 0
je 0x504245
mov eax, dword [esi + 0xc]
mov edx, eax
mov ecx, dword [esi + 0x10]
mov edi, eax
mov dword [ebp - 0x40], ecx
jmp 0x50424d
xor eax, eax
xor ecx, ecx
xor edx, edx
xor edi, edi
xor esi, esi
xorps xmm0, xmm0
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x50], esi
movups xmmword [ebp - 0x64], xmm0
cmp edx, ecx
jne 0x504273
mov byte [ebp - 0x64], 0
lea edi, [ebp - 0x64]
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x50], 0xf
jmp 0x50428f
sub ecx, edi
push ecx
push eax
lea ecx, [ebp - 0x64]
call fcn.00414570
cmp dword [ebp - 0x50], 0xf
lea edi, [ebp - 0x64]
mov eax, dword [ebp - 0x64]
mov esi, dword [ebp - 0x54]
cmova edi, eax
xor ecx, ecx
mov dword [ebp - 0x40], eax
mov edx, 0x811c9dc5
test esi, esi
je 0x5042b1
nop dword [eax]
movzx eax, byte [edi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, esi
jb 0x5042a0
push edx
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x130]
push eax
lea ecx, [ebp - 0xc0]
call fcn.004100f0
mov edx, dword [ebp - 0xbc]
mov ecx, edx
mov eax, dword [eax + 4]
test eax, eax
cmovne ecx, eax
cmp ecx, edx
mov ecx, dword [ebp - 0x2c]
setne al
mov byte [ebp - 0x34], al
mov byte [ebp - 0x33], al
cmp ecx, dword [ebp - 0x48]
je 0x5042fa
mov ax, word [ebp - 0x34]
mov word [ecx], ax
add ecx, 2
mov dword [ebp - 0x2c], ecx
jmp 0x504316
lea eax, [ebp - 0x34]
push eax
push ecx
lea ecx, [ebp - 0x30]
call fcn.005068d0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
cmp byte [ebp - 1], 0
je 0x504326
cmp byte [ecx - 2], 0
mov byte [ebp - 1], 1
jne 0x50432a
mov byte [ebp - 1], 0
mov eax, dword [ebp - 0x50]
cmp eax, 0xf
jbe 0x5046c2
mov edx, dword [ebp - 0x40]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x50435a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x504c9c
push ecx
push edx
call fcn.005ab85c
mov edi, dword [ebp - 8]
add esp, 8
mov dh, 1
jmp 0x504843
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x24]
lea edi, [ebp - 0x24]
mov eax, dword [ebp - 0x14]
cmova ecx, edx
cmova edi, edx
add eax, ecx
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
push edi
cmova ecx, edx
mov edx, 0x74f018
push ecx
push eax
push ecx
lea ecx, [ebp - 0xf8]
call fcn.004ad6e0
add esp, 0x10
test al, al
je 0x50442b
mov ecx, dword [ebp - 0xec]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xf0]
sub ecx, esi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x5046c2
lea eax, [ebp - 0x64]
lea ecx, [esi + 0xc]
push eax
call fcn.004ab270
lea eax, [ebp - 0x64]
push eax
lea eax, [ebp - 0x84]
push eax
lea ecx, [ebp - 0xc0]
call fcn.00429d10
mov ecx, dword [ebp - 0x2c]
mov eax, dword [eax]
cmp eax, dword [ebp - 0xbc]
sete al
mov byte [ebp - 0x38], al
mov byte [ebp - 0x37], al
cmp ecx, dword [ebp - 0x48]
je 0x504423
mov ax, word [ebp - 0x38]
mov word [ecx], ax
add ecx, 2
mov dword [ebp - 0x2c], ecx
jmp 0x5045c8
lea eax, [ebp - 0x38]
jmp 0x5045af
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x14]
cmova ecx, dword [ebp - 0x24]
push ecx
push 0x10
push 0x74f030
lea edx, [ecx + edx]
push 0
call fcn.004ad250
add esp, 0x10
test al, al
je 0x504498
mov esi, dword [ebp - 0x2c]
mov edx, dword [ebp - 0xc]
cmp edx, esi
je 0x5044f0
cmp byte [esi - 1], 0
mov eax, esi
sete cl
sub eax, edx
sar eax, 1
mov byte [edx + eax*2 - 2], cl
mov cl, 1
mov eax, edx
test cl, cl
je 0x504482
cmp byte [eax], 0
je 0x504482
mov cl, 1
jmp 0x504484
xor cl, cl
add eax, 2
cmp eax, esi
jne 0x504475
mov edi, dword [ebp - 8]
mov dh, 1
mov byte [ebp - 1], cl
jmp 0x504843
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x14]
cmova ecx, dword [ebp - 0x24]
push ecx
push 0x10
push 0x74f060
add edx, ecx
push 0
call fcn.004ad250
add esp, 0x10
test al, al
je 0x5044fa
mov esi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0xc]
cmp eax, esi
je 0x5044ce
sub esi, 2
mov dword [ebp - 0x2c], esi
mov cl, 1
mov byte [ebp - 1], cl
cmp eax, esi
je 0x5044f0
test cl, cl
je 0x5044e4
cmp byte [eax], 0
je 0x5044e4
mov cl, 1
jmp 0x5044e6
xor cl, cl
add eax, 2
cmp eax, esi
jne 0x5044d7
mov byte [ebp - 1], cl
mov edi, dword [ebp - 8]
mov dh, 1
jmp 0x504843
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x24]
lea edi, [ebp - 0x24]
mov eax, dword [ebp - 0x14]
cmova ecx, edx
cmova edi, edx
add eax, ecx
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
push edi
cmova ecx, edx
mov edx, 0x74f078
push ecx
push eax
push ecx
lea ecx, [ebp - 0xf8]
call fcn.004ad6e0
add esp, 0x10
test al, al
je 0x5045ee
mov ecx, dword [ebp - 0xec]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xf0]
sub ecx, esi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x5046c2
lea eax, [ebp - 0x64]
lea ecx, [esi + 0xc]
push eax
call fcn.004ab270
sub esp, 0x18
lea eax, [ebp - 0x64]
mov ecx, esp
push eax
call fcn.004141c0
lea ecx, [ebp - 0xc0]
call fcn.00500f60
mov ecx, dword [ebp - 0x2c]
add esp, 0x18
test eax, eax
setne al
mov byte [ebp - 0x3c], al
mov byte [ebp - 0x3b], al
cmp ecx, dword [ebp - 0x48]
je 0x5045ac
mov ax, word [ebp - 0x3c]
mov word [ecx], ax
add ecx, 2
mov dword [ebp - 0x2c], ecx
jmp 0x5045c8
lea eax, [ebp - 0x3c]
push eax
push ecx
lea ecx, [ebp - 0x30]
call fcn.005068d0
mov eax, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x2c]
mov dword [ebp - 0x48], eax
mov eax, dword [ebp - 0x30]
mov dword [ebp - 0xc], eax
cmp byte [ebp - 1], 0
je 0x5045d8
cmp byte [ecx - 2], 0
mov byte [ebp - 1], 1
jne 0x5045dc
mov byte [ebp - 1], 0
lea ecx, [ebp - 0x64]
call fcn.004143d0
mov edi, dword [ebp - 8]
mov dh, 1
jmp 0x504843
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x24]
lea edi, [ebp - 0x24]
mov eax, dword [ebp - 0x14]
cmova ecx, edx
cmova edi, edx
add eax, ecx
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
push edi
cmova ecx, edx
mov edx, 0x74f048
push ecx
push eax
push ecx
lea ecx, [ebp - 0xf8]
call fcn.004ad6e0
add esp, 0x10
test al, al
je 0x5046cc
mov ecx, dword [ebp - 0xec]
mov eax, 0x2aaaaaab
mov edi, dword [ebp - 0xf0]
sub ecx, edi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x5046c2
mov esi, dword [ebp - 0x2c]
cmp dword [ebp - 0xc], esi
je 0x5046c2
lea eax, [ebp - 0x64]
lea ecx, [edi + 0xc]
push eax
call fcn.004ab270
cmp byte [esi - 1], 0
jne 0x504698
sub esp, 0x18
lea eax, [ebp - 0x64]
mov ecx, esp
push eax
call fcn.004141c0
lea ecx, [ebp - 0xc0]
call fcn.00500f60
add esp, 0x18
test eax, eax
je 0x504698
mov word [esi - 2], 0x101
jmp 0x50469c
mov byte [esi - 2], 0
mov eax, dword [ebp - 0xc]
mov cl, 1
test cl, cl
je 0x5046ae
cmp byte [eax], 0
je 0x5046ae
mov cl, 1
jmp 0x5046b0
xor cl, cl
add eax, 2
cmp eax, esi
jne 0x5046a1
mov byte [ebp - 1], cl
lea ecx, [ebp - 0x64]
call fcn.004143d0
mov edi, dword [ebp - 8]
mov dh, 1
jmp 0x504843
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
mov edx, dword [ebp - 0x24]
lea edi, [ebp - 0x24]
mov eax, dword [ebp - 0x14]
cmova ecx, edx
cmova edi, edx
add eax, ecx
cmp dword [ebp - 0x10], 0xf
lea ecx, [ebp - 0x24]
push edi
cmova ecx, edx
mov edx, 0x74f090
push ecx
push eax
push ecx
lea ecx, [ebp - 0xf8]
call fcn.004ad6e0
add esp, 0x10
test al, al
je 0x50483d
mov ecx, dword [ebp - 0xec]
mov eax, 0x2aaaaaab
mov esi, dword [ebp - 0xf0]
sub ecx, esi
imul ecx
mov byte [ebp - 3], 1
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
jbe 0x50483d
lea eax, [ebp - 0x148]
lea ecx, [esi + 0xc]
push eax
call fcn.004ab270
xorps xmm0, xmm0
mov dword [ebp - 0x90], 0
lea eax, [ebp - 0xa0]
mov dword [ebp - 0x8c], 0xf
movups xmmword [ebp - 0xa0], xmm0
push eax
lea edx, [ebp - 0xc0]
mov byte [ebp - 0xa0], 0
lea ecx, [ebp - 0x148]
call fcn.00501f00
mov ecx, dword [ebp - 0x90]
add esp, 4
test ecx, ecx
je 0x5047f6
mov edx, dword [ebp - 0x68]
cmp dword [edx + 0x14], 0xf
jbe 0x5047a5
mov edi, dword [ebp - 8]
sub edi, dword [edx]
mov eax, dword [edx]
mov esi, edi
jmp 0x5047ae
mov esi, dword [ebp - 8]
mov eax, edx
sub esi, edx
mov edi, esi
sub ebx, eax
lea eax, [ebp - 0xa0]
cmp dword [ebp - 0x8c], 0xf
push ecx
cmova eax, dword [ebp - 0xa0]
mov ecx, edx
push eax
push esi
mov dword [ebp - 0x40], ebx
call fcn.0042bd10
mov ecx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x90]
cmp dword [ecx + 0x14], 0xf
jbe 0x5047e8
add edi, eax
add edi, dword [ecx]
mov ecx, dword [ecx]
jmp 0x5047ed
lea edi, [eax + ecx]
add edi, esi
lea ebx, [eax + ecx]
mov dword [ebp - 8], edi
add ebx, dword [ebp - 0x40]
mov eax, dword [ebp - 0x8c]
cmp eax, 0xf
jbe 0x504817
push eax
push dword [ebp - 0xa0]
lea eax, [ebp - 0xa0]
push eax
call fcn.00414390
add esp, 0xc
lea ecx, [ebp - 0x148]
mov dword [ebp - 0x90], 0
mov dword [ebp - 0x8c], 0xf
mov byte [ebp - 0xa0], 0
call fcn.004143d0
mov edi, dword [ebp - 8]
mov dh, byte [ebp - 3]
mov ecx, edi
cmp edi, ebx
jae 0x504892
nop dword [eax]
cmp byte [ecx], 0x2f
jne 0x50488d
mov al, byte [ecx + 1]
cmp al, 0x2f
je 0x504892
cmp al, 0x2a
jne 0x50488d
mov byte [ebp - 2], 1
mov dl, 0x2f
lea eax, [ecx + 1]
cmp dl, 0x2a
jne 0x504873
cmp byte [eax], 0x2f
je 0x504880
mov byte [ecx], 0x20
mov ecx, eax
cmp ecx, ebx
jae 0x50488d
mov dl, byte [eax]
jmp 0x504866
mov byte [ecx], 0x20
mov ecx, eax
mov byte [eax], 0x20
xor al, al
mov byte [ebp - 2], al
inc ecx
cmp ecx, ebx
jb 0x504850
cmp byte [ebp - 1], 0
je 0x50489c
test dh, dh
je 0x5048b7
mov eax, ebx
xor ecx, ecx
sub eax, edi
cmp edi, ebx
cmova eax, ecx
test eax, eax
je 0x5048b7
push eax
push 0x20
push edi
call fcn.005c3040
add esp, 0xc
mov al, byte [ebx]
mov edi, ebx
cmp al, 0xd
je 0x5048c3
cmp al, 0xa
jne 0x5048c6
inc ebx
jmp 0x5048b7
test al, al
je 0x5048d2
mov dl, byte [ebp - 2]
jmp 0x503ea2
mov ecx, dword [ebp - 0xc]
mov esi, dword [ebp - 0x48]
test ecx, ecx
je 0x504909
sub esi, ecx
mov eax, ecx
and esi, 0xfffffffe
cmp esi, 0x1000
jb 0x5048ff
mov ecx, dword [eax - 4]
add esi, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x504c9c
push esi
push ecx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0xf0]
call fcn.004ab2e0
mov ecx, dword [ebp - 0x10]
cmp ecx, 0xf
jbe 0x504948
mov edx, dword [ebp - 0x24]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x50493e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x504c9c
push ecx
push edx
call fcn.005ab85c
add esp, 8
lea ecx, [ebp - 0x208]
mov dword [ebp - 0x14], 0
mov dword [ebp - 0x10], 0xf
mov byte [ebp - 0x24], 0
call fcn.00414750
lea ecx, [ebp - 0xb4]
call fcn.0040aea0
lea ecx, [ebp - 0xbc]
call fcn.0040af90
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0x74efe4
call fcn.005ab9bf
add esp, 4
cmp dword [0x74efe4], 0xffffffff
jne 0x503d99
mov ecx, 0x74efec
mov dword [0x74efe8], 0
call fcn.004ab550
push ecx
push 0x73611d
push str._sdefine_s__w___s__w___b
mov ecx, 0x74efe8
call fcn.004ac430
push 0x6da900
call fcn.005abc5f
add esp, 4
push 0x74efe4
call fcn.005ab96e
add esp, 4
jmp 0x503d99
push 0x74effc
call fcn.005ab9bf
add esp, 4
cmp dword [0x74effc], 0xffffffff
jne 0x503daa
mov ecx, 0x74f004
mov dword [0x74f000], 0
call fcn.004ab550
push ecx
push 0x73615e
push str._sifdef_s__w___b
mov ecx, 0x74f000
call fcn.004ac430
push 0x6da8d0
call fcn.005abc5f
add esp, 4
push 0x74effc
call fcn.005ab96e
add esp, 4
jmp 0x503daa
push 0x74f014
call fcn.005ab9bf
add esp, 4
cmp dword [0x74f014], 0xffffffff
jne 0x503dbb
mov ecx, 0x74f01c
mov dword [0x74f018], 0
call fcn.004ab550
push ecx
push 0x736147
push str._sifndef_s__w___b
mov ecx, 0x74f018
call fcn.004ac430
push 0x6da8a0
call fcn.005abc5f
add esp, 4
push 0x74f014
call fcn.005ab96e
add esp, 4
jmp 0x503dbb
push 0x74f02c
call fcn.005ab9bf
add esp, 4
cmp dword [0x74f02c], 0xffffffff
jne 0x503dcc
mov ecx, 0x74f034
mov dword [0x74f030], 0
call fcn.004ab550
push ecx
push 0x736197
push str._selse_b
mov ecx, 0x74f030
call fcn.004ac430
push 0x6da870
call fcn.005abc5f
add esp, 4
push 0x74f02c
call fcn.005ab96e
add esp, 4
jmp 0x503dcc
push 0x74f044
call fcn.005ab9bf
add esp, 4
cmp dword [0x74f044], 0xffffffff
jne 0x503ddd
mov ecx, 0x74f04c
mov dword [0x74f048], 0
call fcn.004ab550
push ecx
push 0x736188
push str._selif_s___sw______r__
mov ecx, 0x74f048
call fcn.004ac430
push 0x6da840
call fcn.005abc5f
add esp, 4
push 0x74f044
call fcn.005ab96e
add esp, 4
jmp 0x503ddd
push 0x74f05c
call fcn.005ab9bf
add esp, 4
cmp dword [0x74f05c], 0xffffffff
jne 0x503dee
mov ecx, 0x74f064
mov dword [0x74f060], 0
call fcn.004ab550
push ecx
push 0x7361cc
push str._sendif_b
mov ecx, 0x74f060
call fcn.004ac430
push 0x6da810
call fcn.005abc5f
add esp, 4
push 0x74f05c
call fcn.005ab96e
add esp, 4
jmp 0x503dee
push 0x74f074
call fcn.005ab9bf
add esp, 4
cmp dword [0x74f074], 0xffffffff
jne 0x503dff
mov ecx, 0x74f07c
mov dword [0x74f078], 0
call fcn.004ab550
push ecx
push 0x7361be
push str._sif_s___sw______r__
mov ecx, 0x74f078
call fcn.004ac430
push 0x6da7e0
call fcn.005abc5f
add esp, 4
push 0x74f074
call fcn.005ab96e
add esp, 4
jmp 0x503dff
push 0x74f08c
call fcn.005ab9bf
add esp, 4
cmp dword [0x74f08c], 0xffffffff
jne 0x503e10
mov ecx, 0x74f094
mov dword [0x74f090], 0
call fcn.004ab550
push ecx
push 0x7361f4
push str._srequire_s__w___b
mov ecx, 0x74f090
call fcn.004ac430
push 0x6da7b0
call fcn.005abc5f
add esp, 4
push 0x74f08c
call fcn.005ab96e
add esp, 4
jmp 0x503e10
push str.unordered_map_set_too_long
call fcn.005acb94
call fcn.005c695f
int3