Function at 0x407d20
Capabilities:
Encode data using xor

Disassembly:
inc eax
add byte [ebp + 0x78], bh
inc eax
pop ebx
xchg ebp, eax
pop esp
inc eax
add byte [edi], al
ja 0x407c34
add byte [ebp + 0xe6ff106], cl
js 0x407c27
add byte [esp + esi*2 + 0x40], dl
add byte [eax + edi*2 + 0x74efdcab], dl
inc eax
mov ch, 0xcb
js 0x407c37
add byte [eax + edi*2], bh
inc eax
pop eax
mov ebp, 0x8b007ec1
jp 0x407c43
add byte [eax], al
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
mov eax, 0xc0c60a9
or al, 0xc
dec ecx
or al, 0xc
or al, 0xc
jnp 0x407c29
or al, 0x59
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
add ecx, dword [eax + esi*2]
sbb byte [esp + ecx], cl
or al, 0xc
or al, 0xc
or al, 0xb2
pushal
mov dl, 0x60
or al, 0x56
push esi
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xb7
or al, 0xc
or al, 2
or al, 3
or al, 0xc
mov bh, 0xc
or al, 0xc
add cl, byte [ebx + eax]
or al, 0xc
or al, 0xf9
or al, 0xc
or al, 0xc
imul ecx, dword [esp + ecx], 0x5d0cb98c
or al, 0x2d
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
or al, 0xc
add eax, 0x3024806
add al, byte [ebx]
or al, 6
or al, 0xc
or al, 0xc
sub ecx, dword [eax]
or dword [esp + ecx], ecx
bound ecx, qword [ebx + ecx]
or al, 0xc
add al, 0x61
dec ecx
add byte [edx - 0x76ffbf85], ah
jns 0x407cc7
add byte [esi], ah
jp 0x407ccb
add byte [ecx + edi*2 + 0x40], al
jge 0x407c6a
jns 0x407cd3
add byte [edx - 0x56ffbf87], ah
jns 0x407cdb
add byte [edi], ch
jns 0x407cdf
add byte [ebx + 0x7a], dh
inc eax
add byte [edx], dl
or byte [ecx], dh
test byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [esi + 0x51], bl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax + ecx + 0x80d2108], bh
fisttp qword [eax]
or byte [esi + 8], cl
or byte [eax], cl
pushal
or byte [eax], cl
or byte [eax], cl
mov esp, 0xd210808
or ch, bl
or byte [eax], cl
dec esi
or byte [eax], cl
or byte [eax + 8], ah
or byte [eax], dh
or byte [eax], cl
in al, 0x7a
or byte [eax], cl
or byte [edi], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
jle 0x407ce2
or byte [eax], cl
xor byte [eax], cl
or ah, ah
jp 0x407cd7
or byte [eax], cl
invd
or byte [eax], cl
or byte [eax], cl
or byte [esi + 8], bh
cld
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
add dword [edx], eax
or byte [eax], cl
or byte [edx], al
or ah, bl
add ebp, dword [eax + ecx + 8]
or byte [eax], cl
or byte [ecx], al
add cl, byte [eax]
or byte [eax], cl
add cl, byte [eax]
fadd qword [ebx]
insb byte es:[edi], dx
or byte [eax], cl
or byte [ecx + 8], dl
rcl byte [ebx - 0x4efb20b6], cl
mov cs, word [eax]
pop esp
or byte [eax], cl
xchg esp, eax
or byte [0x29f90808], cl
or byte [eax], cl
or byte [eax], cl
or byte [eax], cl
lcall 0x805, 0x8080808
or byte [esi], al
or byte [eax], cl
or byte [edi], al
nop
nop
nop
nop
nop
nop
nop
push ebp
mov ebp, esp
sub esp, 0x58
jecxz 0x407cb5
out 0xbe, eax
push edi
adc al, 0x7d
adc byte [ebp - 0x5baf03b3], cl
inc ebp
or al, 0x8d
push ebp
or al, 0xff
mov ecx, dword [ebp + 8]
push esi
cdq
push eax
push ecx
call 0x4f407ec0
mov ecx, dword [ebp - 4]
cmp edx, dword [ebp + 0x78]
add esp, 0xffffff9a
mov dword [ebp + 0x76], eax
test ecx, ecx
push ebx
bnd je 0x407d5d
mov byte [edx], 0x2d
lea ecx, [esi]
add dword [edi + ecx*2], ebx
sbb al, 0x4f
call dword [ebx - 0x7b]
xchg byte [esi + 0x65], bh
cmp al, 1
xor byte [ebp + 6], dh
dec edi
dec ecx
test ecx, ecx
jg 0x407d65
mov dword [ebp + 0x10], edi
mov ebx, dword [ebp + 0xc]
invalid