Function at 0x43de66
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov dword [esp + 4], 0x97969948
mov word [esp + 8], 0
mov dword [esp], 0
mov eax, dword [esp]
cmp eax, 5
ja 0x43dec5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov eax, dword [esp]
mov ecx, dword [esp]
movzx ecx, byte [esp + ecx + 4]
lea edx, [eax + ecx]
add edx, 0xd3de4066
add eax, 0xd3de4066
and eax, ecx
mov ecx, edx
xor ecx, eax
add ecx, eax
not eax
and eax, edx
add eax, eax
sub eax, ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
add al, 2
mov ecx, dword [esp]
mov byte [esp + ecx + 4], al
inc dword [esp]
mov eax, dword [esp]
cmp eax, 6
jb 0x43de80
mov eax, dword [esp + 4]
mov eax, dword fs:[eax]
xor ecx, ecx
cmp dword [esp + 0x2c], 0
sete cl
jmp dword [ecx*4 + 0x44a62c]
mov edx, dword [eax + 0xc]
add edx, 0xc
mov ecx, dword [0x44a64c]
mov dword [esp + 0xc], edx
xor eax, eax
nop
mov esi, edx
jmp ecx
mov eax, dword [eax + 8]
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
fiadd word [ebx]
pop es
loopne 4499062
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 [edi], al
loopne 0x44a686
add al, dh
fiadd word [ebx]
invalid
inc ebx
add bl, bh
fild word [ebx]
or ah, al
inc ebx
add byte [edi], al
fild word [ebx]
mov eax, dword [0xa70043e0]
loopne 0x44a6ce
inc ebx
add byte [edi + 0x260043e0], ah
add byte [esi], ah
loope 0x44a6d2
add byte [eax + 0x260043e0], dh
loope 0x44a6da
add byte [edi + 0x400043e1], dl
loop 0x44a6e2
add byte [ecx - 0x1dddffbd], bh
inc ebx
add byte [esi], ch
loop 0x44a6ee
add byte [ecx + 0x400043e1], ch
loop 0x44a6f6
add byte [edi + 0x540043e1], dh
loop 0x44a6fe
add byte [esi], al
jecxz 0x44a702
add dh, bl
loop 0x44a706
add al, dh
loop 0x44a70a
add al, dh
loop 0x44a70e
add al, dh
loop 0x44a712
inc ebx
add byte [eax], al
jecxz 0x44a716
inc ebx
add byte [eax], al
jecxz 0x44a71a
add byte [eax], al
jecxz 0x44a71e
inc ebx
add byte [eax], al
jecxz 0x44a722
add byte [esi], al
jecxz 0x44a726
inc ebx
add byte [edi - 0x1d], dl
inc ebx
add byte [ebx], bh
inc ebx
add byte [ebx - 0x1d], cl
inc ebx
add byte [eax], ah
jecxz 0x44a736
add byte [edi - 0x1d], dl
inc ebx
add byte [ebx], ch
inc ebx
add byte [ecx], al
add byte [eax], al
add byte [ecx], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add byte [edx + 0x10043e4], al
add byte [eax], al
and ah, 0x43
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 [edx + 0x10043e4], al
add byte [eax], al
add dword [eax], eax
add byte [eax], al
add dword [eax], eax
add byte [eax], al
and ah, 0x43
inc ebx
add byte [ecx], al
add byte [eax], al
add bl, ah
jecxz 0x44a762
add byte [eax], al
jecxz 0x44a701
inc ebx
add byte [esp + 0x43], dh
inc ebx
add byte [eax - 0x1c], ah
inc ebx
add byte [eax], dl
in al, 0x43
add byte [ebx], ah
in al, 0x43
add byte [eax], dh
in al, 0x43
add byte [eax - 0x1c], al
inc ebx
add byte [eax - 0x1c], al
inc ebx
add byte [eax - 0x1c], al
inc ebx
add byte [edx - 0x1c], al
inc ebx
add byte [eax - 0x1c], ah
inc ebx
add byte [ecx - 0x1c], cl
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 [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 bh, bh
in al, 0x43
add byte [edx + 0x700043e7], al
in eax, 0x43
add byte [eax - 0x1b], dh
inc ebx
add byte [eax - 0x1b], dh
inc ebx
add byte [edx - 0x1b], dh
inc ebx
add byte [edx + 0x750043e5], al
out 0x43, eax
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 - 0x5fffbc1b], al
in eax, 0x43
add byte [ebp - 0x19], dh
inc ebx
add byte [ecx - 0x19], ch
inc ebx
add al, ah
in eax, 0x43
add byte [ecx], ch
out 0x43, eax
add byte [edi], cl
out 0x43, eax
add byte [edi + 0x43], bl
add byte [ebp - 0x19], cl
inc ebx
add byte [edi + 0x43], bl
add byte [ecx - 0x19], ch
inc ebx
add byte [ebp - 0x19], dh
inc ebx
add byte [ebx - 0x19], dh
inc ebx
add byte [eax - 0x7fffbc19], al
out 0x43, eax
add byte [eax - 0x7dffbc19], al
out 0x43, eax
add byte [eax - 0x6fffbc19], dl
out 0x43, eax
add byte [edx - 0x6fffbc19], dl
out 0x43, eax
add byte [eax], bl
call 0xeb0da835
inc ebx
add byte [eax + 0x1e0043e8], cl
call 0xe92fa841
inc ebx
add byte [eax - 0x1ffbc18], cl
call 0xeb0da84d
inc ebx
add byte [edx], ah
jmp 0xeb0da855