Function at 0x4972b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
lea ebp, [esp - 0x1250]
mov eax, 0x1250
call fcn.0051dcc0
push 0xffffffffffffffff
push 0x53d85d
mov eax, dword fs:[0]
push eax
sub esp, 0x68
mov eax, dword [0x572844]
xor eax, ebp
mov dword [ebp + 0x124c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0x1258]
lea ecx, [ebp]
mov edi, dword [ebp + 0x125c]
xor eax, eax
mov dword [ebp - 0x10], ebx
mov dword [ebp], 0x54266c
mov dword [ebp + 4], 0x54266c
mov dword [ebp + 8], 0x54266c
mov dword [ebp + 0xc], 0x54266c
mov dword [ebp + 0x10], 0x54266c
mov dword [ebp + 0x14], 0x54266c
mov dword [ebp + 0x18], 0x54266c
mov dword [ebp + 0x1c], 0x54266c
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], 0x90
call fcn.004b2040
mov eax, dword [ebx + 0x222c]
mov dword [ebp - 0x44], eax
mov eax, dword [ebx]
push 0
push 0
mov byte [ebx + 0x7e7b], 1
mov esi, dword [eax + 0x10]
mov ecx, esi
mov eax, dword [ebx + 0x33c0]
add eax, dword [ebx + 0x7e80]
push eax
call dword [0x541740]
mov ecx, ebx
call esi
push 0
push 0
push 0
push 1
mov ecx, ebx
call fcn.00468d40
mov eax, dword [ebx]
push 2
push 0
push 0
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x541740]
mov ecx, ebx
call esi
mov eax, dword [ebx]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x541740]
mov ecx, ebx
call esi
mov ebx, eax
mov dword [ebp - 0x18], edx
push edx
push ebx
push edi
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], edx
call fcn.00497b70
mov edi, dword [ebp - 0x10]
push 0x14
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x38], 0
lea ecx, [edi + 0x5790]
mov dword [ebp - 0x1c], 0
call fcn.00487c00
lea ecx, [edi + 0x6800]
mov byte [edi + 0x57a0], 1
push 2
call fcn.00487870
push 0
push 0x551b14
push 0
push 0
push 0
push 0
mov ecx, edi
call fcn.00464110
mov eax, dword [edi]
push 0
push 0
push 0
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x541740]
mov ecx, edi
call esi
mov eax, dword [ebp - 0x20]
xor esi, esi
mov dword [ebp - 0x58], esi
xor edi, edi
shl eax, 9
mov dword [ebp - 0x54], esi
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], edi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], esi
mov byte [ebp - 0x48], 0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x54], eax
test eax, eax
je 0x4974a9
cmp eax, 0x20
ja 0x49747c
mov eax, 0x20
push eax
push 0
mov dword [ebp - 0x14], eax
call fcn.00525bbb
mov esi, eax
add esp, 8
mov dword [ebp - 0x30], esi
test esi, esi
jne 0x49749d
mov ecx, 0x5b68fc
call fcn.0047b030
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x58], esi
mov dword [ebp - 0x50], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 4], 0
push eax
push 0
push esi
call fcn.005201d0
mov esi, dword [ebp - 0x18]
add esp, 0xc
mov dword [ebp - 0x14], 0xfffffff
test esi, esi
jl 0x4976a1
jg 0x4974d8
test ebx, ebx
je 0x4976a1
call fcn.004b0fe0
test esi, esi
ja 0x497516
jb 0x4974eb
cmp ebx, 0x200
jae 0x497516
mov edi, ebx
mov eax, 0x200
sub eax, edi
push eax
lea eax, [ebp + 0x104c]
add eax, edi
push 0
push eax
call fcn.005201d0
add esp, 0xc
mov dword [ebp - 0x2c], 0
xor edx, edx
mov dword [ebp - 0x18], edx
jmp 0x49752a
add ebx, 0xfffffe00
mov edi, 0x200
mov dword [ebp - 0x2c], ebx
adc esi, 0xffffffff
mov dword [ebp - 0x18], esi
mov ebx, dword [ebp - 0x10]
push edi
mov eax, dword [ebx]
mov esi, dword [eax + 0xc]
lea eax, [ebp + 0x104c]
push eax
mov ecx, esi
call dword [0x541740]
mov ecx, ebx
call esi
mov eax, dword [ebp - 0x28]
lea edx, [ebp + 0x104d]
mov ecx, dword [ebp - 0x30]
lea edi, [ebp + 0x104c]
shl eax, 9
mov ebx, edx
add ecx, eax
mov esi, 0x80
sub edi, ecx
sub ebx, ecx
lea eax, [ecx + 2]
jmp 0x497570
movzx ecx, byte [edx - 1]
lea edx, [edx + 4]
xor byte [eax - 2], cl
lea eax, [eax + 4]
movzx ecx, byte [edx - 4]
xor byte [eax - 5], cl
movzx ecx, byte [edi + eax - 4]
xor byte [eax - 4], cl
movzx ecx, byte [ebx + eax - 4]
xor byte [eax - 3], cl
sub esi, 1
jne 0x497570
push 0x200
lea eax, [ebp + 0x104c]
push eax
push 0xffffffffffffffff
call fcn.004761b0
mov edi, dword [ebp - 0x24]
mov byte [ebp + edi + 0x4c], al
shr eax, 8
mov byte [ebp + edi + 0x4d], al
add edi, 2
mov dword [ebp - 0x24], edi
cmp edi, 0x1000
jne 0x49763d
mov ebx, dword [ebp - 0x10]
mov eax, dword [ebx]
mov esi, dword [eax + 0x14]
mov ecx, esi
call dword [0x541740]
mov ecx, ebx
call esi
mov ecx, dword [ebp - 0x10]
mov ebx, eax
push 2
push 0
push 0
mov ecx, dword [ecx]
mov edi, edx
mov esi, dword [ecx + 0x10]
mov ecx, esi
call dword [0x541740]
mov ecx, dword [ebp - 0x10]
call esi
mov esi, dword [ebp - 0x10]
lea eax, [ebp + 0x4c]
push 0x1000
push eax
mov ecx, esi
call fcn.004827f0
mov eax, dword [esi]
push 0
push edi
push ebx
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x541740]
mov ecx, dword [ebp - 0x10]
call esi
push 0x1000
lea eax, [ebp + 0x4c]
push eax
push dword [ebp - 0x14]
call fcn.004761b0
xor edi, edi
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x24], edi
mov ebx, dword [ebp - 0x38]
movzx ecx, bl
or ecx, 0
jne 0x497671
mov eax, dword [ebp - 0x44]
cmp byte [eax + 0x714c], cl
jne 0x497671
push dword [ebp - 0x3c]
mov eax, dword [ebp - 0x1c]
mov ecx, ebx
push dword [ebp - 0x40]
shld eax, ecx, 9
push eax
shl ecx, 9
push ecx
push 0x552374
call fcn.004b3bc0
mov eax, dword [ebp - 0x28]
add ebx, 1
mov esi, dword [ebp - 0x18]
adc dword [ebp - 0x1c], 0
inc eax
cmp eax, dword [ebp - 0x20]
mov dword [ebp - 0x38], ebx
mov ebx, dword [ebp - 0x2c]
sbb ecx, ecx
and ecx, eax
mov dword [ebp - 0x28], ecx
test esi, esi
jg 0x4974d8
jl 0x4976a1
test ebx, ebx
jne 0x4974d8
mov ebx, dword [ebp - 0x10]
push 2
push 0
push 0
mov eax, dword [ebx]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x541740]
mov ecx, ebx
call esi
push edi
lea eax, [ebp + 0x4c]
mov ecx, ebx
push eax
call fcn.004827f0
push edi
lea eax, [ebp + 0x4c]
push eax
push dword [ebp - 0x14]
call fcn.004761b0
push dword [ebp - 0x34]
mov edi, dword [ebp - 0x30]
mov ecx, ebx
push edi
mov esi, eax
call fcn.004827f0
push dword [ebp - 0x34]
push edi
push esi
call fcn.004761b0
not eax
mov dword [ebx + 0x6800], 2
mov dword [ebx + 0x6804], eax
mov eax, dword [ebx]
push 0
push dword [ebp - 0x3c]
mov esi, dword [eax + 0x10]
mov ecx, esi
push dword [ebp - 0x40]
call dword [0x541740]
mov ecx, ebx
call esi
lea ecx, [ebp - 0x74]
call fcn.00499fe0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x74]
push 8
push str.Protect
call fcn.0049a390
push dword [ebp - 0x20]
lea ecx, [ebp - 0x74]
call fcn.0049a280
push dword [ebp - 0x1c]
mov esi, dword [ebp - 0x38]
lea ecx, [ebp - 0x74]
push esi
call fcn.0049a2e0
lea eax, [ebx + 0x67b8]
push eax
lea ecx, [ebp - 0x74]
call fcn.0049a160
mov eax, dword [ebp - 0x20]
mov ecx, ebx
push 0
push 0x551b14
shl eax, 8
push 0
add eax, esi
push 0
add eax, eax
push eax
push 0
call fcn.00464110
mov eax, dword [ebx]
push 2
push 0
push 0
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x541740]
mov ecx, ebx
call esi
xor eax, eax
mov dword [ebp], 0x54266c
lea ecx, [ebp]
mov dword [ebp + 4], 0x54266c
mov dword [ebp + 8], 0x54266c
mov dword [ebp + 0xc], 0x54266c
mov dword [ebp + 0x10], 0x54266c
mov dword [ebp + 0x14], 0x54266c
mov dword [ebp + 0x18], 0x54266c
mov dword [ebp + 0x1c], 0x54266c
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], eax
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], eax
mov dword [ebp + 0x38], eax
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x40], eax
mov dword [ebp + 0x44], eax
mov dword [ebp + 0x48], 0x91
call fcn.004b2040
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x74]
test eax, eax
je 0x497820
cmp byte [ebp - 0x64], 0
je 0x497817
push dword [ebp - 0x6c]
push eax
call fcn.004ad810
mov eax, dword [ebp - 0x74]
push eax
call fcn.00525b95
add esp, 4
mov dword [ebp - 4], 0xffffffff
test edi, edi
je 0x497834
push edi
call fcn.00525b95
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x124c]
xor ecx, ebp
call fcn.0051dca8
lea esp, [ebp + 0x1250]
pop ebp
ret 8