Function at 0x403999
Capabilities:
Encode data using xor

Disassembly:
wait
adc ecx, dword [ebx]
inc eax
mov al, 0x59
lahf
add dword [esp + edx], edx
inc esp
cwde
adc byte [0x41fc0196], 0xf5
dec esi
inc edi
inc eax
push dword [edi]
and dl, byte [eax - 0x49]
dec esp
aas
sub esp, dword [eax + edx*2]
add dword [edx], eax
inc edx
pop esp
rol byte [edx], 0xc
inc eax
and bl, byte ds:[eax]
or cl, byte [ebx + 0x42121ce1]
rcr dword [esi + 0x2c8e937d], 0x34
jnp 0x4037f9
mul ch
clc
cmp eax, 0xdd084010
adc byte [edi + 0x98aeca3], bl
xor dl, byte [ebx + 0x9581200]
popfd
jae 0x403889
pushfd
cmpsd dword [esi], dword es:[edi]
mov dword [0x32098aec], eax
xchg ebx, eax
add byte [edx], dl
pop eax
or dword [ebp + 0x4096073], ebx
test byte [esi + 0x7628e04f], ch
adc byte [edx], bh
cld
or dword [esp + eax*4], eax
scasb al, byte es:[edi]
dec edi
loopne 0x403858
jbe 0x403842
cmp bh, ah
insb byte es:[edi], dx
and byte [edi + 0x20], dh
cmp dword [edx + 0x1c758008], edi
fcom st(0)
add al, 4
dec esi
push eax
lock adc byte [0x3d115204], al
mov byte [eax], bh
jbe 0x40385e
lea eax, [eax]
cdq
out 0x80, al
out dx, eax
or byte [edx], cl
push eax
and byte [ebx + 0x79dd800a], al
inc ebx
pop ecx
cmpsb byte [esi], byte es:[edi]
pushal
rol cl, 1
adc byte [ecx], dl
adc byte [ecx + 0x34f09b41], cl
int 0x3c
mov esp, 0x601c8a62
rol byte [eax], 1
sub dword [ecx + 0x27], esp
xor byte [eax + 0x60], dh
or byte [eax], cl
mov byte [eax - 0x2fdcf9c0], cl
inc eax
add byte [edx + 0x68502524], 0x82
add esp, dword [edi]
and eax, 0x3826850
daa
add edx, dword [eax]
scasb al, byte es:[edi]
fsubp st(7)
mov cl, 0xe8
xlatb
pop es
jl 0x40381a
loopne 0x4038dd
or al, 0xa8
mov bh, byte [esi + ebp*8 + 0x11]
push ebx
mov byte [ebp + 0x920e090], bl
push es
cwde
add ecx, 0x861b461e
call 0x70380afb
xchg al, ch
inc ebp
sal bh, cl
outsd dx, dword [esi]
dec ebx
ja 0x4038b0
or al, 0x58
jmp 0x2711d937
inc ebp
sub eax, 0x2543a1d
push cs
daa
push 0x28020278
sub dword [eax - 0xf88fed4], ecx
add byte [edi + ecx], bh
clc
add cl, al
jae 0x403908
add eax, 0x81d0541
inc ecx
add dword [ebx], ecx
enter 0xffffffffffffd07a, 0x61
call 0x8284ad8f
and bl, byte [ecx]
and byte [edx], 0x19
xor byte [ebp + 3], dl
sbb eax, 0x40d09091
or dword [ecx], ecx
xchg esi, eax
insb byte es:[edi], dx
add byte [edx], 0xe
or byte [esi - 0x63], ch
adc esp, eax
or dword [edx], ecx
mov al, byte [0x4cd20a4]
push ds
adc al, dh
add dword [edx + 0x4000201f], 0x582a0881
inc eax
or dword [ebx], 0x4408043
add al, 0x45
or dword [eax], 0x8140582a
or eax, dword [ebx - 0x80]
inc eax
add al, 4
inc ebp
xor ah, byte [eax - 0x20]
or byte [eax - 0x599d8739], cl
popf
adc ah, byte [eax - 0x77]
in al, dx
pushfd
add eax, 0x1407624f
mov byte [edx - 0x33], al
add dl, byte [0x112ac060]
in eax, dx
or eax, 0x4976d450
cmp ah, byte [0xc7620d81]
daa
jo 0x40397d
mov ebx, 0x8f14148
sbb dword [esi + ebp*8], esi
popal
adc al, 0x8b
je 0x4039b4
add ah, byte [eax]
mov al, 0xb
mov al, byte [0x23a818a3]
test al, 0x23
jbe 0x403995
mov edx, 0x32951d05
mov cs, word [esi]
and esi, ecx
outsd dx, dword [esi]
add bl, byte [ebp + 0x4db41050]
aas
add dword [esi - 0x2122e160], ecx
push ds
fstp st(6)
je 0x4039e4
and byte [0x380601b], 9
lcall 0xd85, 0xfdefd5b0
or byte [ecx + 1], al
or esi, dword [eax]
jo 0x40392f
or dword [edx], ecx
sahf
imul eax, dword [eax], 0xffffffde
sar byte [edi + 4], 0x7d
add eax, dword [ecx]
adc dl, byte [edx]
faddp st(0)
jg 0x4039bc
jge 0x4039bd
add dword [edx], edx
adc ah, byte [esp + ebp]
and al, 0x2c
cmp dword [0x41f8b010], 0x39edc610
mov byte [0x100a819], al
and dword [esi], ebp
pushal
add dword [esi], eax
adc dword [eax + ebx], ecx
inc ecx
or dword [edi + eax*2], 0x40480a0
dec ecx
mov al, byte [0x49040480]
dec ebx
mov al, byte [0x360704c0]
rol byte [edi + eax], 0x36
pop es
xor al, 1
xor al, 1
adc dword [ebx], 0x1443c14
adc byte [esi + edx], 0x99
mov al, byte [0x807c0787]
loopne 0x403a19
or byte [edx], cl
push eax
jb 0x4039e2
cmp ah, byte [ecx]
add dword [ebx], ecx
xor byte [eax + 0x60], dh
or byte [eax], cl
mov byte [eax - 0x2fdcf9c0], cl
mov cl, 0xe0
shl byte [ecx], 1
or dword [edx + 0x9954096], edx
fist dword [eax + 0x42a1a0be]
daa
nop
mov esi, 0x2742a1a0
add byte [ecx + 0x25], 0xba
mov ebx, 0xc07e7a07
add byte [0x430a817], al
add al, 0x47
dec edx
xor al, 4
enter 0x3f3e, 0x58
add byte [esp + eax], al
inc ecx
and byte cs:[ecx], al
push es
adc dword [eax], edx
sbb al, 0x41
adc dword [edx], 0x83972c0d
in eax, 0x20
aaa
inc esi
push ebx
ja 0x4039db
frstor dword [edx + 0x53080f00]
jns 0x403a59
add eax, 0x180a821
or dword [ebx], esi
mov al, byte [0x879090f8]
invalid