Function at 0x401168
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
or dword [0x43d96c], 0xafffdedd
sub esp, 0x258
push ebx
xor ebx, ebx
cmp dword [0x4522d0], ebx
jne 0x4014cf
add dword [0x44e18c], 0x8e2dd757
cmp dword [0x44c4a4], 0xd667041f
jle 0x4011aa
and dword [0x442ffc], 0xc134ca72
movsx eax, word [0x434d02]
sar eax, 1
cmp eax, 0xad6622a3
jle 0x4011c4
xor dword [0x44cbc4], 0x388a0cca
imul ecx, dword [0x441278], 0x9c4a7352
mov eax, dword [0x445c68]
and ecx, 0xf51ad193
imul eax, ecx
mov dword [0x445c68], eax
lea eax, [ebp - 0x118]
inc dword [0x441278]
and dword [0x4461f8], 0xf000940f
push eax
push 0x104
call fcn.00413b66
dec dword [0x4437ac]
mov eax, dword [0x4437ac]
pop ecx
pop ecx
movsx ecx, word [0x43778c]
sar ecx, 8
and ecx, 0xb50f2c4f
xor ecx, eax
cmp ecx, 0x4200000
jle 0x401238
imul eax, dword [0x443530], 0xd0e5d2ce
mov dword [0x443530], eax
push esi
lea eax, [ebp - 0x118]
push edi
push eax
call fcn.00424190
movsx ecx, word [0x4346e4]
mov edi, eax
or ecx, 0x191b7536
mov dword [esp], 0x3e8
mov dword [0x441680], ecx
call dword [0x4524d4]
and dword [0x44db50], 0x29000200
mov ecx, dword [0x43e038]
imul eax, ecx, 0x4f58dd90
mov byte [ebp + edi - 0x118], bl
sub dword [0x447f08], eax
lea eax, [ebp - 0x118]
push dword [0x4522ec]
push eax
call fcn.004152c2
push 2
mov dword [0x4459e8], 0x61887380
push 0x3470
call fcn.0040b9c8
mov ecx, dword [0x441b38]
mov esi, eax
lea eax, [ebp - 0x118]
not ecx
or dword [0x44bf6c], ecx
push esi
push eax
call fcn.004152c2
movzx eax, word [0x437a6a]
and eax, 0xeda4e9fc
push esi
mov word [0x437a6a], ax
push 2
call fcn.0042acc4
mov ax, word [0x43a298]
add esp, 0x20
mov ecx, dword [0x447e40]
cwde
imul ecx, eax
lea eax, [ebp - 0x258]
push eax
lea eax, [ebp - 0x118]
push eax
mov dword [0x447e40], ecx
call dword [0x452434]
mov ecx, dword [0x44421c]
mov esi, eax
sar ecx, 5
add dword [0x450598], ecx
cmp esi, 0xffffffff
je 0x401481
movsx eax, word [0x4358a4]
sar eax, 1
add eax, 0x43535d29
or dword [0x4481c8], eax
movsx eax, word [0x43ba2e]
movzx ecx, word [0x43929a]
shl eax, 4
add eax, 0x296d7b8b
mov byte [ebp + edi - 0x118], bl
imul ecx, eax
mov word [0x43929a], cx
mov eax, dword [0x44f790]
or eax, 0xf27f2920
and dword [0x443b7c], eax
lea eax, [ebp - 0x22c]
push eax
lea eax, [ebp - 0x118]
push eax
call fcn.004152c2
pop ecx
pop ecx
imul ecx, dword [0x4499f8], 0xb2df0e28
movzx eax, word [0x436a22]
xor ecx, 0x58681862
sub eax, ecx
mov word [0x436a22], ax
lea eax, [ebp - 0x118]
push eax
call dword [0x452424]
mov eax, dword [0x4453d8]
or eax, 0xce4ff6a2
xor dword [0x4444a4], eax
lea eax, [ebp - 0x258]
dec dword [0x4453d8]
push eax
push esi
call dword [0x452430]
test eax, eax
jne 0x401345
mov ax, word [0x436008]
movsx ecx, ax
mov eax, dword [0x450bf8]
add eax, 0x5c2cbee9
add eax, ecx
mov dword [0x450bf8], eax
inc word [0x436008]
push esi
call dword [0x45242c]
inc dword [0x44ea88]
mov ecx, dword [0x44ea88]
movsx eax, word [0x4369d6]
dec word [0x4369d6]
cmp eax, ecx
jne 0x401481
inc word [0x434a44]
mov ax, word [0x434a44]
movsx ecx, ax
mov eax, dword [0x444b44]
add ecx, 0x52a402ca
xor ecx, 0x485a3632
sub eax, 0x2ed88c68
cmp ecx, eax
jne 0x401481
dec dword [0x43ead0]
mov ecx, dword [0x43ead0]
movzx eax, word [0x4371ea]
add ecx, 0x217584e5
xor ecx, eax
xor ecx, 0xe7defcd2
mov word [0x4371ea], cx
movsx eax, word [0x43ce8a]
movzx ecx, word [0x43a568]
not eax
imul eax, eax, 0x35548872
push 0x118
push ebx
add eax, 0xffa4195a
imul ecx, eax
lea eax, [ebp - 0x118]
push eax
mov word [0x43a568], cx
call fcn.0041ecbb
movzx eax, word [0x439d7a]
add esp, 0xc
xor eax, 0xdd7c0590
mov word [0x439d7a], ax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret