Function at 0x669af9
Capabilities:
Encode data using xor

Disassembly:
push dword [esp]
mov esi, dword [esp]
push 0x444cf4b3
mov dword [esp], esi
jmp 0x669591
mov edi, ebx
pop ebx
mov ebp, edi
mov edi, dword [esp]
add esp, 4
sub esp, 4
mov dword [esp], eax
mov eax, ebp
mov ebx, eax
pop eax
pop ebp
push 0x2cb101b1
mov dword [esp], ecx
mov ecx, ebx
mov eax, ecx
push dword [esp]
pop ecx
push ebp
mov dword [esp], esi
mov esi, esp
jmp 0x6699c8
push dword [esp]
mov ecx, dword [esp]
add esp, 4
sub esp, 4
jmp 0x669825
push esi
jmp 0x669599
mov eax, edx
mov edx, dword [esp]
add esp, 4
mov edx, eax
mov eax, dword [esp]
add esp, 4
xor ecx, edx
mov edx, dword [esp]
push edi
mov edi, esp
add edi, 4
add edi, 4
xchg dword [esp], edi
jmp 0x6699e6
push ecx
mov ecx, esp
add ecx, 4
add ecx, 4
xchg dword [esp], ecx
mov esp, dword [esp]
jmp 0x669d9c
xor ebx, ecx
pop ecx
sub ebp, 0x6edd88be
add ebp, ebx
jmp 0x6693e1
add esi, ebx
pop ebx
xchg dword [esp], esi
pop esp
pop ebx
push ecx
jmp 0x66999b
add esp, 4
xchg esi, edi
xchg edi, ecx
not ecx
xchg edi, ecx
xchg esi, edi
xor esi, 0x6fe3fdca
push edi
mov edi, 0x75fe9abe
shr edi, 3
add edi, 0x7bbf93ab
shr edi, 3
or edi, 0x7bdc2ac1
add edi, 0xbd1f43c9
jmp 0x669d44
push edi
mov edi, 4
add ecx, edi
pop edi
push ecx
push dword [esp + 4]
pop ecx
pop dword [esp]
pop esp
push edi
mov edi, 0x31f97c46
push ecx
mov dword [esp], 0x19b42820
mov dword [esp], ebp
push edx
mov dword [esp], esi
jmp 0x6699d3
mov dword [esp], ebx
push 0x7d6fa78f
push dword [esp]
pop ebx
add esp, 4
push ebp
jmp 0x669482
push 0x49d7e669
mov dword [esp], edi
mov edi, 0x1dfe8564
push eax
mov eax, 0x537fc412
push ebx
push ecx
mov ecx, 0x8f4761f3
mov ebx, ecx
jmp 0x669c8a
sub ebp, esi
mov esi, dword [esp]
add esp, 4
jmp 0x6694ba
add ebp, 0x6edd88be
jmp 0x6696e9
xor eax, 0x7db36511
sub eax, 0xdc12e0c
add esi, eax
pop eax
pop edi
push edi
mov dword [esp], 0x5d7d89ad
jmp 0x669398
neg ecx
and ecx, 0x1ffecf00
push esi
jmp 0x6697c3
mov edx, eax
mov edi, edx
mov edx, dword [esp]
add esp, 4
pop eax
inc edi
jmp 0x6694ee
sub esi, 0x777ea50c
jmp 0x6696ff
sub esp, 4
mov dword [esp], ebx
mov ebx, 4
add edx, 0x37ff5ee4
add edx, ebx
sub edx, 0x37ff5ee4
push dword [esp]
pop ebx
add esp, 4
add edx, 4
push edx
push dword [esp + 4]
jmp 0x6694c5
push ebx
jmp 0x66971b
pop edx
xchg dword [esp], edi
jmp 0x669641
mov edi, 0x3106831d
xor ebx, edi
jmp 0x6694d5
mov dword [esp], esi
mov esi, 0x3affac56
or ebx, esi
mov esi, dword [esp]
add esp, 4
shr ebx, 7
push edi
jmp 0x669476
push ecx
push edi
mov edi, 0x29fb38e4
xor edi, 0x44623a8e
mov ecx, edi
pop edi
inc ecx
add ecx, 0xbc5e884a
jmp 0x669314
sub esp, 4
jmp 0x669536
mov edx, dword [esp]
jmp 0x6692c8
xchg edi, ebx
pop ebx
jmp 0x669688
pop edi
add esi, 0x7cefbd7e
add esi, ebx
jmp 0x6694e3
sub esi, 0x7cefbd7e
jmp 0x6695b7
push 0x164c2b27
jmp 0x6697d3
not edi
and edi, 0x67fd0a07
and edi, 0x7f7f2f34
xor edi, 0x2494a580
sub esi, edi
pop edi
mov edx, esi
pop esi
jmp 0x6692ce
add eax, 0x3fd9eb7
push edx
mov edx, esp
add edx, 4
sub edx, 4
xchg dword [esp], edx
mov esp, dword [esp]
jmp 0x66969e
mov dword [esp], edi
push eax
jmp 0x66964a
add edx, 4
push edi
mov edi, 4
sub edx, edi
pop edi
sub esp, 4
mov dword [esp], ebp
mov dword [esp], esi
mov dword [esp], edx
push dword [esp + 4]
pop edx
pop dword [esp]
pop esp
mov dword [esp], eax
mov eax, 0
sub eax, 0x3fd9eb7
add eax, esi
jmp 0x669517
pop ecx
jmp 0x6692fa
mov ecx, 0x77ff08c7
xor ecx, 0x7ed45815
push ecx
jmp 0x6698e0
mov dword [esp], edx
jmp 0x669714
mov esi, esp
push eax
mov eax, 4
add esi, eax
pop eax
add esi, 4
xchg dword [esp], esi
pop esp
pop dword [esp]
pop esp
push eax
mov eax, esp
jmp 0x669467
push dword [esp]
pop ebx
push ecx
mov dword [esp], 0x4b17ade5
mov dword [esp], ebp
mov dword [esp], eax
push esp
pop eax
add eax, 4
add eax, 4
xor eax, dword [esp]
xor dword [esp], eax
xor eax, dword [esp]
mov esp, dword [esp]
sub eax, 1
jne 0x669835
sti
sub esp, 4
mov dword [esp], ebx
push edi
mov dword [esp], 0x3f1dd65a
pop ebx
push edi
mov edi, esp
push esi
mov esi, 0x739b0591
xor esi, 0x739b0595
add edi, esi
pop esi
sub edi, 4
xchg dword [esp], edi
pop esp
mov dword [esp], ebx
xchg dword [esp], esi
not esi
xchg dword [esp], esi
jmp 0x669697
sub esp, 4
mov dword [esp], ebp
push edi
mov edi, 0x7b76076a
mov ebp, edi
pop edi
add edx, ebp
pop ebp
jmp 0x669c55
mov esp, dword [esp]
push esi
jmp 0x669a42
push 0x767d64e3
pop eax
sub eax, 0xa77769d5
push eax
sub dword [esp], 0x17f984ab
mov edi, dword [esp]
add esp, 4
add edi, 0x17f984ab
pop eax
sub ebp, edi
mov edi, dword [esp]
add esp, 4
jmp 0x6696f2
push dword [esp + 4]
pop eax
pop dword [esp]
pop esp
jmp 0x669778
xor edi, 0xfbf686fc
add esi, edi
pop edi
push ecx
jmp 0x6697e2
pop ebx
push ebx
jmp 0x6696ae
mov dword [esp], ecx
pop dword [eax]
push dword [esp]
mov eax, dword [esp]
jmp 0x6698fd
neg dword [esp]
pop ebx
sub ebx, 0x2ab8cd31
mov edx, ebx
mov ebx, dword [esp]
push eax
mov dword [esp], 0x62917d06
mov dword [esp], edx
mov edx, esp
sub esp, 4
mov dword [esp], ecx
mov ecx, 0x62dfecd0
push esi
mov esi, 0
sub esi, ecx
jmp 0x669733
sub eax, ecx
jmp 0x669921
pop ebx
sub esp, 4
jmp 0x669871
sub esi, ebp
mov ebp, dword [esp]
add esp, 4
jmp 0x669429
sub esi, edi
sub esp, 4
mov dword [esp], edi
mov edi, 0x777ea50c
add esi, edi
pop edi
jmp 0x669749
mov edx, esp
jmp 0x669434
mov ebx, 0x5fdfe620
not ebx
inc ebx
add ebx, 0x5fdfe624
sub eax, 0x53bff31b
jmp 0x6697f2
mov ecx, esi
mov esi, dword [esp]
add esp, 4
xor ecx, 0x77ffb513
jmp 0x669407
push eax
mov eax, 0x7fff30ea
jmp 0x6698cd
add dword [esp], 0x77ea371c
pop ecx
sub ecx, 0x77ea371c
mov ebx, dword [esp]
add esp, 4
push ebp
mov ebp, 0x7f7f373a
not ebp
jmp 0x66990e
push 0x11b232ed
mov dword [esp], ecx
mov ecx, 0x37ff42aa
sub esi, 0x7f6b79e1
add esi, ecx
jmp 0x669cb6
push edi
jmp 0x669896
xor ebp, dword [esp]
mov esp, dword [esp]
sti
sub esp, 4
mov dword [esp], ebx
push edx
mov dword [esp], ebp
sub esp, 4
mov dword [esp], edi
push ebx
push 0x76ff0407
pop ebx
not ebx
jmp 0x669888
mov esi, 0x152048fc
sub ecx, esi
pop esi
add edx, ecx
pop ecx
jmp 0x66983c
mov dword [esp], ebx
mov ebx, 0
sub ebx, edi
jmp 0x6694cd
push 0xf6f0e5f
mov ecx, dword [esp]
add esp, 4
jmp 0x669ae7
add eax, ebx
jmp 0x669c17
mov esi, 0x7ff63cb2
shr esi, 2
dec esi
or esi, 0x7bdfe4ea
inc esi
neg esi
sub esi, 0xfdec9a69
jmp 0x669aaf
mov ebx, esi
pop esi
dec ebx
xor ebx, 0x6dff168d
jmp 0x669324
mov dword [esp], edx
mov edx, esp
sub esp, 4
jmp 0x669b55
push dword [esi]
jmp 0x6692b4
push ecx
mov ecx, 4
add edx, ecx
pop ecx
xchg dword [esp], edx
mov esp, dword [esp]
push ecx
push esi
mov dword [esp], ebx
push esi
mov esi, 0x77f3bd97
push esi
pop ebx
pop esi
push 0x22c73bc6
mov dword [esp], ebx
jmp 0x669754
push dword [esp]
mov ecx, dword [esp]
jmp 0x6699ec
mov dword [esp], edi
push edi
mov edi, esp
add edi, 4
sub edi, 4
xchg dword [esp], edi
jmp 0x6698ae
dec ebx
not ebx
sub ebx, 0x748c658d
jmp 0x66927f
sub dword [esp], 0x7fa1cf08
mov ecx, dword [esp]
add esp, 4
jmp 0x669b7e
push ecx
jmp 0x669580
pop esp
mov dword [esp], ebp
mov ebp, 4
mov edi, ebp
mov ebp, dword [esp]
add esp, 4
add ebp, 0x57ff478f
jmp 0x669982
xor eax, 0x5ff35d15
dec eax
jmp 0x6693ec
add esp, 4
jmp 0x6698a8
not dword [esp]
pop ecx
sub ecx, 0x7edfda2a
add esi, 0x77f04bda
sub esi, ecx
sub esi, 0x77f04bda
jmp 0x66995b
add esp, 4
push ecx
mov ecx, esp
add ecx, 4
jmp 0x66936b
sub ebp, 0x1d7d7a58
add ebp, 0x699ced9
mov ebx, ebp
jmp 0x6699b8
mov ecx, dword [esp]
add esp, 4
push ecx
mov ecx, 1
sub eax, 0x7d113311
push ebp
mov ebp, 0x5de91ab9
add eax, ebp
mov ebp, dword [esp]
add esp, 4
jmp 0x669948
add eax, ecx
sub eax, 0x5de91ab9
add eax, 0x7d113311
pop ecx
push edx
jmp 0x669a21
pop ecx
add esi, dword [esp]
push edi
push eax
mov eax, 0x148d613d
dec eax
xor eax, 0x6770cd3c
push edx
jmp 0x669415
dec ebp
not ebp
push edi
mov edi, 0x83e324fd
sub ebp, edi
jmp 0x669cc4
add ebp, edi
sub ebp, 0x57ff478f
mov edi, dword [esp]
add esp, 4
xor ebp, dword [esp]
xor dword [esp], ebp
jmp 0x669798
sub esp, 4
mov dword [esp], edi
mov edi, 0x77753ec5
sub edi, 0x7ffeae12
dec edi
sub edi, 0xf5040f33
jmp 0x669792
mov ebp, dword [esp]
add esp, 4
xor ebx, ecx
jmp 0x669866
add esi, 4
jmp 0x669b31
mov esi, 0x7efe0a72
mov ebp, esi
pop esi
push esi
mov esi, 0x5ffa3481
jmp 0x6693d1
pop esp
jmp 0x6693b0
add esp, 4
push edx
mov dword [esp], ebx
jmp 0x6699f8
mov dword [esp], edi
push esp
pop edi
push esi
mov esi, 4
add edi, esi
pop esi
push edx
mov edx, 0x71eda58d
add edx, 0x7e73c836
neg edx
xor edx, 0xf9e9239
add edi, edx
jmp 0x66946d
mov edx, 0x775d3173
and eax, edx
pop edx
sub eax, 0xd0cce34e
and ebp, eax
push dword [esp]
pop eax
add esp, 4
push edi
mov edi, 0x3dfdd020
jmp 0x669d2b
mov dword [esp], 0x575e8acd
shr dword [esp], 2
dec dword [esp]
or dword [esp], 0x4e1f0d12
xor dword [esp], 0x5436e210
mov dword [esp], ecx
push edx
push 0x17db33d9
mov edx, dword [esp]
add esp, 4
shr edx, 6
push ebp
mov ebp, 0x73bf3b7c
xchg ebp, ebx
dec ebx
xchg ebp, ebx
dec ebp
or ebp, 0x5f3f27b3
add ebp, 0x735e7121
or ebp, 0x3f9d0a10
push esi
jmp 0x6697f9
pop ecx
jmp 0x6698d8
push 0x4ddc0653
mov dword [esp], ecx
mov ecx, esp
add ecx, 4
jmp 0x669bba
xor ebp, esi
pop esi
jmp 0x669ac2
sub edi, 0x6b6c41de
jmp 0x669d61
xor edx, ebp
mov ebp, dword [esp]
jmp 0x669b75
add ecx, 0x7efff131
push dword [esp]
pop ebx
add esp, 4
xchg dword [esp], ecx
mov esp, dword [esp]
jmp 0x669835
shl ecx, 8
add ecx, 0x57f3aff9
xor ecx, 0xf0fd4c53
sub esi, ecx
pop ecx
push ebp
mov ebp, esp
push ecx
mov dword [esp], ebx
mov ebx, 0x75f55c36
push edx
mov edx, 0x556782ab
sub edx, 0x7fc37f09
push ecx
mov dword [esp], esi
mov esi, 0x89a6321d
sub edx, esi
pop esi
sub ebx, 0x1ddcb6b5
sub ebx, edx
add ebx, 0x1ddcb6b5
pop edx
jmp 0x66949e
push edx
mov dword [esp], ebx
push esi
mov esi, 0x5f7fcaed
or esi, 0x5be47db3
shr esi, 2
add esi, 1
xor esi, 0x75ff168a
jmp 0x669816
mov dword [esp], ebp
push edi
mov edi, 0x7f7bc0f2
shl edi, 3
xor edi, 0xfbde0794
mov ebp, edi
jmp 0x669c26
xor ecx, edi
jmp 0x669d93
add esp, 4
push edx
jmp 0x669bd9
add ecx, 0x7fa1cf08
pop edi
sub esp, 4
mov dword [esp], edx
mov edx, 0x79f587c7
sub eax, edx
pop edx
sub eax, 0x5aed86f2
sub eax, ecx
add eax, 0x5aed86f2
jmp 0x669ba7
add eax, 0x79f587c7
push dword [esp]
mov ecx, dword [esp]
add esp, 4
jmp 0x669a9a
push ebx
mov ebx, 4
sub ecx, 0x7efff131
sub ecx, 0x57a53ef3
add ecx, ebx
add ecx, 0x57a53ef3
jmp 0x669acc
push 0x53bbaefa
mov dword [esp], edx
push eax
push edx
mov edx, 0x7ff30129
mov eax, edx
pop edx
shr eax, 4
xor eax, 0x3380ce51
mov edx, eax
pop eax
add dword [esp + 4], edx
pop edx
pop ecx
sub ecx, 0x347ffe43
mov edx, dword [esp]
add esp, 4
mov edx, 0x3b2c65c1
xor edx, ecx
push dword [esp]
jmp 0x66957a
add eax, 0x53bff31b
pop ebx
add eax, 4
push eax
jmp 0x66967a
mov edi, dword [esp]
push esi
mov esi, esp
add esi, 4
add esi, 4
xchg dword [esp], esi
pop esp
sub edx, 0x7b76076a
sub edx, 0x63befa59
add edx, ebp
add edx, 0x63befa59
jmp 0x669627
push dword [esp]
mov ebp, dword [esp]
add esp, 4
add esp, 4
add edx, 4
xor edx, dword [esp]
xor dword [esp], edx
xor edx, dword [esp]
mov esp, dword [esp]
push ebp
mov ebp, 0x573ed5c
push eax
push 0x7e1fd6e5
pop eax
push ebx
push ebp
jmp 0x669ce9
pop ecx
add eax, ebx
push dword [esp]
pop ebx
add esp, 4
sub edi, eax
pop eax
push ecx
push edi
mov dword [esp], ebx
mov ebx, 0x66e982e7
push ebx
pop ecx
push dword [esp]
pop ebx
add esp, 4
sub edi, 0x3fbb2b5d
push ebx
jmp 0x669d52
add esi, 0x7f6b79e1
push dword [esp]
jmp 0x669a94
pop edi
add ecx, ebp
mov ebp, dword [esp]
add esp, 4
push eax
mov dword [esp], edx
push edx
mov dword [esp], ebx
mov dword [esp], eax
push ecx
mov dword [esp], edx
push 0x129b9e11
jmp 0x669d33
mov ebp, 0x7f97f62f
mov ebx, 0xb81fbe31
add ebx, 0x5cd53bec
add ebx, ebp
sub ebx, 0x5cd53bec
pop ebp
or eax, ebx
pop ebx
push ecx
mov ecx, 0x6efffb90
and ecx, 0x2f4fbb14
or ecx, 0x355f1081
add ecx, 0x5ee912d8
shl ecx, 5
sub ecx, 0x621e5585
jmp 0x6696e2
xor ebp, edi
pop edi
jmp 0x669972
mov dword [esp], esi
push 0x3bdff822
push dword [esp]
pop esi
jmp 0x669332
sub esi, edi
pop edi
push edi
mov edi, 0x3d119c94
jmp 0x6694f8
mov ebx, 0x6b6c41de
add edi, ebx
pop ebx
add edi, ecx
jmp 0x669ab7
add edi, 0x3fbb2b5d
pop ecx
add edi, 0x7fbda044
jmp 0x669d73
push edi
push ebp
pop edi
pop ebp
add ebp, 0xffffffff
xchg edi, ebp
xor edi, 0x1f7cd94f
shl edi, 6
xor edi, 0xa3bb6d1e
jmp 0x669b6e
pop edi
push edx
push esp
pop edx
jmp 0x66953f
arpl word [edx], si
push edi
mov ebp, 0xf8da45e4
enter 0xffffffffffffda97, 0xffffffffffffffc8
enter 0x5706, 0xffffffffffffffe1
clc
sbb cl, byte [esi + 0x377a631f]
aas
cmp eax, 0x5969d07e
jle 0x669d85
imul ebx, dword [ebx - 0x4c], 0xc0d269d8
enter 0xffffffffffffaf9d, 0xffffffffffffffc5
enter 0xffffffffffffda9e, 0xffffffffffffffb4
std
jns 0x669e06
cmpsb byte [esi], byte es:[edi]
aam 0x45
push ebx
mov ebp, 0xee303e6b
test al, 0x69
push edi
adc eax, 0xa6374a6b
mov cl, 0x44
push ebx
mov ebp, 0xa627929d
lds eax, [ebp + 0x53]
mov ebp, 0xa637526b
sub byte [esi + 0x53], al
mov ebp, 0x690b3763
out 0x65, al
push edx
mov eax, 0xc0d0969d
in al, 0x45
push ebx
mov esi, 0x46259ef9
loopne 0x669e73
and eax, 0x9069e046
nop
xor al, cl
dec ecx
jp 0x669e21
in al, 0x45
push ebx
sbb byte [ebp + edx - 0x332f37bc], cl
dec esi
loope 0x669e80
xor dl, byte [edi - 0x43]
in al, 0x45
inc ebp
jp 0x669df0
in al, 0x45
push ebx
adc al, 0x63
jp 0x669e62
mov ebx, dword [edi - 0x47b7ffca]
imul edi, dword [edx - 0x25], 0x465345e4
call 0x360869a6
and byte [esi], cl
clc
ret
xor byte [esi - 0x42acba7d], ah
cdq
into
push esi
loope 0x669ed6
test al, ch
imul eax, dword [edi - 0x6d8ed2ca], 0x2443c8e0
js 0x669e41
shr byte [ecx - 0x31], 0x1b
mov bl, 0xa1
aaa
rcr dword [ecx + 0x7f6dfb97], 0xed
in eax, dx
add dword [esi - 0x42acba1c], esp
imul eax, dword [edx - 0x4cab83c9], 0xffffff90
sub esi, ebp
push ss
sal byte [ebx - 0x14759f16], cl
and esp, dword [edi]
pop ecx
sub eax, 0x8d9037cf
les edi, [edi + 0x4d]
cdq
movsd dword es:[edi], dword [esi]
sub al, 0xa6
lea edi, [esi]
nop
mov ebx, 0x8437826b
call 0xf9e2722a
sahf
and edx, dword [ebx + ecx]
pushal
push ebx
mov ebp, 0xe1076ce4
call 0xfe3c1970
nop
cmp eax, 0xc0b269d0
adc ecx, eax
xor byte [esi], bh
and eax, 0x7f9056e5
pushfd
jp 0x669e8d
invalid