Function at 0x420050
Capabilities:
Encode data using xor

Disassembly:
push esi
sub esp, 0x14
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
mov eax, dword [0x491ee8]
mov ecx, eax
inc ecx
mov dword [0x491ee8], ecx
add eax, 0xc89f1a44
mov ecx, dword [0x491acc]
xor ecx, 0xffffffff
add ecx, 0x5e88e6a3
cmp eax, ecx
je 0x42009a
mov eax, dword [0x4917b8]
add eax, 0x1c008102
mov dword [0x4917b8], eax
jmp 0x4200ec
mov eax, 0xf1014415
mov ecx, dword [0x491cd4]
xor ecx, 0x9af579ca
cmp eax, ecx
jl 0x4200e7
mov ax, word [0x4923b8]
movsx ecx, ax
or ecx, 0x8f1c8626
mov edx, dword [0x49171c]
dec edx
mov dword [0x49171c], edx
add edx, 0x25b0ed4f
cmp ecx, edx
je 0x4200e2
jmp 0x4200e2
jmp 0x4200e7
jmp 0x4200ec
mov eax, 0x64aae278
mov ecx, dword [0x491740]
add ecx, 0x434c6cbb
or ecx, 0x9e6eb034
mov dword [0x4917ec], ecx
mov ecx, dword [0x4919c0]
mov edx, dword [0x4918f0]
or edx, ecx
mov dword [0x4918f0], edx
mov ecx, dword [esp + 0x10]
mov edx, esp
mov dword [edx], ecx
mov dword [esp + 4], eax
call fcn.00452220
mov dword [esp + 8], eax
mov eax, dword [0x49165c]
not eax
mov ecx, dword [0x491dd0]
add eax, ecx
mov ecx, dword [0x491bd4]
shl ecx, 7
sub eax, ecx
mov ecx, dword [esp + 4]
cmp ecx, eax
jl 0x420162
mov dword [0x491a0c], 0x849fe4ce
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 8], eax
mov cx, word [0x491f4c]
movsx eax, cx
xor eax, 0xffffffff
and eax, 0xa04a6c24
cmp eax, 0xf255add7
jg 0x4201a2
mov eax, dword [0x4918ac]
not eax
add eax, 0xd11d3a77
mov ecx, dword [0x491db8]
xor ecx, eax
mov dword [0x491db8], ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x4202cc
mov word [0x4921e6], 0x3027
mov eax, dword [esp + 0x10]
mov byte [eax], 0x22
mov eax, dword [0x4919f4]
xor eax, 0x230c386e
mov dword [0x4919f4], eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
mov byte [ecx + eax], 0
mov eax, dword [0x4915d8]
not eax
and eax, 0xc23aeca8
mov dx, word [0x4923be]
movsx ecx, dx
xor eax, ecx
mov ecx, dword [0x491cb8]
xor ecx, eax
mov dword [0x491cb8], ecx
mov ax, word [0x491fba]
mov cx, ax
add ecx, 0x8ea032e
mov ax, cx
mov word [0x491fba], ax
mov ecx, dword [esp + 8]
dec ecx
mov dword [esp + 8], ecx
mov ecx, dword [0x491e48]
xor ecx, 0x8505203
mov edx, dword [0x4919b4]
imul edx, ecx
mov dword [0x4919b4], edx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x22
jne 0x420208
mov eax, dword [0x491864]
add eax, 0x8d305f90
mov dword [0x491864], eax
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
lea eax, [eax + ecx + 1]
mov dword [esp + 0xc], eax
mov eax, dword [0x49152c]
mov ecx, eax
dec ecx
mov dword [0x49152c], ecx
add eax, 0xb7b9a739
cmp eax, 0xa7be2a6
jg 0x4202aa
mov eax, dword [0x491728]
add eax, 0x49863b6c
mov dword [0x491728], eax
jmp 0x4202c7
mov ax, word [0x49216e]
movsx ecx, ax
imul ecx, ecx, 0xbc9a9b0
mov edx, dword [0x491610]
or edx, ecx
mov dword [0x491610], edx
jmp 0x420398
mov eax, dword [0x491498]
add eax, 0xd964024f
mov dword [0x4916bc], eax
mov eax, dword [esp + 0x10]
mov byte [eax], 0x20
mov dword [0x491a68], 0xda9c38dc
mov eax, dword [0x491920]
or eax, 0x16820dad
mov dword [0x491920], eax
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 8], eax
mov eax, dword [0x4917ec]
mov ecx, eax
dec ecx
mov dword [0x4917ec], ecx
or eax, 0x7e3cad08
mov ecx, dword [0x491c10]
and ecx, eax
mov dword [0x491c10], ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
movsx eax, byte [ecx + eax]
cmp eax, 0x20
jne 0x4202ec
mov eax, dword [0x491f18]
mov ecx, eax
dec ecx
mov dword [0x491f18], ecx
add eax, 0xb69400ef
mov ecx, dword [0x491b40]
imul ecx, eax
mov dword [0x491b40], ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0x10]
lea eax, [eax + ecx + 1]
mov dword [esp + 0xc], eax
mov dx, word [0x4921ea]
movsx eax, dx
not eax
mov ecx, dword [0x491b14]
mov esi, ecx
dec esi
mov dword [0x491b14], esi
imul eax, ecx
mov ecx, dword [0x491660]
and ecx, eax
mov dword [0x491660], ecx
mov eax, dword [0x491c5c]
mov ecx, dword [0x4916a4]
sub eax, ecx
mov ecx, dword [0x491e44]
or ecx, eax
mov dword [0x491e44], ecx
mov eax, dword [esp + 0xc]
add esp, 0x14
pop esi
ret