Function at 0x404f6a
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x44
mov esi, ecx
mov edi, dword [esp + 0x5c]
imul ax, word [0x442536], 0x357
mov word [0x442536], ax
imul eax, dword [0x450044], 0x29a8f05
mov dword [0x450044], eax
mov eax, dword [0x448b00]
sub dword [0x4506cc], eax
mov word [0x44401a], 0x24e
mov eax, dword [esi]
mov ecx, dword [0x454d68]
lea edx, [ecx + 1]
mov dword [0x454d68], edx
add ecx, 0xe02d
movzx edx, word [0x443c3a]
or edx, ecx
movzx ecx, word [0x43fd4c]
or ecx, edx
mov word [0x43fd4c], cx
mov ecx, dword [0x44c0a8]
mov ecx, dword [0x453374]
dec ecx
mov dword [0x453374], ecx
and ecx, 0x40f00002
or dword [0x44fdb4], ecx
add dword [0x44e504], 0x1080ca22
lea ecx, [edi*8]
mov edx, dword [esi]
add edx, ecx
mov word [0x446ca2], 0x57f3
mov ebx, dword [0x4481f4]
not ebx
mov ebp, dword [0x448604]
imul ebx, ebx, 0x23f4260b
lea ebx, [ebx + ebp - 0x347adfdb]
mov dword [0x448604], ebx
mov word [0x441e02], 0xffbf
mov ebx, dword [0x44b7a4]
shl ebx, 0xa
mov ebp, 0x4cb78902
sub ebp, ebx
add dword [0x452208], ebp
cmp edx, dword [esi]
jae 0x40509d
movzx edx, word [0x440498]
dec edx
mov word [0x440498], dx
movsx edx, dx
mov ebx, dword [0x44c7bc]
lea ebp, [ebx + 1]
mov dword [0x44c7bc], ebp
and edx, ebx
imul edx, dword [0x454d58]
mov dword [0x454d58], edx
inc dword [esi + 4]
imul dx, word [0x4469aa], 0x6fff
mov word [0x4469aa], dx
dec dword [0x44826c]
mov edx, dword [0x4510a8]
mov edx, dword [0x4519c0]
inc edx
mov dword [0x4519c0], edx
xor edx, 0x28a7ce5a
mov dword [0x457098], edx
xor dword [0x448dec], 0x93136e53
imul edx, dword [0x45462c], 0xbc8b8629
mov dword [0x45462c], edx
add dword [esi], ecx
add word [0x44072a], 0xaeb5
mov ecx, dword [0x4569cc]
shr ecx, 2
movzx edx, word [0x446b30]
and edx, ecx
mov word [0x446b30], dx
mov ebp, edi
mov ecx, ebp
shr ecx, 0x1d
add dword [0x44fa78], 0xbe49f0d2
add dword [esi + 4], ecx
add dword [0x456e84], 0x3af06615
test ebp, ebp
je 0x40533e
shr eax, 3
mov ebx, dword [esp + 0x58]
and eax, 0x3f
dec ebp
mov ecx, dword [0x454bd8]
shl ecx, 3
mov edx, 0xbcd0e108
sub edx, ecx
and edx, 0xffb22170
xor dword [0x4539b4], edx
mov cl, byte [ebx]
mov byte [esi + eax + 0x18], cl
inc eax
mov dword [0x4531e8], 0xffffbfb6
cmp eax, 0x40
jne 0x40530f
dec dword [0x44f7c8]
mov eax, dword [0x4552b4]
dec eax
mov dword [0x4552b4], eax
imul eax, dword [0x44bbd4]
cmp eax, 0x38252afe
je 0x405190
mov dword [0x44fe6c], 0xb9ec5123
mov dword [esp], ebp
mov eax, dword [0x456674]
cmp eax, 0xd2f08133
je 0x4051ae
mov eax, dword [0x45331c]
xor dword [0x4546ec], 0xd14d9aab
movsx eax, word [0x4476e8]
add eax, 0xd1381508
imul eax, dword [0x452dd0]
mov dword [0x452dd0], eax
mov eax, 0x1b
movsx ecx, word [0x445342]
shl ecx, 3
or ecx, 0xd3402b0f
add dword [0x451864], ecx
movzx ecx, byte [esi + eax]
mov edx, dword [0x457384]
dec edx
mov dword [0x457384], edx
or edx, dword [0x451c38]
or edx, 0x8af0f8c6
mov dword [0x451c38], edx
shl ecx, 0x18
mov edx, dword [0x4525a4]
not edx
mov ebp, dword [0x44de8c]
lea edi, [ebp - 1]
mov dword [0x44de8c], edi
imul edx, ebp
mov dword [0x451e2c], edx
mov dword [esp + eax - 0x17], ecx
mov ecx, dword [0x44d5fc]
mov ecx, dword [0x451910]
lea edx, [ecx - 1]
mov dword [0x451910], edx
xor dword [0x457790], ecx
movzx ecx, byte [esi + eax - 1]
add dword [0x448368], 0x4913a145
shl ecx, 0x10
and dword [0x450d40], 0x33046228
or dword [esp + eax - 0x17], ecx
add dword [0x447828], 0x7d112111
movzx ecx, byte [esi + eax - 2]
xor dword [0x44bfd8], 0xcecdd224
shl ecx, 8
mov edx, dword [0x454e88]
movzx edi, word [0x444418]
mov ebp, 0xffff7a20
sub ebp, edx
add ebp, edi
mov word [0x444418], bp
or dword [esp + eax - 0x17], ecx
or dword [0x450288], 0xcbd6ede3
movzx ecx, byte [esi + eax - 3]
or dword [esp + eax - 0x17], ecx
add dword [0x44f950], 0x233d0025
add dword [0x4542a8], 0x82085ad8
add dword [0x4525b0], 0x2eadbb11
add eax, 4
cmp eax, 0x5b
jne 0x4051cb
add dword [0x449174], 0x7e7d7ffa
mov ecx, esi
lea eax, [esp + 4]
push eax
call fcn.00405364
add dword [0x44a3ac], 0x1088459
or dword [0x45603c], 0xdf16d49
xor eax, eax
mov ebp, dword [esp]
inc ebx
movsx ecx, word [0x444bb0]
and ecx, 0x6412fa20
movsx edx, word [0x443e66]
lea edi, [edx - 1]
mov word [0x443e66], di
xor ecx, edx
or dword [0x453670], ecx
test ebp, ebp
jne 0x405130
mov eax, dword [0x44ec70]
add eax, 0xd12c66f4
mov ecx, dword [0x44fb3c]
shl ecx, 2
xor ecx, eax
or dword [0x44f76c], ecx
add esp, 0x44
pop esi
pop edi
pop ebx
pop ebp
ret 8