Function at 0x417740
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x10
mov eax, dword [esp + 0x14]
mov dword [esp + 0xc], eax
mov eax, dword [0x49b36c]
or eax, 0x4dfdd793
mov dword [0x49b36c], eax
mov eax, dword [0x498954]
xor eax, 0xc98adf25
mov dword [0x498954], eax
mov eax, dword [0x49e320]
mov ecx, eax
dec ecx
mov dword [0x49e320], ecx
xor eax, 0x6c0500ff
cmp eax, 0xbf6ba3d
jne 0x4177d7
mov eax, dword [0x4a17f8]
mov ecx, eax
dec ecx
mov dword [0x4a17f8], ecx
add eax, 0x5ffbc488
or eax, 0xda5026d6
mov dx, word [0x4a6ee6]
movsx ecx, dx
sar ecx, 0xa
add ecx, 0x5dd7e11e
cmp eax, ecx
jg 0x4177d2
mov ax, word [0x4a87b8]
mov cx, ax
and ecx, 0xbee5
mov ax, cx
mov word [0x4a87b8], ax
jmp 0x4177d7
mov eax, dword [esp + 0xc]
mov ecx, esp
mov dword [ecx], eax
call fcn.004531a0
mov dword [esp + 4], eax
mov dx, word [0x4a7278]
mov ax, dx
or eax, 0x277a
mov dx, ax
mov word [0x4a7278], dx
mov eax, dword [esp + 4]
dec eax
mov dword [esp + 4], eax
mov eax, dword [0x49a99c]
xor eax, 0x6331cbaf
mov dword [0x49a99c], eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x41793b
mov eax, dword [0x49fce4]
or eax, 0x4a40801
mov dword [0x49fce4], eax
mov eax, dword [esp + 0xc]
mov byte [eax], 0x22
mov cx, word [0x4a2abe]
mov ax, cx
mov edx, eax
dec edx
mov cx, dx
mov word [0x4a2abe], cx
add eax, 0xa4a07c91
and eax, 0x6ded
mov cx, word [0x4a66c8]
mov dx, cx
xor edx, eax
mov cx, dx
mov word [0x4a66c8], cx
mov eax, dword [esp + 4]
mov edx, dword [esp + 0xc]
mov byte [edx + eax], 0
mov dword [0x499f24], 0x3feffd64
mov eax, dword [0x49eb18]
not eax
mov ecx, dword [0x49ee34]
lea eax, [eax + ecx - 0x9621327]
mov dword [0x49ee34], eax
mov eax, dword [esp + 4]
dec eax
mov dword [esp + 4], eax
mov dx, word [0x4a879e]
mov ax, dx
xor eax, 0x4b1f
mov dx, ax
mov word [0x4a879e], dx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x417891
mov eax, dword [0x498ef8]
mov ecx, eax
dec ecx
mov dword [0x498ef8], ecx
add eax, 0x10aaae8e
and eax, 0xa6c753d6
mov ecx, dword [0x4a14b8]
xor ecx, eax
mov dword [0x4a14b8], ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
lea eax, [eax + ecx + 1]
mov dword [esp + 8], eax
mov eax, dword [0x4944ac]
mov ecx, 0x477849fe
sub ecx, eax
or ecx, 0x4b1046ba
mov eax, dword [0x494ab4]
imul eax, ecx
mov dword [0x494ab4], eax
jmp 0x417a06
mov eax, dword [0x4a1494]
xor eax, 0xb2022021
mov dword [0x4a1494], eax
mov eax, dword [esp + 0xc]
mov byte [eax], 0x20
mov eax, dword [0x4978bc]
shl eax, 8
mov ecx, dword [0x49f0d4]
shl ecx, 7
xor eax, ecx
mov ecx, dword [0x49b350]
add ecx, eax
mov dword [0x49b350], ecx
mov eax, dword [0x4a196c]
lea eax, [eax*4 - 0x6d1877de]
mov ecx, dword [0x49783c]
dec ecx
mov dword [0x49783c], ecx
and ecx, 0xfd2eb1e5
cmp eax, ecx
jl 0x4179a9
mov eax, dword [0x49b5ec]
imul eax, eax, 0x1ce286b5
mov dword [0x49b5ec], eax
mov eax, dword [esp + 4]
dec eax
mov dword [esp + 4], eax
mov eax, dword [0x49f258]
imul eax, eax, 0x6200504a
mov dword [0x49f258], eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
movsx eax, byte [ecx + eax]
cmp eax, 0x20
jne 0x417972
mov eax, dword [0x495fb8]
add eax, 0x919d542
mov dword [0x495fb8], eax
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xc]
lea eax, [eax + ecx + 1]
mov dword [esp + 8], eax
mov eax, dword [0x49f654]
imul eax, eax, 0x61e6261
mov dword [0x49f654], eax
mov eax, dword [0x49d6cc]
mov ecx, dword [0x4950f4]
or ecx, eax
mov dword [0x4950f4], ecx
mov eax, dword [esp + 8]
add esp, 0x10
ret