Function at 0x406200
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 8
insd dword es:[edi], dx
inc ebp
or al, 0x53
push esi
push edi
cmp dword [eax + 4], 1
jne 0x40638d
mov ebx, dword [eax - 0x49]
mov eax, dword [ebp + 8]
xor ecx, dword [esi]
dec ebx
push eax
add al, 0x8b
jnp 0x406228
mov edi, dword [ebx + 4]
test dword [eax - 0x77], ecx
jge 0x406221
clc
jbe 0x406240
mov esi, dword [eax + 0x301c]
mov ebp, 0x1e3b0cbc
je 0x40624e
inc esi
pop edi
cmp dl, byte [ebx + edi]
retf 0xf472
pop edi
pop esi
jg 0x406266
adc dword [ecx], eax
add byte [eax - 0x75], dh
in eax, 0x5d
fcmovne st(0), st(5)
add byte [ebx + 0x728d41d9], cl
invalid
mov ebx, ecx
inc ecx
lea esi, [edx - 1]
cmp ecx, edx
mov dword [eax + 4], esi
jae 0x4062aa
lea edx, [ecx]
wait
lea edi, [ecx + ecx*4]
shl ebx, 2
rol dword [ebx], 2
sub ecx, dword [ebx - 0x76f7d077]
pop ebp
add ch, byte [ebx]
mov ecx, dword [ecx + 0x5d89082f]
pushfd
mov edi, eax
sbb al, 0x30
add byte [eax], al
mov edx, dword [ebp + 0xc]
mov edx, dword [edx + 0xc]
lea esi, [edi + ecx]
push edx
or al, 0x8d
xor al, 0xf
cmp edx, dword [esi + 0xc]
jne 0x406279
dec dword [eax + 4]
jmp 0x406298
mov ecx, dword [ebp - 4]
add edi, 0x14
dec ecx
mov ebp, eax
or byte [esi - 0x378a03b3], bh
mov edi, dword [ebp - 8]
mov esi, dword [edi - 0x4e]
xor ecx, ecx
test edx, edx
jbe 0x40630e
lea esi, [eax + 0x10]
jae 0x4062cc
je 0x4062c4
inc ecx
add esi, 4
cmp ecx, edx
jb 0x4062b6
jmp 0x4062e1
dec edx
cmp ecx, edx
dec edx
adc eax, 0x1088548d
adc byte [ebx + 0x414f2e72], cl
mov esi, dword [edx + 0x2e]
dec edi
inc ecx
xor cl, byte [ebx - 0x3d7c7390]
add al, 0x4e
cmp ecx, esi
jb 0x4062cd
dec dword [eax + 0xc]
mov edx, dword [eax + 0x10bf]
add byte [eax], al
sub al, 0xc9
test edx, edx
jbe 0x406327
aas
mov al, 0x14
adc byte [eax], al
add byte [ecx], bh
add cl, byte ds:[eax + 0x41]
add esi, 4
cmp ecx, edx
fdivr st(4), st(0)
jmp 0x4062e5
jb 0x406346
adc al, 0xf7
xor cl, byte [ebx + 0x1010b0]
add byte [ebx + 0x3bfb04c2], al
into
pop esp
in al, dx
dec dword [eax + 0x1010]
mov edx, dword [eax - 0x78ffdfec]
wait
xor byte [ebp - 0x72c5a267], al
mov al, 0x1e
and byte [ebp], al
cmp dword [esi], edi
je 0x4063ac
loop 0x4062c2
daa
add al, 0x30
retf 0xf472
popfd
dec edx
cmp ecx, edx
jae 0x406367
lea edx, [eax + ecx*4 + 0x2018]
mov edx, ebx
mov edx, 0x8b328941
mov al, 0x14
and byte [eax], al
add byte [ebx + 0x3b4e043a], al
adc dword [edx - 0x71], esi
adc al, 0x4f
adc al, 0x20
add byte [eax], al
mov edi, dword [esi]
add eax, dword [ecx]
add byte [eax], al
cmp ecx, dword [esi]
jne 0x406382
test ecx, ecx
jle 0x406382
dec ecx
mov dword [esi], ebp
sbb byte [ebx], bh
add byte [edi + 0x5e], bl
pop edi
pop esi
xor eax, eax
cmp eax, 0xc2c5e58b
ljmp 0x3909
pop edi
pop esi
mov eax, 0x3909
pop ebx
mov esp, ebp
pop ebp
ret 0x7f
add byte [ebx + 0x47], dl
test dword [eax], ecx
and edx, dword [edx - 0x7afbbc29]
sal byte [ebp + 0x69], 0x8b
inc ebp
adc al, 0x5f
pop esi
pop ebx
mov dword [eax], 0x95000000
xor eax, eax
xor al, 0xe5
pop ebp
mov byte [0x758b5d14], al
or byte [ebx - 0x97af383], 0x1b
or bh, byte [esp + eax - 0x7b]
add al, 0x85
push dword [ebx + 4]
xor eax, eax
jmp 0x406407
mov ecx, 0x401
lea esi, [ebx + 0xc]
lea edi, [ebp - 0xd61c]
loope 0x40647b
movsd dword es:[edi], dword [esi]
mov ecx, 0xb904d5
or esi, dword [ebx - 0x6affeff0]
lea edi, [ebp - 0x2e18]
lea edx, [ebp - 0x1018]
rep movsd dword es:[edi], dword [esi]
mov ecx, 0xc600df01
lea esi, [ebx + 0x2014]
lea edi, [ebp - 0x3020]
lea eax, [ebp - 0x206b]
cdq
movsd dword es:[edi], dword [esi]
jnp 0x4063d9
loopne 0x40641d
test byte [edi], 0x51
mov ecx, dword [ebx + 0x4beb37]
push edx
inc ecx
push eax
push ecx
call dword [0x40c1b5]
mov edx, dword [ebp + 0x14]
xor edi, edi
cmp eax, edi
loopne 0x40646c
jge 0x40648c
mov eax, ebx
movsd dword es:[edi], dword [esi]
lcall 0xc085, 0xd6ff0034
je 0x4065c8
add bh, bh
salc
call esi
pop edi
pop esi
add eax, 0xafc2e
or al, byte [eax]
sbb bh, byte [0x14c25de5]
jp 0x406483
test byte [esi], 0x5f
push cs
pop edi
pop esi
jnp 0x406509
adc dword [ecx], eax
add byte [ebx - 0x75], bl
in eax, 0xb6
ret 0x14
add byte [ebx + ecx*4 - 0x30], cl
or byte [esi - 9], al
in al, dx
dec edx
and byte [eax], dh
add byte [eax], al
add edi, eax
movsb byte es:[edi], byte [esi]
add eax, 0x87006900
cmc
mov edx, dword [ebx + 0x3020]
mov ecx, esp
hlt
invalid