Function at 0x407310
Capabilities:
Encode data using xor

Disassembly:
push ebp
push edi
mov ebp, 0x49ea10
push esi
push ebx
mov esi, 0xc
mov edi, str..__m64__m32_
sub esp, 0x2c
mov dword [esp + 0x10], 0x42b390
mov dword [esp + 0xc], 0x42b350
mov dword [esp + 8], 0
mov dword [esp + 4], 0
mov dword [esp], 0x5b1180
call fcn.00477040
mov ebx, dword [0x5b118c]
jmp 0x407392
mov dword [esp + 8], esi
mov dword [esp + 4], edi
add ebp, 4
mov dword [esp], ebx
call sub.msvcrt.dll_memcpy
add esi, dword [0x5b118c]
mov edi, dword [ebp - 4]
test edi, edi
mov ebx, esi
mov dword [0x5b118c], esi
je 0x4073b5
mov dword [esp], edi
call sub.msvcrt.dll_strlen
mov esi, eax
mov eax, dword [0x5b1190]
sub eax, ebx
cmp esi, eax
jbe 0x407360
mov dword [esp + 4], esi
mov dword [esp], 0x5b1180
call fcn.004770a0
mov ebx, dword [0x5b118c]
jmp 0x407360
cmp dword [0x5b1190], esi
je 0x407730
lea eax, [ebx + 1]
mov dword [0x5b118c], eax
mov byte [ebx], 0
mov edx, dword [0x5b1188]
mov ebx, dword [0x5b118c]
cmp edx, ebx
je 0x407700
mov eax, dword [0x5b1198]
mov ecx, dword [0x5b1184]
add ebx, eax
not eax
and ebx, eax
mov eax, dword [0x5b1190]
mov esi, ebx
mov dword [0x5b118c], ebx
sub esi, ecx
mov edi, eax
sub edi, ecx
cmp esi, edi
jbe 0x40740f
mov dword [0x5b118c], eax
mov ebx, eax
mov dword [0x5b1188], ebx
mov dword [0x5b1164], edx
mov esi, 8
or esi, edi
mov edi, dword [0x497344]
dec eax
mov eax, eax
add edi, ebx
not eax
rol esi, 0x1a
xor eax, esi
and esi, 0x151dbfb
not eax
xor eax, 0xe256260
xor eax, esp
xor esi, edx
rol esi, 0xf
mov dword [0x4975e0], edi
test eax, 0xd4b7c3
jo 0x407481
mov esi, eax
sub ebx, dword [0x4972a5]
inc edx
call fcn.004021a1
xor edi, esi
and esi, edi
xor edi, esi
call fcn.00402d55
mov eax, ecx
shl eax, 0x1d
dec eax
or dword [0x497388], ecx
mov ecx, 0xfde2dde
shr eax, 0x17
sub dword [0x49709c], 0x2226ed30
xchg eax, eax
shr eax, 7
test eax, 0x382faac
jo 0x4074e1
mov dword [str.cc1plus], esi
dec esi
inc eax
call fcn.00406758
loop 0x407481
dec eax
xchg esi, eax
sub ecx, esp
xor ecx, eax
shr ebx, 0xc
or dword [0x4976cc], edi
shl esi, 0xe
add ecx, dword [0x49771d]
sub ecx, esp
xor eax, 0x1a23eb10
call fcn.00405339
and esi, edi
test edx, edi
jo 0x407508
mov ebx, dword [0x49714b]
mov edx, esp
sub edx, 0x2bf8e4a1
mov ecx, 0x76fd4cc
mov eax, dword [0xb92bf8e4]
int3
in al, 0xf8
sub edi, dword [ecx + 0x76fd4cc]
inc esi
not esi
xor dword [0x49705d], 0x1646e455
xchg edx, eax
call fcn.00417d4d
shr esi, 0x13
neg edx
test esp, 0x1088ad20
jo 0x40751c
inc esi
loop 0x4074e9
add edx, 0x12756f4
sub esi, eax
xor eax, ebp
rol edx, 0x1f
xor edx, edx
sub edx, esp
mov esi, ebx
sub esi, ebp
xor esi, eax
not eax
and esi, edi
add ebx, eax
inc esi
and esi, edi
mov ecx, 0x196ef06f
inc esi
xor ebx, dword [0x497433]
xchg eax, esi
rol esi, 0xc
or esi, dword [0x497672]
inc edx
neg esi
test ebx, esi
jo 0x4074e0
rol esi, 0xa
shr edx, 0x13
xchg esi, eax
ror esi, 8
loop 0x407532
rol ebx, 9
or edi, dword [0x49740a]
and esi, edi
mov esi, 0x40a5750
rol esi, 3
call fcn.00404181
mov esi, eax
xor edi, ebx
dec esi
and esi, edi
xor eax, eax
sub esi, 0x903e49
mov ecx, esp
mov esi, esi
sub esi, 0x6614af0
or esi, 0x203a398a
not esi
xor edx, esp
call fcn.0040270c
ror edx, 0x10
shr edx, 0x1d
mov ebx, 0x4574
call fcn.004075a8
sbb eax, 0x1d8334bb
mov esp, 0xbe0ada6d
xor ecx, dword [ecx - 0x4bc292df]
adc byte [edi + 0x68], ch
xor al, 0x83
sbb eax, 0xada6dbc
mov esi, 0x6d218933
cmp eax, 0x686f10b4
mov ecx, 0xca41a25e
or ch, byte [ebp + 0x68]
mov byte [edi - 5], al
xor edi, eax
das
imul edi, dword [ebx + eax*4], 0xa
salc
xor ecx, dword [edi - 0x6aa40eed]
adc bh, byte [edx - 0x45ea62ad]
inc ecx
mov cl, 0x5e
adc eax, 0x5eb141ba
clc
pop edx
les esp, [edx]
mov byte [edi + eax*4], dh
sbb dh, byte [eax - 0x73dd459a]
mov edx, 0x946dbe10
or byte [edx - 0x4ee659fb], bh
cmp eax, 0x516c0b8e
mov al, 0x66
mov edx, 0xba648c22
adc byte [esi - 0x45f76b93], bh
add eax, 0x3db119a6
mov cs, word [ebx]
insb byte es:[edi], dx
push ecx
xchg dword [ebx], ecx
mov edx, 0xba16da6f
xor eax, 0xac692281
ror dword [esi - 0x7d], 0x31
mov cs, word [ebx]
mov edx, 0xba16ba6f
xor eax, 0x69ba5081
mov byte [ebx - 0x5c], bl
jge 0x407702
push eax
mov word [ebp - 0x64], gs
or al, 0x6b
push esp
sbb byte [eax], 0xb0
jae 0x40773d
or al, 0xb8
push 0x6db11d80
mov edx, 0xcf41a25e
push ebp
mov cl, 0xe
lea ebx, [esi - 0xe]
pop esi
fst qword [esi]
mov dh, 0x3d
mov dword [0x10c141b1], ebx
mov al, 0x33
xchg esp, eax
pop esi
cmp bl, ch
push ebp
clc
mov byte [0x34b008a4], al
mov dword [0x2fc731fb], esp
imul edi, dword [ebx + eax*4], 0xa
div dword [ebx + edi*8 + 0x5a]
invalid
sti
pop edx
outsd dx, dword [esi]
jae 0x40775f
or bh, byte [esi + 0x6d218933]
cmp eax, 0x686f10b4
mov ecx, 0x946f8850
or bh, byte [edx - 0x45ef6aab]
jns 0x4077af
sub bh, byte [edx - 0x25af4697]
xor ecx, dword [edx - 0x78cb44ed]
sbb eax, dword [edx - 0x4ed23a59]
xor al, 0x8a
adc edi, dword [ebx - 0x45c438c8]
insd dword es:[edi], dx
fimul dword [edx]
insd dword es:[edi], dx
xor al, 0x87
sbb esi, edi
add ch, byte [edx - 0x77944eed]
or al, 0x6b
add bl, bh
inc esp
fldcw word [edi - 0x72]
adc eax, 0x1dba3cdd
test eax, 0x6d0aacad
xor al, 0x87
sbb esi, edi
jbe 0x4077b7
xor ebp, ebx
xor byte [edi + edi + 0x41b45cb8], bh
frstor dword [esi + 0x5cde36be]
movsd dword es:[edi], dword [esi]
inc ecx
frstor dword [edi - 0x44]
cmp ebx, esi
pop esp
fcomp dword [ebx]
fstp qword [ebx - 0x43]
cmp dh, dl
pop esp
xchg ebx, eax
or ebx, ebp
mov esp, 0x9c5cb43d
or ebx, ebp
push 0x5cde3bbc
fadd dword [ecx - 0x23]
cmp dword [ebp + edi + 0x41da5cd6], edi
fnsave dword [0x5caf36bc]
mov byte [0xbc34de1b], al
cmp dh, bl
pop esp
invalid