Function at 0x4228a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x170
mov esi, esp
mov dword [esi + 0x20], 0xcb0bcd31
mov dword [esi + 0x24], 0xc776c978
mov dword [esi + 0x28], 0xc363c518
mov dword [esi + 0x2c], 0xdf7fc14c
mov dword [esi + 0x30], 0xdbdadd21
lea eax, [esi + 0x34]
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], 0
mov word [esi + 0x4c], 0
mov dword [esi + 0x78], 0
mov ecx, dword [esi + 0x78]
cmp ecx, 0x2d
ja 0x422955
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [esi + 0x78]
mov ecx, dword [esi + 0x78]
movzx edi, byte [esi + ecx + 0x20]
lea ecx, [edx + edi]
add ecx, 0x6e98622
add edx, 0x6e98622
and edx, edi
add edx, edx
sub ecx, edx
add cl, 0x12
mov edx, dword [esi + 0x78]
mov byte [esi + edx + 0x20], cl
inc dword [esi + 0x78]
mov ecx, dword [esi + 0x78]
cmp ecx, 0x2e
jb 0x422920
lea ebx, [esi + 0x136]
lea edx, [esi + 0x20]
mov ecx, 5
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0x14a]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0xb0]
push eax
push 0
push 0
push 9
push ebx
push 0
call dword [0x44b0a4]
mov edi, dword [esi + 0xb0]
test edi, edi
jns 0x42299f
mov eax, 0xffffffff
jmp 0x4229a2
lea eax, [edi + edi]
push eax
call fcn.00436b20
add esp, 4
lea ecx, [esi + 0xb0]
push ecx
push edi
mov dword [esi + 0x64], eax
push eax
push 9
push ebx
push 0
call dword [0x44b0a4]
mov dword [esi + 0x20], 0x833b815a
mov dword [esi + 0x24], 0x9f219d0f
mov dword [esi + 0x28], 0x9b2a992f
mov dword [esi + 0x2c], 0x97949526
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x78], 0
mov eax, dword [esi + 0x78]
cmp eax, 0x1b
ja 0x422a43
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x78]
mov eax, dword [esi + 0x78]
movzx edx, byte [esi + eax + 0x20]
lea eax, [ecx + edx]
add eax, 0xeb
add ecx, 0xeb
and ecx, edx
add ecx, ecx
sub eax, ecx
add al, 0x93
mov ecx, dword [esi + 0x78]
mov byte [esi + ecx + 0x20], al
inc dword [esi + 0x78]
mov eax, dword [esi + 0x78]
cmp eax, 0x1c
jb 0x422a10
lea edi, [esi + 0x10a]
lea eax, [esi + 0x20]
mov ecx, 4
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esi + 0x11a]
lea eax, [esi + 0x30]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esi + 0x20], 0x93fb91da
mov dword [esi + 0x24], 0x9ff19def
mov dword [esi + 0x28], 0x9bea99ef
mov dword [esi + 0x2c], 0xa7e9a5f6
mov dword [esi + 0x30], 0xa3d6a1c5
mov dword [esi + 0x34], 0xafdeadc1
mov dword [esi + 0x38], 0xaba8a9d5
lea eax, [esi + 0x3c]
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x47], 0
mov dword [esi + 0x78], 0
mov ecx, dword [esi + 0x78]
cmp ecx, 0x2a
ja 0x422af2
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, dword [esi + 0x78]
mov edx, dword [esi + 0x78]
add cl, 0x93
xor cl, byte [esi + edx + 0x20]
add cl, 0xfb
mov edx, dword [esi + 0x78]
mov byte [esi + edx + 0x20], cl
inc dword [esi + 0x78]
mov ecx, dword [esi + 0x78]
cmp ecx, 0x2b
jb 0x422ad0
lea edi, [esi + 0x11a]
lea ebx, [esi + 0x20]
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esi + 0x136]
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
mov dword [esi + 0x20], 0xc36bc184
mov dword [esi + 0x24], 0xc765c577
mov dword [esi + 0x28], 0xcb78c967
mov dword [esi + 0x2c], 0xcf9ecd68
mov dword [esi + 0x30], 0xd390d184
lea eax, [esi + 0x34]
mov word [esi + 0x34], 0xd5d4
mov dword [esi + 0x36], 0
mov dword [esi + 0x3a], 0
mov dword [esi + 0x3e], 0
mov dword [esi + 0x42], 0
mov dword [esi + 0x46], 0
mov dword [esi + 0x4a], 0
mov word [esi + 0x4e], 0
mov dword [esi + 0x78], 0
mov ecx, dword [esi + 0x78]
cmp ecx, 0x2f
ja 0x422bb1
nop
nop
mov edi, dword [esi + 0x78]
mov ecx, dword [esi + 0x78]
movzx ebx, byte [esi + ecx + 0x20]
lea ecx, [edi + 0x41133260]
add edi, 0x60
or edi, ecx
and edi, ebx
or ecx, ebx
sub ecx, edi
add cl, 0x60
mov edi, dword [esi + 0x78]
mov byte [esi + edi + 0x20], cl
inc dword [esi + 0x78]
mov ecx, dword [esi + 0x78]
cmp ecx, 0x30
jb 0x422b80
lea ebx, [esi + 0x14a]
lea edx, [esi + 0x20]
mov ecx, 5
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esi + 0x15e]
mov ecx, 1
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea eax, [esi + 0x10a]
mov dword [esi + 0xe4], eax
lea eax, [esi + 0x11a]
mov dword [esi + 0xe8], eax
mov dword [esi + 0xec], ebx
mov edi, dword [esi + 0x64]
mov eax, edi
add eax, 2
mov dword [esi + 0xbc], eax
mov dword [esi + 0xb4], 0
xor edx, edx
jmp 0x422c27
mov eax, dword [0x445ab0]
mov ecx, 0xa1aa93f6
xor ecx, dword [0x445ab4]
add eax, ecx
inc eax
nop
nop
nop
nop
nop
nop
jmp eax