Function at 0x40747f
Capabilities:
Encode data using xor

Disassembly:
mov ebx, 0x56a2b5f0
push 0
push ebx
call ebp
add al, 0xeb
add eax, 0xc150031f
add al, 0x8d
dec ebp
inc esp
lea edx, [ebp - 0x54]
push ecx
xchg dword es:[ecx], ecx
push edx
push ecx
cdq
add byte [eax + 0x3e], dl
inc ebp
fsubr st(0)
dec eax
or al, 0
add byte [ebx - 0xf74eb3c], al
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x4074db
mov eax, dword [ebp - 0x10]
lea edx, [eax + 1]
or dl, bh
jno 0x4074c0
add byte [eax], al
jb 0x4074c7
mov eax, 0x1ff
xor al, byte [ebp - 4]
jae 0x4074db
dec esi
mov byte [esi], 0x30
sbb al, 0x4d
leave
aam 0x4d
enter 0x4d89, 0xfffffffffffffffc
jb 0x407540
rol dword [ebp - 0x30], cl
test dword [eax + 0x10], edi
test ch, bh
add dword [edi], ecx
mov byte [ebp - 5], 0x2d
invalid
push eax
invalid
mov esi, eax
mov eax, dword [ebp - 0x1c]
jno 0x407507
je 0x4075a7
mov eax, dword [ebp + 0x49]
lea ecx, [eax + 1]
cmp ecx, 0x8c000200
jb 0x40755c
mov eax, 0x2b01ff
cmp dword [ebp - 4], eax
jae 0x407570
dec esi
mov byte [esi], 0x30
aaa
dec ebp
cld
inc ecx
cmp ecx, eax
mov dword [ebp - 4], ecx
jb 0x407561
mov esi, dword [ebp + 0xf1724d4]
mov bh, 0x64
add al, byte [eax]
add byte [eax - 0x7bf063c2], al
pop ebx
add al, byte [eax]
add byte [esi - 0x3a], cl
invalid
xor eax, 0xba000010
les ebx, [eax]
jmp 0x4075de
mov esi, eax
mov esi, 0x73853d45
je 0x40760e
mov ebx, dword [esi + 0x1488df0]
cmp ecx, 0x200
push eax
add eax, 0x8001416e
add byte [ecx], bh
adc al, 0xdc
sub al, 0xfb
xor esi, edi
push es
xor byte [ebx + 0x3b41fcad], cl
scasb al, byte es:[edi]
inc ebp
sub esp, edi
jb 0x4075ff
mov eax, dword [ebp - 0x2c]
test dword [ecx + 0xf], eax
shufps xmm0, xmmword [ecx], 0x47
add al, dl
inc ebp
fdivr dword [edi - 0x44caf040]
add dword [eax], eax
add byte [ebx + 0x4e4e1055], cl
mov al, byte [edx]
mov byte [esi + 1], al
mov byte [esi], 0xc5
fadd qword [ebp - 4]
add eax, 2
pop ss
mov al, byte [0x8b740001]
xor eax, dword [ebx + 0x341104c3]
je 0x8f407a11
mov eax, dword [ebp - 0x1c]
je 0x40760e
jne 0x407668
mov eax, dword [0x33ffc983]
rol dh, 0x45
pop ss
and byte [esi + ebp*4], al
fist word [ecx]
dec ecx
mov dword [esp + edi*8], edx
jmp 0x4077df
mov ecx, dword [ebp - 0x10]
pop esp
rol byte [ebp - 0x765e1337], cl
push ebp
cld
jbe 0x40a91d
cmp byte [eax], 0
mov ebp, dr0
rol byte [eax], cl
add al, bl
inc edx
cmp esi, dword [esi + 0x72505589]
dec ebx
mov byte [ebp + 0x17], 0x20
jmp 0x4077ad
scasb al, byte es:[edi]
mov eax, dword [ebp - 0x2c]
test dword [eax - 0x763f7ab7], 0xb874fc4d
push 0x3b
insd dword es:[edi], dx
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 0x59
test eax, eax
jne 0x4077a1
mov eax, dword [ebp + 0x65]
mov byte [eax + esi], 0x2e
mov eax, dword [ebp - 4]
inc ebx
rol byte [ebp - 4], 0xc6
add al, 0x30
add byte [ebx - 0x1c7fefb3], cl
inc edi
mov ecx, dword [ebp + 0x10]
and bl, 0x47
fist dword [ebx]
push 0x65
push esi
call dword [esi]
push ss
jl 0x407771
inc eax
add byte [ebx - 0x3fe46679], al
je 0x4077fe
mov byte [eax], 0xbc
mov al, byte [ebp - 5]
pop edi
sal byte [esp + ebx - 0x7f], 0xfe
mov al, byte [0x4e0040c2]
and dword [ebp - 0x70a515bb], ecx
je 0x407836
ret 0xfb4d
jnp 0x407826
int3
jmp 0x8040781e
push edi
sub byte [edi], al
call dword [ebp + 8]
aam 0xc4
dec edx
test eax, eax
rol bl, cl
mov word [ebx], es
add byte [eax], al
clc
add al, bh
dec edi
add al, 0x8b
pop es
mov esp, edx
fmul qword [edx + 0x406a8816]
mov dword [ebp - 0xc], eax
das
push ebp
in al, dx
int1
dec ebp
loopne 0x407890
inc esi
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x6e]
dec edx
dec ecx
mov dword [ebp - 4], edx
mov dword [ebp - 0x20], ecx
jmp 0x37407aab
xchg esp, eax
invalid
or al, dl
mov dword [edx], eax
mov edi, dword [esi]
fmul qword [eax]
inc ecx