Function at 0x4227b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xe4
mov eax, dword [0x44ab88]
mov dword [esp + 0x14], 0xacc042e
mov dword [esp + 0x18], 0xeff08f9
mov dword [esp + 0x1c], 0x12f40cc9
mov dword [esp + 0x20], 0x16f010e5
mov dword [esp + 0x24], 0x1a1b143e
mov word [esp + 0x28], 0
mov dword [esp + 0x54], 0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x15
ja 0x42283b
nop
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x54]
movzx edx, byte [esp + edx + 0x14]
add ecx, 0x190a76c6
xor ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0x3d
mov edx, dword [esp + 0x54]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
cmp ecx, 0x16
jb 0x422800
lea edi, [esp + 0x80]
lea esi, [esp + 0x14]
push edi
push 0
push 0
push 9
push esi
push 0
call eax
mov ebx, dword [esp + 0x80]
test ebx, ebx
jns 0x422864
mov eax, 0xffffffff
jmp 0x422867
lea eax, [ebx + ebx]
push eax
call fcn.00409a00
add esp, 4
mov dword [esp + 0x4c], eax
mov eax, dword [0x44ab88]
mov dword [esp + 0x14], 0xd210d03a
mov dword [esp + 0x18], 0xd665d463
mov dword [esp + 0x1c], 0xaa08a813
mov dword [esp + 0x20], 0xae0cac1f
mov dword [esp + 0x24], 0xa2a1a04a
mov byte [esp + 0x28], 0
mov dword [esp + 0x54], 0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x14
ja 0x4228fb
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x54]
movzx edx, byte [esp + edx + 0x14]
add ecx, 0x46042437
xor ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0x18
mov edx, dword [esp + 0x54]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
cmp ecx, 0x15
jb 0x4228c0
push edi
push ebx
push dword [esp + 0x54]
push 9
push esi
push 0
call eax
mov dword [esp + 0x14], 0x3c963efd
mov dword [esp + 0x18], 0x38943aa2
mov dword [esp + 0x1c], 0x24b926aa
mov dword [esp + 0x20], 0x20232289
lea esi, [esp + 0x24]
mov byte [esp + 0x24], 0
mov dword [esp + 0x54], 0
mov eax, dword [esp + 0x54]
cmp eax, 0x10
ja 0x422996
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
movzx ecx, byte [esp + ecx + 0x14]
lea edx, [eax + ecx]
add eax, 0xc7
and eax, ecx
add eax, eax
sub edx, eax
add edx, 0xb3bde6c7
mov dword [esp + 0xb8], edx
mov eax, dword [esp + 0xb8]
add al, 0xa
mov ecx, dword [esp + 0x54]
mov byte [esp + ecx + 0x14], al
inc dword [esp + 0x54]
mov eax, dword [esp + 0x54]
cmp eax, 0x11
jb 0x422950
lea edi, [esp + 0xd4]
lea edx, [esp + 0x14]
mov ecx, 4
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xe4]
mov edx, esi
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 0x14], 0xde78c09f
mov dword [esp + 0x18], 0xda62dc50
mov dword [esp + 0x1c], 0xd657d868
mov dword [esp + 0x20], 0xd28ad46b
mov dword [esp + 0x24], 0x2e63d072
mov dword [esp + 0x28], 0x2aa32c8e
mov dword [esp + 0x2c], 0x262928a2
lea esi, [esp + 0x30]
mov word [esp + 0x30], 0
mov dword [esp + 0x54], 0
mov ecx, dword [esp + 0x54]
cmp ecx, 0x1d
ja 0x422a72
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x54]
movzx edx, byte [esp + edx + 0x14]
lea edi, [ecx + edx]
add edi, 0x779f616d
add ecx, 0x779f616d
and ecx, edx
mov edx, edi
xor edx, ecx
add edx, ecx
not ecx
and ecx, edi
add ecx, ecx
sub ecx, edx
mov dword [esp + 0xb8], ecx
mov ecx, dword [esp + 0xb8]
add cl, 0x52
mov edx, dword [esp + 0x54]
mov byte [esp + edx + 0x14], cl
inc dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
cmp ecx, 0x1e
jb 0x422a20
lea edx, [esp + 0xb8]
lea ebx, [esp + 0x14]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xd4]
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 0x14], 0xf75ff536
mov dword [esp + 0x18], 0xfb5df963
mov dword [esp + 0x1c], 0xff6efd6b
mov dword [esp + 0x20], 0xe350e15a
mov dword [esp + 0x24], 0xe726e556
lea ebx, [esp + 0x28]
mov word [esp + 0x28], 0xe9e6
mov dword [esp + 0x2a], 0
mov dword [esp + 0x84], 0
mov ecx, dword [esp + 0x84]
cmp ecx, 0x19
ja 0x422b34
nop
nop
nop
nop
mov ecx, dword [esp + 0x84]
mov esi, dword [esp + 0x84]
movzx esi, byte [esp + esi + 0x14]
add ecx, 0x8a723d83
xor ecx, esi
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x54]
add cl, 0x8f
mov esi, dword [esp + 0x84]
mov byte [esp + esi + 0x14], cl
inc dword [esp + 0x84]
mov ecx, dword [esp + 0x84]
cmp ecx, 0x1a
jb 0x422af0
lea esi, [esp + 0x54]
lea eax, [esp + 0x14]
mov ebp, eax
mov ecx, 5
mov edi, esi
xchg esi, ebp
rep movsd dword es:[edi], dword [esi]
xchg esi, ebp
mov ebp, eax
lea edi, [esp + 0x68]
mov ecx, 1
xchg esi, ebx
rep movsw word es:[edi], word [esi]
xchg esi, ebx
lea eax, [esp + 0xd4]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], esi
mov eax, dword [esp + 0x4c]
add eax, 2
mov dword [esp + 0x94], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x74], 0
cmp ecx, 0xc
setne al
xor ecx, ecx
jmp dword [eax*4 + 0x447224]