Function at 0x640010
Capabilities:
Encode data using xor

Disassembly:
in al, dx
stosd dword es:[edi], eax
push ss
xchg byte fs:[ebx + 0x2cb6b2a0], cl
mov dh, pe_nt_image_headers32
int 0x34
sub al, 0xb6
ror ch, 0x34
xchg ecx, eax
xor dword [eax - 0x6fe1b2d0], 0xffffffcd
enter 0x7e37, 0xffffffffffffffd2
xor ah, byte [ecx - 0x4c]
xchg esp, eax
dec ebx
push cs
outsd dx, dword [esi]
je 0x4ede41
dec esi
sar dword [esi + edx*8 + 0x7c], cl
into
bound esp, qword [esi + 0x46]
movsd dword es:[edi], dword [esi]
in eax, 0xca
xchg esp, eax
inc si
mov fs, edx
add bl, byte [ecx - 0x13]
scasb al, byte es:[edi]
and dh, byte [eax + ebp*2 - 0x1a]
test ecx, ecx
ror bl, cl
stosb byte es:[edi], al
aaa
lcall 0x5716, 0x37798a07
cmp dh, 0xd4
pop esp
call 0x87a5b865
pop esp
insd dword es:[edi], dx
push ebp
or al, 0x1e
sbb dword [eax + 0xb], eax
xor al, 0x2e
lodsb al, byte [esi]
scasd eax, dword es:[edi]
sbb al, 0xaa
add eax, 0x8e75e954
push ebp
xchg edx, eax
and al, 0xbe
push 6
and al, 0xe2
push 0xec4085c1
or ecx, 0x14
fdivr qword [ecx - 0x45]
and eax, 0x5b26dc9a
ret 0x450e
jge 0x640021
push 0x40
push 0x454a0c
push esi
push eax
call dword [0x4010bc]
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x28]
push edx
push eax
mov ecx, dword [eax]
mov esi, eax
call dword [ecx + 0x50]
test eax, eax
fnclex
jge 0x640045
push 0x50
push 0x4549d0
push esi
push eax
call dword [0x4010bc]
mov eax, dword [ebp - 0x18]
push eax
push 0x4599f8
call ebx
mov edx, eax
lea ecx, [ebp - 0x1c]
call edi
mov ecx, dword [0x64a5a8]
mov esi, dword [0x4011f4]
push eax
mov edx, dword [ecx]
push edx
call esi
mov edx, eax
lea ecx, [ebp - 0x20]
call edi
push eax
call ebx
mov edx, eax
lea ecx, [ebp - 0x24]
call edi
push eax
push 0x459a04
call ebx
mov edx, eax
lea ecx, [ebp - 0x2c]
call edi
push eax
mov eax, dword [ebp - 0x28]
push eax
call ebx
mov edx, eax
lea ecx, [ebp - 0x30]
call edi
push eax
push 0x45737c
call ebx
mov edx, eax
lea ecx, [ebp - 0x18]
call edi
lea ecx, [ebp - 0x30]
lea edx, [ebp - 0x28]
push ecx
lea eax, [ebp - 0x2c]
push edx
lea ecx, [ebp - 0x24]
push eax
lea edx, [ebp - 0x20]
push ecx
lea eax, [ebp - 0x1c]
push edx
push eax
push 6
call dword [0x401310]
lea ecx, [ebp - 0x38]
lea edx, [ebp - 0x34]
push ecx
push edx
push 2
call dword [0x401064]
mov eax, dword [ebp - 0x18]
add esp, 0x28
push eax
push 0x459a14
call ebx
mov ecx, dword [0x64a5a8]
mov dword [ebp - 0x68], eax
fld dword [0x64a1c4]
mov dword [ebp - 0x70], 8
lea edx, [ebp - 0x50]
fmul dword [ecx]
push 2
push edx
mov dword [ebp - 0x50], 4
fstp dword [ebp - 0x48]
fnstsw ax
test al, 0xd
jne 0x640990
lea eax, [ebp - 0x60]
push eax
call dword [0x40127c]
mov ecx, dword [0x64a9f8]
mov eax, 8
mov dword [ebp - 0xd0], eax
mov dword [ebp - 0xf0], eax
lea edx, [ebp - 0x70]
mov dword [ebp - 0xd8], ecx
lea eax, [ebp - 0x60]
push edx
lea ecx, [ebp - 0x80]
push eax
push ecx
mov dword [ebp - 0xc8], 0x459a20
mov dword [ebp - 0xe0], 4
mov dword [ebp - 0xe8], 0x45737c
call dword [0x4012a8]
push eax
lea edx, [ebp - 0xd0]
lea eax, [ebp - 0x90]
push edx
push eax
call dword [0x4012a8]
lea ecx, [ebp - 0xe0]
push eax
lea edx, [ebp - 0xa0]
push ecx
push edx
call dword [0x4012a8]
push eax
lea eax, [ebp - 0xf0]
lea ecx, [ebp - 0xb0]
push eax
push ecx
call dword [0x4012a8]
push eax
call dword [0x40103c]
mov edx, eax
lea ecx, [ebp - 0x18]
call edi
lea edx, [ebp - 0xb0]
lea eax, [ebp - 0xa0]
push edx
lea ecx, [ebp - 0x90]
push eax
lea edx, [ebp - 0x80]
push ecx
lea eax, [ebp - 0x60]
push edx
lea ecx, [ebp - 0x70]
push eax
lea edx, [ebp - 0x50]
push ecx
push edx
push 7
call dword [0x401050]
mov eax, dword [ebp - 0x18]
add esp, 0x20
push eax
push 0x459a30
call ebx
mov edx, eax
lea ecx, [ebp - 0x1c]
call edi
mov ecx, dword [0x64aa00]
push eax
push ecx
call esi
mov edx, eax
lea ecx, [ebp - 0x20]
call edi
push eax
call ebx
mov edx, eax
lea ecx, [ebp - 0x24]
call edi
push eax
push 0x459a3c
call ebx
mov edx, eax
lea ecx, [ebp - 0x28]
call edi
push eax
mov edx, dword [0x64aa08]
push edx
call esi
mov edx, eax
lea ecx, [ebp - 0x2c]
call edi
push eax
call ebx
mov edx, eax
lea ecx, [ebp - 0x30]
call edi
push eax
push 0x45737c
call ebx
mov edx, eax
lea ecx, [ebp - 0x18]
call edi
lea eax, [ebp - 0x30]
lea ecx, [ebp - 0x2c]
push eax
lea edx, [ebp - 0x28]
push ecx
lea eax, [ebp - 0x24]
push edx
lea ecx, [ebp - 0x20]
push eax
lea edx, [ebp - 0x1c]
push ecx
push edx
push 6
call dword [0x401310]
mov eax, dword [ebp - 0x18]
add esp, 0x1c
push eax
push 0x459a4c
call ebx
mov edx, eax
lea ecx, [ebp - 0x1c]
call edi
mov ecx, dword [0x64a9fc]
push eax
push ecx
call esi
mov edx, eax
lea ecx, [ebp - 0x20]
call edi
push eax
call ebx
mov edx, eax
lea ecx, [ebp - 0x24]
call edi
push eax
push 0x459a58
call ebx
mov edx, eax
lea ecx, [ebp - 0x28]
call edi
mov edx, dword [0x64aa0c]
push eax
jmp 0x640896
push edx
call esi
mov edx, eax
lea ecx, [ebp - 0x2c]
call edi
push eax
call ebx
mov edx, eax
lea ecx, [ebp - 0x18]
call edi
lea eax, [ebp - 0x2c]
lea ecx, [ebp - 0x28]
push eax
lea edx, [ebp - 0x24]
push ecx
lea eax, [ebp - 0x20]
push edx
lea ecx, [ebp - 0x1c]
push eax
push ecx
push 5
call dword [0x401310]
add esp, 0x18
wait
push 0x56094a
jmp 0x640949
ret
jmp 0x4ede4c