Function at 0x401340
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov eax, 0xa0cc
mov ebp, esp
push edi
push esi
push ebx
call fcn.00405de0
mov dword [esp], 0
call fcn.00405e44
mov dword [esp], eax
call fcn.00405e4c
call fcn.00405e54
and eax, 1
jne 0x401375
mov byte [0x40f008], 1
test eax, eax
je 0x401970
mov byte [0x40f008], 1
call fcn.00405ed4
lea edx, [ebp - 0x1c]
mov dword [esp + 4], edx
mov dword [esp], eax
call fcn.00405f74
mov dword [ebp - 0x28], 0
mov dword [ebp - 0x24], 0
sub esp, 8
cmp byte [0x40f008], 0
add bh, al
inc ebp
fadd qword [eax]
add byte [eax], al
add byte [ebx + 0x3d8008ec], al
or al, dh
inc eax
add byte [eax], al
mov dword [ebp - 0xa08c], eax
je 0x401990
cmp dword [ebp - 0x1c], 1
je 0x401b80
mov edx, dword [ebp - 0xa08c]
mov eax, dword [edx + 4]
mov dword [esp], eax
call fcn.00405e5c
cmp byte [0x40f008], 0
jne 0x4019d0
in eax, 0x8e
mov cl, 0x81
jg 0x40139e
nop
pop eax
push ebx
jne 0x401450
ret
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x28], eax
call fcn.00405edc
mov edx, dword [ebp - 0xa090]
mov dword [esp + 4], 0
shl edx, 3
mov dword [esp + 8], edx
mov dword [esp], eax
call fcn.00405ee4
movzx edx, byte [0x40f008]
mov byte [ebp - 0xa098], dl
sub esp, 0xc
test dl, dl
jo 0x4014b1
invalid
inc dword [ebx - 0x2d7bf314]
jne 0x4014b7
adc ch, byte [esi]
or eax, 0x867fa8a7
test dword [edi + 0x4750773b], edi
xor ecx, eax
add cl, byte [eax]
xchg ebp, ecx
mov edi, 0x169dc31b
aam 0x9c
inc edx
inc ecx
jmp 0xdc3bda4d
jns 0x401477
aas
push ss
ficom dword [ebx]
mov edx, dword [ebp - 0xa090]
test edx, edx
jle 0x40155e
xor ecx, ecx
xor edx, edx
cmp byte [ebp - 0xa098], 0
lea esi, [ebp - 0x28]
lea ebx, [ebp - 0x27]
je 0x4019e1
mov dword [ebp - 0xa08c], eax
mov eax, ecx
jmp 0x4014ec
mov eax, dword [ebp - 0xa09c]
cmp eax, 2
mov edi, 0x20
mov dword [ebp - 0xa09c], 5
je 0x401510
lea ecx, [eax + 1]
mov dword [ebp - 0xa09c], ecx
lea edi, [eax*8]
mov eax, dword [edi + section..data]
mov ecx, dword [ebp - 0xa08c]
xor eax, dword [ebp - 0x28]
mov dword [ecx + edx*8], eax
mov eax, dword [edi + 0x406004]
xor eax, dword [ebp - 0x24]
mov dword [ecx + edx*8 + 4], eax
add edx, 1
add byte [esi], 1
add byte [ebx], 1
add byte [ebp - 0x26], 1
add byte [ebp - 0x25], 1
add byte [ebp - 0x24], 1
add al, 0x60
inc eax
add byte [ebx], dh
inc ebp
fmul qword [ecx - 0x7cfb2ebc]
ret 0x8001
inc ebp
fadd qword [ecx]
add byte [ebp - 0x23], 1
add byte [ebp - 0x22], 1
add byte [ebp - 0x21], 1
cmp edx, dword [ebp - 0xa090]
jne 0x4014e6
mov eax, dword [ebp - 0xa08c]
cmp byte [ebp - 0xa098], 0
jne 0x401613
and byte [esi], dl
jl 0x401524
and al, 0xea
cwde
push ebx
ja 0x401583
imul dh
mov esp, 0x28536bcc
and al, 0x14
jl 0x401541
lodsb al, byte [esi]
cmp dword [ecx + 0x19], ebx
leave
sbb ecx, ecx
pop eax
sti
invalid
mov dword [esp], eax
call int.00402da0
movzx edx, byte [0x40f008]
test dl, dl
jne 0x40163c
out 0x48, al
xor dword [eax], edx
inc eax
jne 0x40167e
mov byte [ebx + 0x4c], bh
sbb bh, byte [esi + 0x59]
aam 0xfc
invalid
test eax, eax
je 0x401963
test dl, dl
jne 0x401676
fstp qword [edx + 0x7af2faec]
mov dword [esi + 0x70e8d160], esi
adc dword [ebp - 0x3e], ebx
cdq
fmul dword [esi]
mov ah, 0x56
mov byte [bp + di - 0x72], dl
pop ss
adc byte [ecx + 0xb], bl
or dword [esi], esp
invalid
cmp al, 0x51
daa
dec ebp
scasb al, byte es:[edi]
jmp 0x4645b41
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.00402700
cmp byte [0x40f008], 0
mov ebx, eax
jne 0x401743
xchg edi, esi
wait
fstp qword [esi + 0x23]
xor ah, ch
cmp al, byte [eax + 0x45]
inc ebp
dec edx
imul esi, dword [0x12122c31], 0xffffffde
sub al, 0x12
adc bl, dh
push 0xb91f477d
cwde
inc esi
push es
inc edi
in eax, dx
into
mov byte es:[ebx + 0x71dcab84], ch
in eax, 0x1c
mov dh, 0x2b
and ah, byte [eax - 0x69]
dec esi
jb 0x401670
stosb byte es:[edi], al
sub al, 0xdb
daa
je 0x4016c5
loopne 0x4016d9
inc eax
out 0x53, al
outsd dx, dword [esi]
aam 0x21
xchg ebp, eax
pop esp
int 0x19
or byte [ecx + 0x41c5ed8a], ch
sbb byte [ebx], ch
mov ch, ch
lds eax, [ecx + 0x18]
sub al, 0x63
jns 0x4016a5
mov cl, 0xeb
insd dword es:[edi], dx
ffree st(6)
xchg esp, eax
push ecx
sal byte [esi + ebx*2], 0x5b
mov cl, 0x6f
das
rol dword [ebx + ecx*4], cl
mov al, byte [0xa849931e]
or dword [esi], 0x4c3a99e9
adc bh, dh
std
invalid
scasd eax, dword es:[edi]
pop ss
sbb eax, 0x69ec0f8
test eax, 0x4af64138
aas
dec eax
into
or eax, 0x1f92fbaa
test dword [edi], edx
out dx, al
ror dword [ebp*8 + 0x7f7706d0], 0x1d
xchg esp, eax
ja 0x401712
xor edi, dword [esi - 0x79]
imul edi, dword [edi + 0x70feb57d], 0xfffffffe
test al, 0x3f
or edx, dword [ebx - 0x18]
xchg esp, eax
inc edi
add byte [eax], al
call fcn.00405edc
mov dword [esp + 8], 0x23
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.00405ee4
movzx ecx, byte [0x40f008]
xor edx, edx
sub esp, 0xc
test cl, cl
test byte [edi], al
add byte [edi], cl
mov dh, 0xd
or al, dh
inc eax
add byte [ecx], dh
rol byte [ebx - 0x367bf314], cl
jne 0x401798
popfd
jb 0x401732
mov ah, 0x60
add ecx, 0xc4c7514d
shl esp, 1
pop ecx
dec eax
ret 0xc68c
test cl, cl
jne 0x4017f5
arpl word [edx], dx
jae 0x40175c
pop ebx
xor eax, 0x3f7e2148
cmpsd dword [esi], dword es:[edi]
inc esp
in al, dx
sub bh, byte [ebx - 0x6a]
push esi
invalid
movzx ecx, byte [edx + 0x40ec82]
xor ecx, 0xffffff94
mov byte [eax + edx], cl
movzx ecx, byte [0x40f008]
test cl, cl
jne 0x401856
adc byte [eax + 0x24], dh
lea eax, [esi + 0x6149e170]
push ebp
fdiv qword [esi + 0x27]
out 0xf3, al
inc ebp
nop
push esp
inc esp
xor cl, byte [ecx + 0x6932a170]
movsb byte es:[edi], byte [esi]
pop esi
rcl dword [edx + 0xc], cl
sbb al, 0x62
jge 0x40186f
lock add esi, dword [eax + 0x26114cd1]
sub dword [edi - 0x6c84f0b2], eax
lahf
iretd
add edx, 1
cmp edx, 0x22
jne 0x401798
test cl, cl
jne 0x4018bf
add bh, bl
sti
movsb byte es:[edi], byte [esi]
xchg ebp, eax
lcall 0xe0b3, 0xcd6c6c74
mov bl, 0xe0
pop eax
test dword fs:[edx - 0x19], 0x2d873961
lodsb al, byte [esi]
jmp 0x400fa4
popal
cmp dword [edi - 0x169853d3], eax
and esi, edi
jbe 0x401867
cdq
sub dl, dl
ret
outsb dx, byte [esi]
invalid
mov byte [eax + 0x22], 0
movzx edx, byte [0x40f008]
test dl, dl
jne 0x4018f1
xor esi, eax
sub esp, dword [ecx]
xchg edi, eax
add edx, edx
iretd
mov cl, 0xdc
or eax, 0x76689c71
or byte [esi], al
test al, 0x81
and dword [ebp + 0x78c6533], ecx
cmc
sahf
jne 0x4018a3
pop ebx
cmpsb byte [esi], byte es:[edi]
jge 0x401876
mov dword [ebp - 0x38eb8b25], 0xa5042444
in al, dx
inc eax
add byte [ecx - 0x2c00dbfc], cl
test ebx, ebx
je 0x401909
mov dword [esp + 4], 0x40eca5
mov dword [esp], eax
call ebx
movzx edx, byte [0x40f008]
test dl, dl
jne 0x401963
mov byte [ecx - 0x3fb4c41c], bl
dec eax
mov esp, 0x6533b05c
mov dh, 0xdb
out 0xd8, al
push 0x20f43d19
xor edx, dword [edx + 0x3bedea95]
push 0xfc7c0274
pushfd
pushal
aaa
out 0x20, eax
jg 0x4018d7
sbb dword [0x923320f4], edi
xchg ebp, eax
ljmp 0x7c02
jge 0x401965
salc
loop 0x40191e
mov cl, 0xc8
mov ebp, 0xefbe119
add dword [esi], ebp
mov al, byte [0xd28e1897]
add byte [edx], 0xd5
std
invalid
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
hlt
cmp byte [0x40f008], 0
jne 0x401384
lea esp, [ebp - 0xc]
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret 0x10
jge 0x4019b6
pop esp
adc al, 0x71
invalid
xchg edx, eax
xlatb
cld
pop ds
and al, byte [eax]
ret
mov ecx, dword [0x406018]
mov dword [ebp - 0xa090], ecx
jmp 0x401443
mov dword [ebp - 0xa08c], eax
mov eax, ecx
jmp 0x4019f6
sbb eax, 0x1aca9c54
xchg edi, eax
movsd dword es:[edi], dword [esi]
in al, dx
cmp ch, byte [ecx]
arpl word ds:[ebx], si
dec edi
enter 0xffffffffffffb0b3, 0x74
shl byte gs:[edx], cl
and byte [ebx - 0x62], bh
cdq
inc eax
fidiv word [eax + 0x3762f11a]
inc esi
inc byte [ecx]
pushal
xchg esi, eax
cmpsd dword [esi], dword es:[edi]
dec esp
rcl al, 1
mov dh, byte [ebx + eax]
frndint
mov bh, 0x89
jo 0x401a44
pop ebx
xchg edx, eax
cmp al, 0xd7
xor esi, edx
pop ss
jbe 0x6a281a66
inc esi
out 0x6a, eax
cmpsb byte [esi], byte es:[edi]
jge 0x401a4c
dec ebp
loop 0x401abc
and ebp, 0x2f88357
mov edi, 0x20
add bh, byte [edi + 0x20]
mov dword [ebp - 0xa09c], 5
je 0x401a66
pop edi
invalid
lea ecx, [eax + 1]
mov dword [ebp - 0xa09c], ecx
lea edi, [eax*8]
pushfd
loopne 0x401a56
mov ecx, 0x13f5803c
mov cl, 0xcb
sub al, al
push ecx
pop ebx
sar byte [edx], 0xc4
pop es
and dword [edi], ebp
lodsd eax, dword [esi]
sahf
inc eax
mov al, byte [0x6d1e22eb]
or byte [ebp - 0x16], dh
movsb byte es:[edi], byte [esi]
push ebp
fcomp dword [ebp - 0x6f]
pop eax
push ebx
movsb byte es:[edi], byte [esi]
or dword [esi], ebx
into
leave
jo 0x401abd
mov dword [edx + 0x1dcb90ee], ebp
imul ebx, dword ds:[esi - 0x22], 0xc1fc8054
mov byte [ecx - 0x54], dh
sub eax, 0x878b84c7
add byte [eax + 0x40], ah
add byte [ebx - 0xa08b73], cl
push dword [ebx]
inc ebp
fmul dword [ecx - 0x78742efc]
add al, 0x60
pushal
inc eax
add byte [ebx], dh
inc ebp
fmul qword [ecx + 0x5804d144]
invalid
mov edx, dword [ebp - 0xa08c]
mov eax, dword [edx]
mov dword [esp + 4], eax
lea eax, [ebp - 0x507c]
mov dword [esp], eax
call fcn.00405e64
movzx ecx, byte [0x40f008]
test cl, cl
mov byte [ebp - 0xa090], cl
jne 0x402070
pop ss
nop
stc
test eax, 0x75188c18
lodsd eax, dword [esi]
mov ch, 0x50
fidiv dword [esi]
push ebx
test ah, bl
mov dl, 0x42
ljmp 0xe3a4
sbb eax, 0x40601e
cmp eax, 0xcaed780f
fcom dword [ebx]
xor esi, ebp
mov dword [ebx + 0x3b], esi
push edx
cmp byte [ebx - 0x33], ah
inc eax
jg 0x401c55
ror dword [ebx + 0x40ec2015], 1
add byte [ebp + 0x1d840fd2], al
add dword [eax], eax
add byte [ecx], dh
test byte [eax - 0xa08f43], 0xff
add byte [ebp + 0x4b], dh
mov edx, dword [0x40ec20]
test edx, edx
je 0x401d4f
xor esi, esi
cmp byte [ebp - 0xa090], 0
jne 0x401c88
pop eax
jmp 0x11c87ea7
add dword [ecx + ebp*8], edx
add byte [esi - 0x45], 0xa0
sahf
movsb byte es:[edi], byte [esi]
add al, 1
sub al, 0x16
cmc
pop edx
or dword [ecx], ebx
invalid
mov ch, 0x1f
fsubr dword [ecx]
mov edx, esi
mov word [eax - 0xf38d5b9], es
sub al, 0xdb
fisubr dword [ecx + 0x39bf4c95]
push ecx
shl byte [esi + 0x67], 0xb5
sal byte [eax - 0x32], 0x86
jnp 0x401c0b
movzx ecx, word [edx]
test ecx, ecx
je 0x402062
xor eax, eax
cmp byte [ebp - 0xa090], 0
jne 0x402033
push ebx
lodsd eax, dword [esi]
xor byte [ecx], ch
cmp dword [eax + 0x61776470], esi
nop
push edx
cmp edi, dword [ebx + esi*2]
ror byte [ecx + 0x3366df89], 1
jl 0x401cfb
add ah, byte [esi - 0x77]
cmp al, 0x42
add eax, 1
cmp ecx, eax
jg 0x401ca2
or edx, ebx
rep outsd dx, dword [esi]
inc ecx
test eax, 0xb677b130
sub al, 0xfb
pop esp
sub byte [eax + 0x3de1a98c], 0x1a
inc ebp
mov ah, 0x7b
aad 7
mov dh, 0x12
jp 0x401c68
wait
lodsd eax, dword [esi]
invalid
dec edx
add byte [eax], al
mov edi, 0x8c66152
jae 0x401d46
mov cs, word [esi]
out dx, al
sbb eax, 0x391c8f83
invalid
add byte [ebp - 0x1a7af02e], al
invalid
cmp byte [ebp - 0xa090], 0
jne 0x401dfd
xchg esi, eax
push esp
xchg eax, edi
dec edx
push 0x27f85a2a
test dword [edx + 0x70], esp
push ecx
jmp 0x3fe1c2
mov edx, dword [ebp - 0xa094]
lea ebx, [ebp - 0xa07c]
mov eax, dword [ebp - 0xa098]
mov dword [esp + 0x10], edx
mov edx, dword [ebp - 0xa08c]
mov dword [esp + 0xc], eax
mov eax, dword [edx]
mov dword [esp], ebx
mov dword [esp + 8], eax
mov eax, dword [0x40ec30]
mov dword [esp + 4], eax
call fcn.00405eac
cmp byte [0x40f008], 0
jne 0x401e66
adc byte [ebx + edi*8 - 0x2bb58e0b], ch
xor eax, 0xd7388ec1
cmp bh, dl
adc ebp, dword [esi + ebx]
pop esi
in al, 0xb7
retf 0x41b0
xor eax, eax
mov ecx, 0x11
cmp byte [0x40f008], 0
lea edx, [ebp - 0x7c]
mov edi, edx
rep stosd dword es:[edi], eax
jne 0x401efc
push ebp
test byte [ecx + 0x75abf3d7], cl
jg 0x401e83
add eax, 0xa16374bd
sub ebp, dword [0xfd6fdb55]
mov ebp, 0x2ba16374
sub eax, 0xfd6fdb55
jno 0x401e89
invalid
out dx, al
fcompi st(6)
ja 0x401e75
outsb dx, byte [esi]
adc dword [ecx - 0x6142601f], ebx
add dl, byte [esi]
sbb eax, 0xf973a7f4
out 0x5c, eax
push es
adc ecx, dword [edx + 0x58f9ee5b]
pushal
clc
inc esi
aas
out dx, al
mov esi, 0x3dbe5c25
outsb dx, byte [esi]
jnp 0x401e90
jno 0x401e47
stc
cmp byte gs:[esi + ebx*2 - 0x64], ch
push ebx
mov edx, 0xfe4466a2
push ebp
cmp eax, 0x9d36b556
hlt
cmp byte [0x40f008], 0
mov dword [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
jne 0x401f82
fld qword [eax]
popal
jmp 0x401f2f
rcr dh, cl
xor edi, dword [ebx]
fdiv dword [eax - 0x53]
mov ah, 0x41
mov gs, word [edx + edx + 0x70355b3c]
adc dh, byte fs:[eax - 0x3b]
invalid
mov ecx, dword [ebp - 0xa08c]
lea eax, [ebp - 0x38]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x1c], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0
mov dword [esp + 4], ebx
mov eax, dword [ecx]
mov dword [esp], eax
call fcn.00405eec
sub esp, 0x28
cmp byte [0x40f008], 0
jne 0x401963
add ch, byte [ecx + 0x17]
in al, dx
arpl word [esi + 6], dx
test al, 0x92
and al, 0x16
invalid
mov edi, ebx
xor di, word [edx + eax*2 + 2]
mov word [edx + eax*2], di
add eax, 1
cmp ecx, eax
jg 0x402033
add esi, 1
mov word [edx + ecx*2], 0
mov edx, dword [esi*4 + 0x40ec20]
test edx, edx
jne 0x401c34
jmp 0x401d4f
cmp byte [ebp - 0xa090], 0
jne 0x402045
jmp 0x401cc5
mov edx, dword [0x406010]
mov ecx, dword [0x406014]
movzx ebx, word [0x40601e]
mov dword [ebp - 0xa098], edx
mov dword [ebp - 0xa094], ecx
mov dword [ebp - 0x28], edx
mov dword [ebp - 0x24], ecx
jmp 0x401c24