Function at 0x42b990
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xf0
mov dword [esp + 8], 0xf935fbd7
mov dword [esp + 0xc], 0xe576e768
mov dword [esp + 0x10], 0xe10de328
mov dword [esp + 0x14], 0xed01ef7c
mov dword [esp + 0x18], 0xe9eaebc7
lea eax, [esp + 0x1c]
mov byte [esp + 0x1c], 0
mov ecx, 0x2b
mov edx, 0xd4
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx - 0x23]
mov esi, ecx
or esi, ebx
not ebx
or ebx, edx
and ebx, esi
add bl, 0x29
mov byte [esp + ecx - 0x23], bl
inc ecx
dec edx
cmp ecx, 0x40
jne 0x42b9e0
lea ebx, [esp + 0xaa]
lea edx, [esp + 8]
mov ecx, 5
mov edi, ebx
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
lea edi, [esp + 0xbe]
xor esi, esi
xor ecx, ecx
xchg esi, eax
rep movsw word es:[edi], word [esi]
xchg esi, eax
lea edi, [esp + 0x54]
push edi
push 0
push 0
push 9
push ebx
push 0
call dword [0x44e800]
mov ebp, dword [esp + 0x54]
test ebp, ebp
jns 0x42ba48
mov eax, 0xffffffff
jmp 0x42ba4f
lea eax, [ebp*2]
push eax
call fcn.0040c8e0
add esp, 4
push edi
push ebp
mov ebp, eax
push eax
push 9
push ebx
push 0
call dword [0x44e800]
mov dword [esp + 8], 0x812d8748
mov dword [esp + 0xc], 0x8d2f833d
mov dword [esp + 0x10], 0x893c8f3d
mov dword [esp + 0x14], 0x958a8b24
lea edx, [esp + 0x18]
mov word [esp + 0x18], 0
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + esi + 8]
lea eax, [esi + esi]
and eax, 2
mov ecx, esi
xor ecx, 0xacc457e1
add ecx, eax
xor ecx, edi
mov edi, 1
sub edi, ecx
not edi
or edi, ecx
and edi, 1
xor ecx, 1
lea ecx, [ecx + edi*2]
add cl, 0x9a
mov byte [esp + esi + 8], cl
xor esi, 1
add esi, eax
cmp esi, 0x12
jb 0x42baa0
mov dword [esp + 0x3c], ebp
lea edi, [esp + 0x9a]
lea esi, [esp + 8]
mov ecx, 4
xchg esi, esi
rep movsd dword es:[edi], dword [esi]
xchg esi, esi
lea edi, [esp + 0xaa]
xor ebx, ebx
xor ecx, ecx
xchg esi, edx
rep movsw word es:[edi], word [esi]
xchg esi, edx
mov dword [esp + 8], 0xd1a5cf88
mov dword [esp + 0xc], 0xd5b7d3a5
mov dword [esp + 0x10], 0xd9a4d7a5
mov dword [esp + 0x14], 0xdd9fdbbc
mov dword [esp + 0x18], 0xe1b0dfbf
mov dword [esp + 0x1c], 0xe590e383
mov dword [esp + 0x20], 0xe9e6e79f
lea esi, [esp + 0x24]
mov word [esp + 0x24], 0
mov byte [esp + 0x26], 0
mov ecx, ebx
add cl, 0x4d
xor cl, byte [esp + ebx + 8]
add cl, 0x7f
mov byte [esp + ebx + 8], cl
inc ebx
cmp ebx, 0x1f
jne 0x42bb50
lea edx, [esp + 0xd4]
lea ebx, [esp + 8]
mov edi, edx
mov ecx, 7
xchg esi, ebx
rep movsd dword es:[edi], dword [esi]
xchg esi, ebx
lea edi, [esp + 0xf0]
xor eax, eax
xor ecx, ecx
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
mov dword [esp + 8], 0xf145ffb8
mov dword [esp + 0xc], 0xf557f345
mov dword [esp + 0x10], 0xc944f745
mov dword [esp + 0x14], 0xcd9acb6c
mov dword [esp + 0x18], 0xc18ccf98
lea esi, [esp + 0x1c]
mov word [esp + 0x1c], 0xc3c0
mov dword [esp + 0x1e], 0
mov byte [esp + 0x22], 0
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + ecx + 8]
mov ebp, ecx
xor ebp, 0xee2a01ab
mov ebx, eax
and ebx, 0x28
sub ebx, ebp
xor ebx, edi
mov edi, ebx
and edi, 1
xor ebx, 1
lea ebx, [ebx + edi*2]
add bl, 0x56
mov byte [esp + ecx + 8], bl
inc ecx
add eax, 2
cmp ecx, 0x1b
jne case.default.0x42bc77
lea ebx, [esp + 0xbe]
lea eax, [esp + 8]
mov edi, ebx
mov ecx, 5
xchg esi, eax
rep movsd dword es:[edi], dword [esi]
xchg esi, eax
lea edi, [esp + 0xd2]
mov ecx, 1
xchg esi, esi
rep movsw word es:[edi], word [esi]
xchg esi, esi
lea eax, [esp + 0x9a]
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], ebx
mov ebp, dword [esp + 0x3c]
mov eax, ebp
add eax, 2
mov dword [esp + 0x58], eax
xor ecx, ecx
xor eax, eax
mov dword [esp + 0x68], 0
cmp ecx, 0xc
setne al
xor esi, esi
jmp dword [eax*4 + 0x44ace0]
int 0x42
add al, ah
mov edi, 0xcd2a0042
inc edx