Function at 0x43e370
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov ebp, dword [esp + 0x1c]
mov dword [esp], 0x111e1fcc
mov dword [esp + 4], 0
xor eax, eax
nop
nop
nop
nop
movzx ecx, byte [esp + eax]
mov edx, eax
and edx, 5
xor edx, 0x5165d515
mov esi, eax
and esi, 2
sub esi, edx
lea edx, [esi - 0x35539026]
and edx, ecx
add ecx, esi
add ecx, 0xcaac6fda
add edx, edx
sub ecx, edx
mov edx, 0x59
sub edx, ecx
or edx, 1
add edx, ecx
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0x74
mov byte [esp + eax], cl
inc eax
cmp eax, 8
jne case.default.0x43e3e5
mov eax, dword [esp]
mov eax, dword fs:[eax]
xor ecx, ecx
test ebp, ebp
sete cl
jmp dword [ecx*4 + 0x449540]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov esi, dword [0x449584]
xor eax, eax
mov edi, dword [0x44959c]
mov ebx, dword [edx]
xor ecx, ecx
cmp ebx, edx
setne cl
jmp dword [ecx*4 + 0x449568]
mov ebp, dword [eax + 8]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov esi, dword [0x449584]
xor eax, eax
mov edi, dword [0x44959c]
mov ebx, dword [edx]
xor ecx, ecx
cmp ebx, edx
setne cl
jmp dword [ecx*4 + 0x449568]
jecxz 0x449586
add byte [eax], dl
in al, 0x43
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add ah, ch
jecxz 0x44959a
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [edx - 0x7dffbc1c], cl
in al, 0x43
add byte [eax - 0x1c], al
inc ebx
add byte [eax - 0x1c], dl
inc ebx
add byte [eax - 0x1c], ah
inc ebx
add byte [eax - 0x1c], dl
inc ebx
add byte [eax - 0x1c], dl
inc ebx
add byte [eax - 0x1c], dl
inc ebx
add byte [edx - 0x1c], dl
inc ebx
add byte [edx + 0x700043e4], al
in al, 0x43
add byte [eax - 0x1c], dh
inc ebx
add byte [eax - 0x1c], dh
inc ebx
add byte [eax - 0x1c], dh
inc ebx
add byte [edx - 0x1c], dh
inc ebx
add byte [eax - 0x1b], ch
inc ebx
add byte [ebp - 0x1b], ah
inc ebx
add byte [ebx], ch
in eax, 0x43
add byte [ebp - 0x1b], ah
inc ebx
add byte [ecx], bh
in eax, 0x43
add byte [edi - 0x1b], dl
inc ebx
add byte [ebp - 0x1b], bl
inc ebx
add al, dh
in al, 0x43
add byte [0xe5040043], dl
inc ebx
add byte [eax], dl
in eax, 0x43
add byte [eax], dl
in eax, 0x43
add byte [0xe5100043], dl
inc ebx
add byte [ebp - 0x1b], bl
inc ebx
add byte [ebx], bl
in eax, 0x43
add cl, dl
in eax, 0x43
add byte [edx + 0x3a0043e8], al
out 0x43, al
add byte [edx - 0x18], bh
inc ebx
add byte [eax - 0x1a], ah
inc ebx
add byte [edx - 0x18], bh
inc ebx
add byte [eax - 0x1a], ah
inc ebx
add byte [eax - 0x1a], ah
inc ebx
add byte [esi - 0x1a], ah
inc ebx
add byte [eax - 0x1a], ah
inc ebx
add byte [ebp - 0x18], ch
inc ebx
add al, al
out 0x43, al
add byte [edi], ah
call 0xe8549659
inc ebx
add byte [eax + ebp*8 + 0x43], bl
add byte [eax + ebp*8 + 0x43], cl
add byte [eax + ebp*8 + 0x43], bl
add byte [ebp - 0x18], ch
inc ebx
add byte [eax], dl
call 0xe8549671
inc ebx
add byte [edx], dl
call 0xe8549679
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add byte [ebp - 0x18], ch
inc ebx
add byte [edx - 0x18], bh
inc ebx
add byte [eax - 0x18], bh
inc ebx
add byte [eax - 0x7fffbc18], al
call 0xe8c6969d
inc ebx
add byte [eax - 0xfffbc18], al
call 0xe8e896a9
inc ebx
add byte [esi], bh
jmp 0xe93496b1