Function at 0x401000
Capabilities:
Encode data using xor
Terminate process

Disassembly:
push ebp
mov ebp, esp
cmp edi, 0xf50c
mov byte [0xbe02d4], al
sbb ebx, dword [0x417de867]
add byte [ebx + 0x41c75e], ah
mov dword [0xe5414044], eax
mov dword [0x7e1863], eax
xor ebx, ebx
mov dword [0x414048], eax
push edi
lea eax, [ebp + 0x63]
push ebx
lea ecx, [ebp + 8]
push eax
call 0x1830d300
inc ecx
add byte [edx + edx*8 + 0x40], al
mov cl, byte [eax + 0x41c740ad]
add al, ch
salc
dec esp
add byte [eax], al
push 0xef3de0
mov eax, 0xa4d8
add esp, 4
push ebx
dec edi
push ebx
push 0x4140da
call fcn.00404f60
mov esp, dword [ecx - 0x21]
mov edx, ebp
xchg ebx, eax
mov ecx, dword [0x41fd1b]
push edx
push eax
lea edx, [ebp - 0xc]
push ecx
xor ch, al
inc esp
test al, 0
add byte [ebx + 0x458df455], cl
mov dword [ebp + 0x5150fb4d], ecx
push 0x7d285
push edx
mov edi, 0x4ade
test eax, eax
jne 0x401534
mov ecx, 0x40c16835
push ebp
out dx, eax
mov esi, 0xc0effb73
mov edi, 0xf39f883
dec edi
add al, 0
add byte [eax - 0x37], ah
mov cl, byte [eax + 0x401708]
jmp dword [ecx*4 + 0x408898]
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp - 0x71]
mov ecx, esp
add cl, 0xb2
add byte [ecx - 0x2d], cl
xor eax, 0x8b28dd0c
push ebp
or al, 0x8b
or eax, 0x40275b
add ecx, 0x40
mov eax, dword [edx]
push eax
push 0xfa400ddc
push ecx
call esi
add dl, byte [eax + 0x68]
fmul qword [0xff51fa40]
salc
clc
push ebp
or al, 0x8b
add dl, byte [eax - 0x18]
test al, 0x2d
add bh, dl
mov word [ebp - 0xc], es
add esp, 0xffffffab
mov ecx, dword [eax + 7]
mov edx, dword [eax + 0x1c]
xor esi, edi
mov al, byte [ecx - 0x70]
dec eax
jb 0x401553
dec esp
inc eax
inc ecx
add byte [edx + 0x50], dl
call fcn.0040579d
push eax
dec ebp
mov byte [edi], ch
add byte [eax], al
add esp, 4
test eax, eax
je 0x4015b8
mov ebp, dword [edx]
or al, 0xa1
enter 0xffffffffffffa5c0, 0
add eax, 0xffffffd5
mov edx, dword [ecx]
add ch, byte [eax - 0x38]
sal byte [eax + eax - 0x74390054], 1
dec ebp
adc al, 0x8b
nop
push edx
call 0x13342fc
add esp, 0x10
mov eax, dword [0x40d018]
cmp eax, ebx
jl 0x4015c8
cmp eax, 0x4e20
jle 0x4015f7
mov eax, dword [ebp + 0x55]
mov edx, dword [sym.imp.MSVCRT.dll__iob]
xchg esp, eax
mov esp, 0x830000a4
xchg dword [eax + 0x72], eax
outsb dx, byte [esi]
les ebp, [eax + 0x7d]
rol byte [eax], 1
out 0xff, al
salc
mov eax, dword [ebp + 0xc]
mov esi, dword [esi + 0x51]
call 0xa74310
mov eax, dword [0x40d037]
pop esi
les edx, [ebx + ecx*4]
or eax, 0x9340d066
mov ecx, dword [0x9340d066]
cmp eax, ecx
jle 0x40162c
int 0x16
or al, 0x8b
or eax, 0x401bc8
add ecx, 0x40
mov eax, dword [edi + 0x50]
push 0xd07cd058
push ecx
xlatb
pushfd
mov edx, dword [ebp - 0x58]
push edi
add dl, byte [eax - 0x18]
in eax, dx
sub al, 0
add byte [ebx + 0x40ff100d], cl
lodsb al, byte [esi]
dec eax
les edx, [eax]
test al, 0x98
pop es
sal byte [eax + eax + 0x74], 1
adc ebp, 0x10096
jle 0x401672
mov eax, 0x66666667
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp edx, 0x64
mov dword [esi - 0x27312fec], edx
jge 0x401629
mov dword [0x40af14], 0x27000064
nop
adc al, 0xe8
aaa
sub al, 0
or dword [edx + 0x5e], 0xffffffdb
invalid
push 0x1d
mov bh, 0xd0
fld qword [eax]
call 0xd442a0
call 0xe5401858
mov esp, dword [eax + 0x4c]
inc eax
inc ecx
add byte [edx + 0x6c], dl
jb 0x4016c3
jno 0x40168e
pop edi
pop esi
xor eax, eax
inc edx
mov esp, ebp
pop ebp
jb 0x401685
wait
adc al, byte [eax + 0x73]
je 0x4016b0
inc eax
add dl, ah
adc esi, esp
add byte [esi], ch
adc eax, dword [eax]
adc dword [ecx], 0x125b0040
inc esp
add byte [esi + edx + 0x40], ah
push ss
inc eax
and eax, 0x40359a
push ss
pop ds
mov dword [eax], eax
aas
adc dword [eax], eax
bound esi, qword [edx]
inc eax
push ebp
insd dword es:[edi], dx
adc dword [eax], eax
stc
adc dword [eax + 0x79], eax
or cl, dl
inc eax
add byte [edx], ch
adc dword [eax], eax
call 0xbf407674
adc byte [eax], al
mov word [ecx], ss
inc eax
add bh, dh
adc byte [eax], al
sbb dl, byte [edx]
inc eax
add byte [0xd300400f], bh
adc dword [eax], eax
sub dword [edx], edx
push es
add byte [esi + 0x14], dh
inc eax
add byte [ebp - 0x20ff9aec], al
adc al, 0xc7
add bh, bl
adc al, 0x40
add byte [esi], dl
adc eax, 0x1b000040
les ebx, [ebx]
fcomp dword [ebx]
sbb eax, 0x1b1bc302
sbb ebx, dword [ebx]
sbb ebx, dword [ebx]
add ebx, dword [ebx]
sbb eax, dword [eax + 0x71b06dc]
sbb ebx, dword [ebx]
sbb ebx, dword [ebx]
sbb esi, dword [ebx + 0x50]
clc
sbb ecx, dword [eax]
or dword [edx], ecx
or ebx, dword [ebx]
or al, 0xd
push cs
sbb ecx, dword [edi]
sbb ebx, dword [ebx]
adc byte [ebx], bl
adc dword [ebx + edx - 0x6deaebe5], esi
pop ss
sbb byte [ecx], bl
inc esp
nop
nop
nop
nop
nop
test al, 0x90
push ds
invalid