Function at 0x406f30
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub eax, 0x558b184d
or byte [ebx + 0x758056c1], cl
or al, 0x83
loopne 0x406f45
push edi
mov dword [edx], 0xe
popal
sub eax, dword [ebp - 0x74e38b46]
jge 0x406f62
push cs
add byte [eax], al
add byte [ecx + 0x2b], ah
test dword [edx + 0x7d8b1c74], edi
adc byte [ebp + 0xe153dff], al
test edi, edi
cmp eax, 0xc3f80e15
je 0x406f6b
clc
ret
test cl, 2
je 0x406fb4
pop edi
mov eax, 0x11125
pop esi
and eax, 0x5e000111
pop ebp
ret 0x18
pop edi
movsb byte es:[edi], byte [esi]
push ss
add byte [eax], al
add byte [esi + 0x5d], bl
ret 0x18
add eax, 0x40f440be
add byte [edx + 0xffd3c06], cl
mov word [edx], ds
add byte [ecx], bh
add byte [ecx + edi], bh
jo 0x406f57
mov cl, 0x7a
add byte [eax], al
push 0x40f456
push esi
call dword [0x41ec1c]
mov edx, eax
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
add esp, 8
or bh, dh
ror dword [ecx + 0x3b], 1
sar dword [eax*4 + 0x7b], 1
push esi
call dword [0x10e7c1c8]
mov dword [ebp - 8], eax
fadd dword [ebp - 8]
lea edx, [edx - 0x23aa7214]
mov dword [edi - 0xfa27614], edi
mov dword [ebx - 0x18], ebp
mov dword [0xad458b0c], esi
mov ecx, dword [eax + 0xc]
cmp dword [ecx], ebx
je 0x4070c6
add byte [edi - 0x15], ch
cld
invalid
outsd dx, dword [esi]
jmp 0x40701d
pop edi
mov ch, 0x33
rcr byte [ebx - 0x75], 0xe5
pop ebp
add byte [eax - 0x7e13efab], dl
push ebp
adc ah, ch
sub esp, 0x254
mov esi, ebx
or al, 0x3f
push esi
xor esi, esi
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [ebp - 0x22], eax
pop eax
scasb al, byte es:[edi]
or al, 0x57
mov dword [ebp - 0x14], esi
mov al, byte [eax]
mov dword [ebp - 4], esi
test al, al
xor byte [ebp - 0x20], 0x89
jne 0x4070ec
mov dword [ebp - 0x28], esi
mov edx, esp
fmul qword [edi]
xor eax, 0xaaa
mov ebx, dword [ebp + 0x14]
cmp al, 0x49
je 0x40714b
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x407158
cmp eax, dword [ebp + 0x7b]
out dx, al
sbb al, 0xef
jge 0x40712a
push edi
dec eax
pop ebp
invalid
test dword [edx + ecx + 0x4f8b0000], edx
add al, 0x8b
pop es
mov dword [ebp + 0x75], ecx
mov edi, dword [0x454db842]
hlt
dec esi
jge 0x40715e
mov ecx, dword [0x5fc174]
mov eax, 1
xor eax, dword [eax]
inc edi
cmp dword [eax - 0x7643ba77], ebp
inc ebp
ror byte [ecx - 0x357637ab], 0xc4
add byte [ebx], dh
add byte [edi + 0x39], al
test al, 0x89
inc ebp
mov esp, 0x89c04589
push ebp
enter 0xffffffffffffca89, 0xffffffffffffffc4
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x38], edx
mov edx, ecx
les ecx, [ecx + 0x45e8d455]
pop ss
and byte [eax + 0x7d895655], cl
adc byte [esi + 0x12], bh
mov dword [ebp - 0x2c], edx
call 0x886088b7
push ebp
push esi
mov dword [ebp + 0x10], edi
jle 0x40718b
mov dl, byte [edi]
push 2
push edx
mov dh, 0x15
push 0xcc0040c1
les ecx, [eax]
xor edx, edx
jmp 0x4071ca
mov ecx, dword [sym.imp.MSVCRT.dll__pctype]
mov eax, eax
xchg esp, eax
in al, dx
mov ecx, dword [ecx]
mov al, byte [ecx + eax*2]
and eax, 2
cmp eax, edx
jne 0x40736e
mov ecx, 0x92
mov al, byte [edi]
scasb al, byte es:[edi]
sub eax, 0x5589065b
rol byte [edi + 0x58], 0xf4
outsb dx, byte [esi]
sub esi, dword [ebp + 6]
mov dword [ebp - 0x3c], ecx
inc edi
jmp 0x4071aa
in al, 0x20
jne 0x4071d4
mov dword [ebp - 0x38], ecx
inc edi
jmp 0x407239
pop esp
xor byte [ebp + 0x48], dh
mov byte [ebp + 0x34], al
inc edi
jmp 0x4071aa
mov ecx, dword [ebp - 0x13]
add esp, 8
and dword [ecx], edx
mov eax, dword [sym.imp.MSVCRT.dll__pctype]
xor edi, dword [edx + ecx*4]
pop ss
mov eax, dword [eax]
mov al, byte [eax + edx*2]
cmp dword [edx], 4
sar byte [ebx], cl
ret 0xd74
mov dword [ebp - 0x34], edx
push ebp
in al, 0xeb
sar dword [esp + ebp*2], cl
jne 0x407382
mov eax, 1
inc edi
jmp 0x40739a
cmp al, 0xd6
xor cl, byte [edi + 0x2b8]
shr dword [edx], 1
inc edi
or al, 0x92
add eax, dword [eax]
add byte [eax], al
jmp 0x40739d
dec edi
movsb byte es:[edi], byte [esi]
or cl, byte [ebx + 0xa8a1055]
mov edx, dword [ebp + 0x10]
mov cl, byte [edx]
movsx ebp, byte [ebx + 0xf78ff83]
xchg ebp, ebx
push es
add byte [eax], al
xor edx, edx
dec ecx
xchg edi, eax
add al, 0xbd
inc eax
add bh, bh
and al, 0x95
sar byte [ebx + 0x40], 1
add byte [ebp - 0x74dd8a40], al
dec ebx
add al, 0x8d
push ebp
pop ebx
nop
add edx, dword [edx - 0x73]
push ebp
lodsb al, byte [esi]
mov ebx, es
or byte [edx - 0x73], dl
push ebp
sub al, 0x1f
mov ch, 1
push ecx
or eax, 0xd8deb
add byte [ebx + 0x28eb18c4], al
cmp eax, 1
je 0x4073f8
add dword [eax - 0x7cf48afe], 0xffffffc3
add al, 0x33
daa
add byte [ebx - 0x79], 0xeb
add eax, 0xc347038b
add al, 0x4f
dec ebp
cld
lea edx, [ebp - 0x54]
push ecx
lea ecx, [ebp - 0x30]
push edx
push ecx
push 1
mov ebp, 0xe8d82189
dec dword [eax + eax]
add byte [ebx - 0xf74eb3c], al
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x9077df
mov eax, dword [ebx]
inc edi
ret
xchg ebp, eax
inc ebp
lock adc dword [eax + 1], 0xffffff81
cli
add byte [edx], al
add dl, dh
jb 0x407437
mov eax, 0x1ff
cmp dword [ebp - 4], eax
movsb byte es:[edi], byte [esi]
sbb dword [edi + 0x4e530003], 0xffffffc6
mov ah, 0x30
mov ecx, dword [ebp - 4]
inc ecx
cmp edi, dword [ebp + 0x72fc4d50]
int1
jmp 0x413cdf