Function at 0x4060c0
Capabilities:
Encode data using xor

Disassembly:
push ebx
ret
push ebp
mov ebp, esp
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov ecx, dword [eax - 0x27]
mov edx, dword [eax - 0x5a]
cmp edi, ebp
jne 0x4060df
or dword [esi - 0x48], ebx
or al, 0
imul eax, dword [eax], 0x8b4c25b
add byte [ebx + 0x30fac5], cl
mov eax, ebp
cli
xor byte [eax], al
mov edi, 0x4c805d3e
sal byte [ebx + 0x3c8df38b], 0x8a
mov ecx, 0x9405
ja 0x40609c
mov edx, dword [ebx + 4]
mov ecx, 0x55000034
cmp edx, ecx
jne 0x4061e9
mov edx, dword [ebx + 0xc]
or bh, byte [edx + 4]
mov cl, byte [edx]
or byte [ecx + edx*8 + 0x508b4074], al
xor edi, dword [di]
test edx, edx
sub ecx, dword [edi]
test cl, dl
je 0x406154
mov edx, dword [eax + 0x67]
xor edi, dword [0xf2bd285]
fst dword [eax + edx]
cmp dword [esi], edi
je 0x406148
inc ecx
call 0xca7be3c8
cmp ecx, edx
jb 0x406110
cmp ecx, edx
jne 0x406143
sar edx, 1
add byte [eax], al
inc eax
xchg esi, eax
jb 0x406143
mov dword [esp + ebp + 0x10], edi
mov ecx, dword [eax + 0xc]
inc ecx
mov dword [eax + 0xc], ecx
test byte [ebx - 0x39], 4
je 0x406187
mov edx, dword ds:[eax + 0x1f005d10]
mov edx, dword [eax + 0x1f005d10]
in eax, dx
xchg edi, eax
test edx, edx
sub eax, 0x14b04812
adc byte [eax], al
add byte [eax + 0x2b], ah
je 0x4061b5
adc cl, byte [eax - 0x50]
adc al, 0x10
add byte [eax], al
pushal
sub esi, dword [esi + edx*2 + 0x41]
inc ecx
jmp 0x406128
test byte [ebx + 8], 0x72
je 0x4061cb
mov edx, dword [eax + 0xa8e814]
cdq
leave
test edx, edx
push edx
adc cl, byte [ebp - 0x42b8d250]
add byte [esi + edi], dh
je 0x4061ab
inc ecx
add esi, 4
cmp ebx, dword [eax - 0xdc40b8e]
cmp esi, edx
ljmp 0x5e7d:0xfab61c
jae 0x4061cb
xchg esi, eax
mov esp, 0x5a1888
add byte [esi], bh
mov ah, ch
and byte [eax], al
add byte [ecx - 0x77], al
mov byte [eax], dl
add byte [eax], al
cmp edi, dword [eax + 0x3018]
jle 0x4061d9
idiv byte [eax + 0xca3018]
mov ecx, dword [eax + 4]
pop edi
inc ecx
pop esi
mov dword [eax + 2], ecx
xor eax, eax
pop ebx
nop
ret 0x8c
rcr dword [esi - 0x48], 1
aam 0
add byte [ebx + ebx*2 + 0x8c25d], al
nop
nop
nop
nop
nop
nop
adc eax, 0xbf909090
push ebp
fldlg2
nop
in al, dx
or byte [ebx - 0x4a6af3bb], cl
push edi
and esp, 4
add edi, esi
test dword [edi + 1], esi
add byte [ecx + 0x7a0cbf9c], dl
inc ebp
or byte [ebx], dh
leave
mov edi, dword [0x47b8b04]
test dword [esi + 0x76407d13], edx
cwde
mov byte [0xb8306eb0], al
add byte [ebx + 0x1e000cc6], al
add byte [esi], bl
je 0x40624e
inc ecx
add esi, 0x14
cmp ecx, edx
jb 0x406234
pop edi
pop esi
mov eax, 0x111be
pop ebx
mov esp, ebp
pop ebp
or byte ds:[eax], al
mov esi, ebp
inc ecx
lea esi, [edx - 1]
cmp ecx, edx
mov dword [eax + 4], esi
jae 0x4062aa
lea ebx, [ebx + ebx*4]
mov eax, dword [0xe38e893c]
add al, cl
out 2, eax
call 0x8d4ec3d
push esp
push ebp
cld
mov ecx, dword [eax + 0x301c]
mov edx, dword [ebp + 0x6e]
mov edx, dword [edx - 0x7d]
lea esi, [eax + 0xf]
cmp edx, dword [esi - 0x73]
jne 0x406288
or byte [eax + 4], 0xeb
adc byte [ebp + 0x72b90b3c], cl
add byte [eax], al
add bl, dh
movsd dword es:[edi], dword [esi]
lea edi, [ebx + ecx]
mov ecx, 0x72
rep movsd dword es:[edi], dword [esi]
mov edi, dword [ebp + 8]
sbb esi, 0x14
mov ah, 0x4d
cld
add edi, 0x14
dec esi
sar dword [ebp + 8], cl
mov ah, 0x3b
cld
sub ecx, eax
mov edi, dword [ebp - 8]
mov edx, dword [eax + 0xc]
xor ecx, ecx
pop ebp
rol dl, cl
inc ebx
lea ecx, [ecx]
adc byte [ecx], bh
je 0x4062c4
inc ecx
add esi, 4
cmp esi, dword [ebp + 0x1debfc72]
pushfd
push esi
retf 0x1573