Function at 0x423270
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xb8
mov ebx, dword [ebp + 0xc]
mov dword [esp + 0x40], 0x43a741ab
mov dword [esp + 0x44], 0x479245dd
mov dword [esp + 0x48], 0x4bae4966
mov dword [esp + 0x4c], 0x4f4e4dae
mov byte [esp + 0x50], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x40]
mov esi, ecx
xor esi, 0xe4918af5
mov edi, eax
and edi, 0x2a
add esi, edi
add esi, 0x3da37a1b
xor esi, edx
add esi, 0x54f6e6af
mov edx, esi
and edx, 1
xor esi, 1
lea edx, [esi + edx*2]
mov byte [esp + ecx + 0x40], dl
inc ecx
add eax, 2
cmp ecx, 0x11
jne 0x4232b0
lea esi, [esp + 0x40]
push esi
push ebx
push dword [ebp + 8]
call fcn.0041c290
add esp, 0xc
mov byte [esp + 8], al
mov dword [esp + 0x40], 0xfeb09ef
mov dword [esp + 0x44], 0x3f60dfa
mov dword [esp + 0x48], 0x73401c9
mov dword [esp + 0x4c], 0x1bfc05e0
mov word [esp + 0x50], 0x1918
mov dword [esp + 0x52], 0
mov byte [esp + 0x56], 0
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ecx
xor edi, 0x3e
mov edx, eax
and edx, 2
sub edx, edi
xor dl, byte [esp + ecx + 0x40]
add dl, 0x36
mov byte [esp + ecx + 0x40], dl
inc ecx
add eax, 2
cmp ecx, 0x17
jne 0x423340
push esi
push ebx
push dword [ebp + 8]
call fcn.0041c290
add esp, 0xc
mov dword [esp + 0x40], 0xc36dc166
mov dword [esp + 0x44], 0xc76bc556
mov dword [esp + 0x48], 0xcb63c960
mov dword [esp + 0x4c], 0xcf5acd5f
mov dword [esp + 0x50], 0xb320b11f
mov dword [esp + 0x54], 0xb758b52d
mov dword [esp + 0x58], 0xbb2bb92b
mov dword [esp + 0x5c], 0xbf17bd10
mov dword [esp + 0x60], 0xa307a134
mov word [esp + 0x64], 0xa5a4
mov dword [esp + 0x66], 0
mov word [esp + 0x6a], 0
mov ecx, 0xe7f9bfb0
movzx edi, byte [esp + ecx + 0x18064090]
mov ebx, ecx
and ebx, edi
lea edx, [ecx + edi]
not edx
add ebx, ebx
sub edi, ebx
lea ebx, [ecx + edi]
add ebx, 0x8f
and edx, 1
or ebx, 1
add ebx, edx
mov byte [esp + ecx + 0x18064090], bl
inc ecx
cmp ecx, 0xe7f9bfdc
jne 0x4233d0
movzx ebx, byte [esp + 8]
or bl, al
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0041c290
add esp, 0xc
movzx edi, al
movzx eax, bl
mov ecx, edi
not ecx
xor edi, eax
add edi, eax
mov dword [esp + 0x40], 0xb72589e7
mov dword [esp + 0x44], 0xb325b527
mov dword [esp + 0x48], 0xbfd3b1d9
mov dword [esp + 0x4c], 0xbbe8bd23
mov dword [esp + 0x50], 0xa737b927
mov dword [esp + 0x54], 0xa3cba530
mov dword [esp + 0x58], 0xafc3a13c
mov word [esp + 0x5c], 0xadac
mov dword [esp + 0x5e], 0
and ecx, eax
mov dword [esp + 8], ecx
mov eax, 0x1e
mov ecx, 0xe1
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + eax + 0x22]
mov edx, ecx
xor edx, eax
and edx, ebx
xor edx, eax
add dl, 0x6a
mov byte [esp + eax + 0x22], dl
inc eax
dec ecx
cmp eax, 0x40
jne 0x423490
push esi
mov ebx, dword [ebp + 0xc]
push ebx
push dword [ebp + 8]
call fcn.0041c290
add esp, 0xc
mov bh, al
mov dword [esp + 0x40], 0x1f707f0
mov dword [esp + 0x44], 0xde903e9
mov dword [esp + 0x48], 0x9f30ffa
mov dword [esp + 0x4c], 0x15e00b3e
mov dword [esp + 0x50], 0x11e717e9
mov dword [esp + 0x54], 0x1d1213e6
mov word [esp + 0x58], 0
mov eax, 0x89ccb941
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x763346ff]
xor ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0xba
mov byte [esp + eax + 0x763346ff], cl
inc eax
cmp eax, 0x89ccb95b
jne 0x423500
cmp edi, dword [esp + 8]
setne bl
push esi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0041c290
add esp, 0xc
mov dword [esp + 0x40], 0xf142ff4c
mov dword [esp + 0x44], 0xf557f353
mov dword [esp + 0x48], 0xc943f753
mov dword [esp + 0x4c], 0xcd7fcbb6
mov dword [esp + 0x50], 0xc172cf7f
mov dword [esp + 0x54], 0xc576c37b
mov dword [esp + 0x58], 0xd9c6c763
mov byte [esp + 0x5c], 0
or bl, bh
mov ah, bl
mov ebx, 0x6859842a
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esi]
mov ecx, ebx
or ecx, edi
not ecx
lea edx, [ebx - 0x68598400]
and edx, edi
or edx, ecx
lea ecx, [edx + 0xd6]
and ecx, 0xfe
and edx, 1
or ecx, edx
xor ecx, 1
lea ecx, [ecx + edx*2]
mov byte [esi], cl
inc esi
dec ebx
cmp ebx, 0x6859840d
jne 0x423590
mov bl, ah
or bl, al
lea eax, [esp + 0x40]
push eax
mov esi, dword [ebp + 0xc]
push esi
push dword [ebp + 8]
call fcn.0041c290
add esp, 0xc
or al, bl
xor ecx, ecx
cmp dword [ebp + 0x10], 0
sete cl
jmp dword [ecx*4 + 0x4499b4]