Function at 0x402130
Capabilities:
Encode data using xor

Disassembly:
cbw
cwde
insb byte es:[edi], dx
insd dword es:[edi], dx
push 0xffffffffffffff95
insb byte es:[edi], dx
cwde
lcall 0x966a, 0x68666995
cwde
xchg edi, eax
xchg ebp, eax
xchg ebp, eax
lcall 0x95a9, 0xa79d8a63
mov al, byte [0x98a9a887]
popfd
mov dword [0xa1a7aa62], eax
xchg ebp, eax
mov byte [0xb191b156], al
pushal
scasd eax, dword es:[edi]
push esi
popfd
cwde
push esi
outsb dx, byte [esi]
push esi
sbb dword [ebp - 0x585c5969], 0x62a89aa3
mov bl, byte [ebp - 0x5f6a5659]
xchg dword [eax - 0x5c626757], ebp
bound eax, qword [esi - 0x6856675d]
test al, 0x62
jbe 0x401f20
popfd
mov al, byte [0xa3a38898]
mov al, byte [0x566056a7]
mov dword [0x56a7a0a3], eax
pushal
push esi
stosb byte es:[edi], al
cdq
cmpsb byte [esi], byte es:[edi]
cmpsd dword [esi], dword es:[edi]
popfd
mov dword [0x566e56a2], eax
push 0x62
bound esp, qword gs:[edi + 0x67]
imul esp, dword [esi + 0x6d], 0x66666a62
push esi
pushal
push esi
test al, 0xad
movsb byte es:[edi], byte [esi]
cdq
push esi
outsb dx, byte [esi]
push esi
ja 0x401f43
xchg ebp, eax
mov byte [0x84a099a2], al
cmpsb byte [esi], byte es:[edi]
mov dword [0xa897a998], eax
push esi
pushal
push esi
popfd
xchg edi, eax
mov dword [0xaf6e56a2], eax
push esi
mov byte [0x56af6e56], al
mov eax, dword [0x8899a19d]
lodsd eax, dword [esi]
movsb byte es:[edi], byte [esi]
cdq
push esi
outsb dx, byte [esi]
cdq
mov byte [ebp + 0x6e5699a4], ch
push esi
popfd
mov eax, dword [0x63999b95]
cmpsd dword [esi], dword es:[edi]
stosb byte es:[edi], al
wait
pop edi
lodsb al, byte [esi]
mov eax, dword [0x566056a0]
xchg esi, eax
xchg ebp, eax
cmpsd dword [esi], dword es:[edi]
cdq
push 0x68
push esi
outsb dx, byte [esi]
push esi
test byte [edx + eax*4 + 0x66], bh
mov gs, word [ebp - 0x7469978a]
lodsb al, byte [esi]
test eax, 0x9d64ae97
xchg ebp, eax
jl 0x401f7b
xchg edi, eax
js 0x401f9c
stosb byte es:[edi], al
and byte [edi - 0x68], 0x67
cwde
lodsd eax, dword [esi]
imul esp, dword [edi - 0x7f], 0x97aa69ad
mov eax, dword [0x9e81aa97]
sub dword [ebp - 0x5e685597], 0x9e81aa97
jne 0x401fb9
xor dword [edi + 0x6d], 0x97a198ae
popfd
jge 0x402094
mov fs, word [esi + ecx*4 - 0x69886774]
wait
wait
insd dword es:[edi], dx
jge 0x401fc2
jne 0x401fc1
xor dword [edi + 0x75], 0x75778164
xor dword fs:[edi + 0x7d], 0xa385785f
wait
jge 0x4020b0
lodsb al, byte [esi]
scasb al, byte es:[edi]
cwde
jl 0x401fdd
cmpsd dword [esi], dword es:[edi]
mov cs, word [eax - 0x746a5698]
sub byte [edx - 0x619a626a], 0x8d
mov ebp, dword [ecx + 0x66]
lea ecx, [ecx + eax*4 + 0x7e7c98a8]
pushfd
xchg esi, eax
mov byte [0x8c8dab82], al
jle 0x401ffe
xchg esi, eax
mov byte [0x67966b86], al
jbe 0x402002
lea esp, [esi - 0x60]
cdq
mov byte [ebx - 0x71997c55], ah
movsb byte es:[edi], byte [esi]
xchg esi, eax
jnp 0x402020
push 0x7d
lea sp, [esi - 0x72]
jge 0x4020de
lea esp, [esi - 0x72]
mov ds, word [esi - 0x5d7d5e72]
test eax, 0x9c7ea28d
sahf
mov fs, word [ecx - 0x569b5d7e]
lea esp, [edx - 0x5e696382]
test dword [eax - 0x5b7d5d68], ebp
invalid
test eax, 0x9c7ea28d
xchg esi, eax
mov eax, dword [0xa298a885]
and byte [esi + ecx*4 - 0x71947585], 0xa1
cwde
mov byte [0x7b8ea482], al
mov ch, byte [ebx - 0x72]
mov eax, dword [0x7896a7a0]
mov dword [0x8d78839e], eax
mov fs, word gs:[ecx - 0x77659a7f]
mov al, byte [0xa37896a7]
sahf
cmp dword [eax - 0x73], 0x65
mov fs, word [ecx - 0x77659a7f]
stosd dword es:[edi], eax
stosb byte es:[edi], al
xchg edi, eax
xchg byte [bx + di - 0x6a], ch
jnp 0x402036
pop edi
js 0x402035
mov dword [0xac787d9b], eax
stosd dword es:[edi], eax
lea ecx, [esi + eax*4 - 0x7d84825d]
cmpsd dword [esi], dword es:[edi]
lea ecx, [edx + eax*4 + 0x7e8784ae]
movsb byte es:[edi], byte [esi]
and byte [edi - 0x517d7373], 0x84
xchg dword [esi - 0x5c], edi
lea esp, [esi + 0x6d]
test eax, 0x9c828b80
xchg esi, eax
mov byte [0xad979c8e], al
lodsd eax, dword [esi]
xchg edi, eax
mov eax, dword [0x6797a97a]
jbe 0x40207a
test eax, 0x9c766797
pushfd
xchg edi, eax
mov eax, dword [0x7798a98a]
jge 0x402081
invalid
js 0x402076
stosd dword es:[edi], eax
xchg dword [eax + 0x76], edi
mov eax, dword [ecx - 0x7e9b6485]
jl 0x40208a
cmp dword fs:[ebx - 0x63], 0x9fa07b7d
test byte [edi - 0x74726182], al
imul esp, dword [esi - 0x73], 0x809d818c
scasb al, byte es:[edi]
push 0x759d7782
popfd
sub byte [esi - 0x62887d98], 0x75
wait
test byte [esi + esi*2 - 0x64], bh
cwde
jnp 0x4020bc
wait
lea esp, [esi - 0x54]
pushfd
xchg edi, eax
sub dword [di + 0x7d], 0x8dad7ea1
mov ebp, dword [ecx - 0x61]
imul ebx, dword [edi - 0x51717380], 0xa0868b95
imul ebx, dword [edi - 0x51717380], 0xa0868b95
jge 0x4020d9
jbe 0x4020dd
test byte [edi - 0x517e7d82], al
jne 0x4020ef
sbb dword [esi - 0x787f5383], 0x7881ab68
jle 0x4020d3
or dword [eax + 0x7883a981], 0x787d679b
jns 0x4021c4
sbb byte [esi + 0x787d6679], 0x85
test eax, 0xad897881
jge 0x4021e4
wait
test eax, 0x6685ae82
jge 0x4021ec
jne 0x402111
or dword [eax - 0x777e568b], 0x9e8aad75
jge 0x4021eb
imul eax, dword [eax - 0x7d585f62], 0x82ab6877
mov byte [ebp - 0x65], bh
sbb byte [esi + 0x7782a7a0], 0x68
stosd dword es:[edi], eax
or byte [eax - 0x787e6483], 0x68
scasb al, byte es:[edi]
or byte [eax - 0x787c6473], 0x68
push 0xa889ae81
sub byte [ebp - 0x777e9b98], 0x85
wait
add dword [edi - 0x777d5198], 0x87839b8d
push 0x89ae8168
test al, 0x82
lodsd eax, dword [esi]
push 0x85888164
or dword [eax - 0x777e647b], 0xae81a98d
and dword [ebp + edi*2 + 0x78], 0x9e806679
jns 0x40221c
wait
or dword [eax - 0x517e5673], 0x787d6481
test eax, 0x6481ae81
jge 0x402228
jns 0x402218
sbb byte [esi + 0x78886679], 0x85
mov byte [eax - 0x7b], bh
mov byte [eax - 0x7b], bh
stosd dword es:[edi], eax
jge 0x402234
and dword [ebp - 0x80], 0x81649b9e
mov al, byte [0x9e80648d]
lea esp, [eax + eax*4 - 0x62]
jns 0x40222f
cmp dword [ebx - 0x55], 0xffffffa8
add dword [edi - 0x517d9898], 0xffffff9f
test al, 0x82
ja 0x402241
lodsb al, byte [esi]
and byte [edx + 0x778282a4], 0x68
stosd dword es:[edi], eax
or byte [eax - 0x617e6483], 0x89
test eax, 0x8ba07883
or dword [eax - 0x777e567b], 0x7888ac79
jns 0x4021a5
jge 0x402181
sbb dword [esi + 0x7883a989], 0x88818ba0
test dword [ecx - 0x5386777f], ebp
js 0x40218d
mov al, byte [0x8588818b]
test eax, 0xac798881
mov eax, dword [ecx - 0x7e567a78]
mov byte [ecx - 0x54], bh
jns 0x4021a2
mov byte [eax + 0x79], bh
stosd dword es:[edi], eax
sbb byte [esi + 0x7782ab75], 0x75
lodsd eax, dword [esi]
sahf
jne 0x4021a9
xor byte [edi + 0x75], 0xad
cmp dword [ebx - 0x55], 0x688782a8
imul eax, dword [edx - 0x7d648278], 0x83686887
mov word [edx + eax*4 - 0x648a517f], fs
jne 0x4021b5
sbb dword [esi + 0x7882a99b], 0x7888ad97
jns 0x40228e
wait
test eax, 0xad977882
mov byte [eax + 0x79], bh
push 0x689f9e80
sub dword [ebp + 0x7781ad75], 0x7781ae75
sbb byte [esi - 0x527e9761], 0x75
lodsd eax, dword [esi]
lahf
push 0xad75ad81
xor dword [edi + 0x75], 0x757781ae
lodsb al, byte [esi]
ja 0x4022a6
scasb al, byte es:[edi]
xor dword [edi + 0x75], 0x688781ac
sbb dword gs:[esi - 0x777e9964], 0x8883a98d
test dword [ecx + ebx*4 - 0x63], esp
jne 0x4021e2
add dword [edi - 0x617e9a98], 0x8881669c
lea ebp, [ecx + 0x64858883]
test eax, 0x64858883
cdq
popfd
jge 0x4021f4
test byte [ebx + 0x77847f64], bl
insd dword es:[edi], dx
scasb al, byte es:[edi]
cwde
mov eax, dword [0xb1565f97]
pushal
push esi
popfd
cmpsd dword [esi], dword es:[edi]
jl 0x4021fb
cwde
cwde
cdq
mov byte [0xa6a86e56], al
test eax, 0xa6566099
cdq
mov al, byte [0x99a79599]
and byte [ebx + 0x56a799a8], 0x6e
push esi
pushfd
test al, 0xa8
movsb byte es:[edi], byte [esi]
cmpsd dword [esi], dword es:[edi]
outsb dx, byte [esi]
arpl word [ebx - 0x68], sp
mov dword [0xa162a797], eax
popfd
xchg edi, eax
cmpsb byte [esi], byte es:[edi]
mov dword [0xa89aa3a7], eax
bound edx, qword [edi - 0x669c5e5d]
mov byte [0x63a7a961], al
stosb byte es:[edi], al
popfd
test al, 0x62
xchg edi, eax
mov dword [0xa29963a1], eax
popal
test eax, 0x9daa63a7
cmpsd dword [esi], dword es:[edi]
test eax, 0xa8a7a095
test eax, 0x63a39d98
cmpsb byte [esi], byte es:[edi]
cdq
mov al, byte [0x99a79599]
arpl word [esi - 0x6a665f67], sp
cmpsd dword [esi], dword es:[edi]
cdq
cmpsd dword [esi], dword es:[edi]
arpl word [esi + 0x64], sp
insd dword es:[edi], dx
arpl word [esi - 0x6a665f67], sp
cmpsd dword [esi], dword es:[edi]
cdq
popal
mov byte [0xa799a8a3], al
popal
stosb byte es:[edi], al
push 0x62
push edi
push 0x62
bound esp, qword gs:[esi + 0x6a]
push esi
pushal
push esi
mov al, byte [0xa09597a3]
popfd
scasb al, byte es:[edi]
cdq
cwde
xchg byte [ecx - 0x59565c59], bl
xchg edi, eax
cdq
cmpsd dword [esi], dword es:[edi]
push esi
outsb dx, byte [esi]
invalid