Function at 0x10002f6e
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov dword [ebp - 0x26], 0
mov dword [ebp - 0x3a], 0
mov dword [ebp - 0x1e], 0
add byte [eax], al
mov word [ebp - 0x1a], 0xff7e
mov word [ebp - 0x18], 0xff98
mov word [ebp - 0x16], 0xffa5
mov word [ebp - 0x14], 0xffa1
mov word [ebp - 0x12], 0xff98
mov word [ebp - 0x10], 0xff9f
cmp edx, esi
jne 0x10003637
mov ebx, ebx
je 0x10003637
loope 0x10002f87
out dx, eax
lodsb al, byte [esi]
shl dword [edi], 1
sub ch, cl
and al, dl
mov dl, 0xa0
fisubr dword [esi + edi*4 + 0x43a0292]
cmp dh, ah
mov eax, dword [0x66d50ddf]
xchg esi, eax
clc
outsb dx, byte [esi]
xor al, 0x7a
mov eax, 0xb08ac724
pushfd
aam 0xcb
sbb ch, byte [eax + 0x12]
xchg ebp, eax
dec eax
ja 0x1000304b
mov esi, 0xed832250
sal dword [eax], 1
cmpsb byte [esi], byte es:[edi]
imul dword [ebx]
dec ecx
sbb byte [ebx - 0x12a85f0e], dl
and al, 0xb6
cmp bl, byte [0xe36a6566]
and ah, cl
in eax, dx
xor al, 0xf4
fisubr dword [esi]
jo 0x10002fe8
adc dword [ebx], 0x70
ja 0x10003017
xchg edi, eax
mov esi, 0x45c7667b
mov word [ebp - 0xa], 0
inc ebp
test byte [eax], 0
mov dword [ebp - 0x36], 0x900163ba
cmp esi, edi
jne 0x1000319b
mov ecx, ecx
je 0x1000319b
and esi, esp
and byte [ebx + 0x58943930], dl
into
jns 0x1000306b
inc edi
jo 0x10003071
inc esp
leave
mov dl, 0xf9
add al, 0x91
and dword [ebx], esi
add eax, 0x7b3424a2
xor al, 0x7b
out dx, al
xor ch, byte [ecx + ebx*8 + 1]
xor byte [edx], 0x3d
mov esi, 0xb93b76d4
inc eax
pop ecx
adc al, 0xe4
test eax, 0x3811c49
push ecx
pop es
pinsrw mm5, eax, 0xdb
pushfd
sub dword [ebx - 0x71], ecx
retf
dec ebx
invalid
loopne 0x10003095
cmp dword [ebx + 0x45c7f909], 0xffffffc2
add byte [eax], al
add byte [eax], al
mov dword [ebp - 0x3e], 0
cmp ebp, ebx
jne 0x1000323d
mov ecx, ecx
je 0x1000323d
in al, 0xb9
xchg ebp, eax
mov ebp, 0x88debede
inc ebx
enter 0xffffffffffffffb3, 0xffffffffffffff85
cmp al, 0xcd
adc byte [ecx - 0x7dcc3ff3], 0x2c
fstp xword [eax + 0x44214908]
add eax, 0xa55969e3
cmp eax, 0x47e468f
sti
mov byte [ebx - 0x38], al
mov bl, 0xff
test dword [ecx*8 - 0x3ff26e7e], edi
xor eax, dword [edx + 0x8b8db2c]
dec ecx
and dword [ebp + eax - 0x1d], eax
imul ebx, dword [ecx - 0x5b], 0x7e468f3d
add al, 0xfb
adc al, 7
ret
lea eax, [ebp - 0x36]
push eax
cmp ecx, esi
jne 0x100037a8
mov edx, edx
je 0x100037a8
out dx, eax
or dword [esi + 0x69], ebp
xor eax, 0xc7f337be
adc bl, dh
sbb eax, edi
and byte [esi + 0x2f], 0x2c
js 0x10003126
xor dword [esp + esi*2 + 0x52ab0be0], edi
mov byte [edi], bl
mov ecx, 0x1c40459
or ebp, dword [ebx - 0xde077ae]
mov ecx, 0x1c40459
aaa
test byte [edi + 0x10a83b7c], ch
or edi, dword [edi - 0x7b4d998f]
popfd
salc
ret
add byte [ecx - 0x17], bl
xlatb
add dword [eax], eax
add byte [ebx], bh
fimul word [edi]
test dword [esi - 0x74fffffe], edx
test byte [ebx - 0x737bf00a], 2
add byte [eax], al
xor bl, bl
int 0x47
loope 0x10003178
jmp 0x10003304
or bh, dh
xchg esi, eax
call 0x4c22d864
inc ebp
xchg edx, eax
or dword [ebx + 0x3b], eax
fidivr word [edx]
scasd eax, dword es:[edi]
call 0xcfd0a7e0
and byte [eax - 0x5355cf96], bl
mov eax, dword [0x7980f2f6]
fisttp word [ebx + 0x31738371]
leave
outsb dx, byte [esi]
test dword [ebx], edx
jp 0x100030fd
push 0xe117aba3
and edi, dword [esi + 0x4b]
dec ebx
pop ss
xlatb
jge 0x1000317c
jmp [eax]
sub byte [ebx - 0x254cd3e6], al
cmp ecx, dword [ecx - 0x3b]
mov edi, dword [edi + edi*2 + 0x14]
or eax, 0x842347e6
iretd
mov dword [ebp - 0x32], 0x9e025dba
mov dword [ebp - 0x2e], 0x6d1966cf
mov dword [ebp - 0x2a], 0x2b9ff46e
mov dword [ebp - 0x4e], 0x7c1459b5
mov dword [ebp - 0x4a], 0x6d0363e0
mov dword [ebp - 0x46], 0x911258d2
mov dword [ebp - 0x42], 0x2ba067e1
mov dword [ebp - 4], 0
cmp eax, esi
jne 0x10003077
mov ebp, ebp
je 0x10003077
or al, 0x95
invalid
push 0xcd
push 8
lea eax, [ebp - 0x1a]
push eax
cmp ebx, edx
jne 0x100036ab
mov eax, eax
je 0x100036ab
stosb byte es:[edi], al
cmp al, 0x64
invalid
mov word [ebp - 0xc], 0xff65
cmp ebp, edi
jne 0x10003376
mov ebx, ebx
mov ebx, ebx
je 0x10003376
push ebp
inc ebx
mov esp, 0x55f46b1a
inc ecx
mov dl, 0x6f
sbb esi, dword [ebp + edi*2 + 0x2aa1a240]
sbb al, 0x14
test byte [ebx - 0x42], dh
push es
add dl, byte [esi - 0x2f]
cmpsd dword [esi], dword es:[edi]
out 0x1d, eax
hlt
mov ecx, dword [ebp - 0x1e]
cmp ecx, dword [ebp - 0x3a]
jne 0x1000354b
cmp dword [ebp - 4], 0
je 0x10003314
cmp dword [ebp - 0x3e], 0
jne 0x100034b9
cmp ebx, edx
jne 0x100034b4
mov ecx, ecx
je 0x100034b4
test byte [esi + 0x55], dl
sbb byte [ecx + esi*8], dh
xor ebp, edi
cmp byte [edx], bl
int1
xchg dword ds:[0xbfe31157], ebp
stosd dword es:[edi], eax
mov edx, 0x70697aa4
push esi
dec ecx
dec esp
pop ds
push ecx
iretd
cmp ebp, ebx
jne 0x10003015
mov ebp, ebp
mov ebp, ebp
je 0x10003015
adc cl, byte [esi]
invalid
push eax
mov dh, 0x9c
fnstcw word [ecx + esi*4 + 0x340e9d67]
add ebp, dword [eax]
sub esi, edi
push ecx
adc ah, byte [edx]
cmpsd dword [esi], dword es:[edi]
cmpsb byte [esi], byte es:[edi]
mov esi, 0xa43478a5
and byte [esi - 0x7418801c], al
dec ebp
fimul dword [ebx + 0x5103c255]
sbb byte [ecx - 0x6c43dab], cl
invalid
mov ecx, dword [ebp - 0x26]
mov edx, dword [ebp - 0x3e]
add edx, dword [ecx + 0x18]
mov dword [ebp - 0x3e], edx
cmp edi, ecx
jne 0x100030d2
mov ebp, ebp
je 0x100030d2
inc esi
xchg esp, eax
loope 0x100033ae
sbb eax, 0x34dcb4c7
jns 0x100033bb
push edi
dec esp
pop es
inc edi
ret 0x4dd9
mov dword [ebp - 8], eax
mov esi, esi
lea ecx, [ebp - 0x1a]
push ecx
mov edx, dword [ebp - 8]
push edx
call fcn.10003a55
add esp, 8
mov dword [ebp - 0x22], eax
cmp dword [ebp - 0x22], 0
jne 0x100037d6
mov ecx, ecx
mov eax, dword [ebp - 0x26]
mov ecx, dword [eax + 0x18]
mov dword [ebp - 8], ecx
cmp edx, ecx
jne 0x100034d1
mov eax, eax
mov eax, eax
je 0x100034d1
out 0xed, al
or esi, esi
lodsb al, byte [esi]
aaa
fisubr word [edi + 0x4d6f44a3]
push ecx
lodsd eax, dword [esi]
mov esi, 0xdce79085
add ch, byte [eax - 0x70]
inc esi
cmc
mov byte [0xaf4c54d3], al
int 0x41
sti
js 0x10003477
test al, 0x38
clc
xchg esp, eax
invalid
or eax, 0xffffffff
jmp 0x100034cd
mov edx, dword [ebp + 0x10]
mov eax, dword [ebp - 4]
mov dword [edx], eax
mov eax, eax
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp - 0x3e]
mov dword [ecx], edx
xor eax, eax
mov esp, ebp
pop ebp
ret
mov edi, edi
cmp edi, ebp
jne 0x10003845
mov ebp, ebp
je 0x10003845
lcall 0xef21, 0x53dafac4
arpl word [edx], di
fidiv dword [ebx + 0x41a3f4a5]
aas
push eax
fidivr word [edi]
pop esp
xchg byte [eax + 0x1d90bca0], dl
clc
in eax, 0x5b
sub ah, cl
stosd dword es:[edi], eax
xor dword [esi], eax
dec esi
std
lcall 0x1f72, 0x3cf0124f
call dword [edx + 0x46084258]
xor dl, bh
jne 0x10003567
push ss
push edx
jne 0x10003561
jno 0x10003578
cli
fidiv word [0xc389132c]
push esp
pushfd
adc dl, bh
rol byte [edi - 0x73], 1
push ebp
mov dl, 0x52
lea edx, [ebp - 0x4e]
push edx
call fcn.10001d7c
add esp, 0xc
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
add ecx, 0xc
mov dword [ebp - 0x3a], ecx
mov edx, dword [ebp - 0x3a]
mov eax, dword [edx]
mov dword [ebp - 0x1e], eax
mov ecx, dword [ebp - 0x1e]
mov dword [ebp - 0x26], ecx
mov edx, dword [ebp - 0x26]
mov eax, dword [edx + 0x30]
cmp eax, edi
jne 0x1000343c
dec dword [ebx + 0xfdb8bdb]
test bl, dl
invalid
mov ebx, ebx
mov ebx, ebx
je 0x1000343c
invalid
lcall 0x289b, 0xc03283de
mov edx, 0x74fa4a50
inc eax
jns 0x1000355e
stc
int 0x54
outsb dx, byte [esi]
push eax
imul esi, dword [ebp + 0x22], 0x16
xlatb
sbb dword [ecx + ebx*4 - 0x3e], esi
aaa
and byte [ecx + esi*8], al
inc edi
lea eax, [esi + 0x37]
dec ebp
nop
mov ch, 0xaa
push 0x7c
xchg esi, eax
inc ebp
test dword [ecx], ecx
pop edx
mov dword [edi + 0x5b], esi
jo 0x10003592
mov dh, 0x2b
stc
je 0x10003620
invalid
push 4
lea ecx, [ebp - 0x36]
push ecx
call fcn.10001d7c
add esp, 0xc
push 0xd4600b92
push 4
cmp eax, esi
jne 0x1000352b
mov edi, edi
mov edi, edi
je 0x1000352b
wait
mov bh, 0xb
jne 0x10003590
push eax
dec eax
sub ch, 4
push es
cmp eax, eax
push edx
int1
inc edx
push edx
call 0x3c6852a2
nop
pushfd
add ch, byte [esi + ecx - 0x7e]
shl byte [ebp - 0x5e], cl
dec edx
mov bl, 0x85
dec ebx
cmp eax, 0x6e9e9bc9
cmp dword [ecx + 0x1d], 0x62d1d248
sbb eax, 0x62d1d248
adc eax, 0x79d49601
sub dl, 0xe
stosb byte es:[edi], al
mov bh, 0xd
push esi
adc ebp, esi
mov eax, 0xcf09342a
cmp bl, byte [ebx]
popfd
mov esi, 0xfabef2d6
aaa
add al, 0xb6
mov ah, 0xd8
invalid
cmp eax, dword [eax + 0x42]
test cl, 0x19
invalid
mov word [ebp - 0xe], 0xff66
cmp eax, edx
jne 0x10003293
mov ecx, ecx
mov ecx, ecx
je 0x10003293
push edx
jb 0x10003605
dec ebp
jnp 0x100036a1
sub dword [eax], esi
pop ds
movsd dword es:[edi], dword [esi]
xchg byte [ecx + 0x5626f94c], dl
js 0x1000362d
pushal
lds esi, [eax]
jnp 0x100036d2
pop ss
mov dh, 0xc3
mov ss, ebx
in al, 0xa5
inc edx
rcr byte [esi - 0x6f], cl
mov al, byte [0x1025ab2b]
cmp byte [ebx - 0x7f21cdd6], bh
xchg ebp, eax
ja 0x10003697
les esi, [ecx + 9]
cmp cl, dl
test dh, dh
jmp 0x100036bf
inc ebx
jmp 0x5921ecaf
mov dword [0xb599583b], eax
sbb dword [edx], ebx
lea edx, [edx + 0x4a]
call int.1000389c
add esp, 0xc
push 0xd4600b92
cmp ebx, ecx
jne 0x100035b1
dec dword [ebx + 0xfc08bc0]
test bh, ah
invalid
mov eax, eax
mov eax, eax
je 0x100035b1
ror byte [edi], 0x84
out 0xfe, eax
invalid
pop ecx
inc ebp
dec eax
xchg edx, eax
movsd dword es:[edi], dword [esi]
pop ss
mov cl, 0xc2
push ds
outsb dx, byte [esi]
dec edi
jg 0x100036c3
in al, dx
mov cx, 0x3651
in al, dx
ret 0xd34a
or eax, 0xbd5e6700
or byte [ebx + 0x29], 0xc1
xchg ecx, eax
invalid
lea edx, [ebp - 0x4e]
push edx
mov eax, dword [ebp - 8]
push eax
call fcn.10005323
add esp, 8
mov dword [ebp - 0x3e], eax
mov ecx, ecx
cmp dword [ebp - 0x3e], 0
jne 0x100033cb
cmp ebp, ebx
jne 0x10003128
mov edx, edx
mov edx, edx
je 0x10003128
inc dword ds:[ebx - 0x1d]
cmp edi, 0xffffffd3
das
rcr eax, cl
insd dword es:[edi], dx
add byte [ebx + 0x539f0266], bl
lahf
push ebx
leave
mov ch, 0x82
loopne 0x10003767
daa
loope 0x100036fe
adc bl, cl
jns 0x1000376f
inc ebx
popal
pop edi
cmp bh, byte [esi - 0x62]
adc edx, dword [esi]
pop ds
loope 0x1000378e
cmp byte [ebx - 0x61339ebe], al
mov byte [0x40bf024f], al
adc al, 0x81
sbb byte [edx - 0x48], ch
cmpsb byte [esi], byte es:[edi]
je 0x24e66e25
les ebx, [ebx + 0x6037e1d1]
adc eax, 0x4d8bf9e1
fimul dword [ebx - 0x17ade7af]
outsd dx, dword [esi]
sbb eax, dword [eax]
add byte [ebx + 0x458908c4], al
cld
mov ecx, dword [ebp - 0x26]
mov edx, dword [ecx + 0x18]
push edx
call fcn.10005323
add esp, 8
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
jne 0x100037c5
jmp 0x10003304
mov eax, dword [ebp - 0x26]
mov ecx, dword [ebp - 4]
add ecx, dword [eax + 0x18]
mov dword [ebp - 4], ecx
jmp 0x10003304
mov edx, dword [ebp - 0x1e]
mov eax, dword [edx]
mov dword [ebp - 0x1e], eax
cmp ebx, ebp
jne 0x100032f8
mov eax, eax
mov eax, eax
je 0x100032f8
mov edi, 0xb59fe6cf
test byte [ebx], 0xfa
wait
test byte [ecx + 0x32], al
mov dl, 0x8d
in al, 0xfc
adc ch, dl
sub esi, ecx
mov ebp, 0x8831a1ea
lea esi, [eax + ecx]
cmp dword [ebx], ecx
xor al, 0x31
fimul word [0x319eba84]
not byte [ebx + 0x46c56a52]
dec ebp
mov eax, dword [0xba7bc384]
jmp 0x1c81126a
cmp ebx, edx
jne 0x1000372e
mov esi, esi
mov esi, esi
je 0x1000372e
mov dh, 0xf8
inc ecx
shr byte [edi + eax*2], cl
and esp, dword [ebx + 0x47]
and dl, ch
and dl, byte [edi + 0x4a]
fsubr qword [eax - 0x43617989]
les bp, [edx + 0x51]
xor ebp, ebx
push ebx
pop ebx
outsb dx, byte [esi]
cmp al, 0x22
cpuid
xor ecx, dword [ebp + ebp*8 + 0x49]
jb 0x1000385e
arpl word [edi + 0x20], ax
ljmp 0x77a8
nop
push esp
dec ebx
js 0x100038e9
ljmp 0xa60c:0x4c7f82a5
add ch, dl
test byte [esi - 0xf], bl
pop edx
enter 0xffffffffffffd6fb, 0xffffffffffffffd0
xchg dword [ebp + 0x7b], esi
sbb dword [edi + 0x1d], esp
out dx, eax
inc edx
mov eax, 0xba14864f
xchg ebx, eax
fsubr qword [esi]
salc
dec esi
xchg edi, eax
enter 0xffffffffffff8c9e, 0xffffffffffffff9b
cmp dword [esi - 0x382e50b], edi
xchg edi, eax
arpl word [edx + 0x524a8f73], di
or dl, byte [0xc0fc6bb3]
adc eax, 0xf68bb456
mov edx, dword [ebp - 4]
cmp ecx, ebx
jne 0x10003994
mov esi, esi
mov esi, esi
je 0x10003994
nop
in al, 0xef
sbb dl, dl
dec esi
xchg ebx, eax
ja 0x1000397f
test byte [edi], bl
xchg edi, eax
fistp word [ebx - 0x31d23634]
and al, byte [esp + ebp - 0x77b742a2]
insd dword es:[edi], dx
leave
bound edi, qword [edi]
inc ebx
cmp dword [ebx + 0x7d44c8dc], esp
rol byte [ebp + 0x4bdb93f2], 1
cmp eax, 0xa91ee539
jmp 0x5730fdeb
dec ebx
mov cl, 0xc3
and byte ds:[ecx - 0x495c8dfe], bl
sub bl, cl
pushal
mov dword [0x60cb28b6], eax
jns 0x100039b6
jge 0x10003987
add dl, dl
seto byte [ebx]
push ebp
or al, 0x73
inc eax
cmp edx, dword [ebp + 0xc]
jae fcn.100039d9
mov eax, dword [ebp - 4]
mov ecx, dword [ebp + 8]
lea edx, [ecx + eax*2]
mov dword [ebp - 8], edx
mov edi, edi
mov eax, dword [ebp - 8]
movzx ecx, word [eax]
movzx edx, byte [ebp + 0x10]
add ecx, edx
mov eax, dword [ebp - 8]
mov word [eax], cx
mov ebx, ebx
mov ecx, dword [ebp - 4]
mov edx, dword [ebp + 8]
mov eax, dword [ebp - 8]
mov ax, word [eax]
mov word [edx + ecx*2], ax
mov ecx, dword [ebp - 4]
add ecx, 1
mov dword [ebp - 4], ecx
jmp 0x10003923