Function at 0x46325a
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0xcf2552
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xcc
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], edi
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x14], ebx
mov edx, dword [ebp + 0x10]
movsx eax, byte [edx + 0x15]
mov dword [ebp - 0x20], ecx
test eax, eax
je 0x463385
push 0xd27f00
lea ecx, [ebp - 0x64]
call fcn.0046271e
mov dword [ebp - 4], 0
lea ecx, [ebp - 0x8c]
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], ecx
call 0xd166d7
mov dword [ebp - 4], 1
mov dword [ebp - 0x8c], 0xe442a8
lea esi, [ebp - 0x80]
xor eax, eax
mov dword [ebp - 0x68], 0xf
mov dword [ebp - 0x6c], eax
mov byte [ebp - 0x7c], al
mov ebx, dword [ebp - 0x50]
mov dword [ebp - 0x30], esi
test ebx, ebx
lea edi, [ebp - 0x64]
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x28], eax
jae 0x4632f9
call 0xd4927b
mov ebx, dword [ebp - 0x50]
lea eax, [ebp - 0x80]
lea edx, [ebp - 0x64]
cmp ebx, 0xffffffff
jbe 0x463309
mov ebx, 0xffffffff
mov dword [ebp - 0x3c], ebx
cmp eax, edx
je 0x463822
mov dword [ebp - 0x40], ebx
cmp ebx, 0xfffffffe
jbe 0x463324
call 0xd4923c
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x68]
cmp esi, ebx
jb 0x46371a
test ebx, ebx
je 0x4636fb
test ebx, ebx
ja 0x463698
mov dword [ebp - 4], 0
push 0xe4a780
mov eax, dword [ebp - 0x38]
lea edx, [ebp - 0x8c]
mov dword [eax], 0xe442cc
push edx
call 0xd16954
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x4c]
cmp eax, 0x10
jae 0x46368a
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x4c], 0xf
xor eax, eax
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x60], al
mov eax, dword [ebp + 0xc]
mov ebx, edx
test eax, eax
je 0x463d39
movsx eax, byte [edx + 0x15]
test eax, eax
je 0x4633a1
call 0xd166be
jmp 0x4633d9
mov eax, dword [edx + 8]
movsx ecx, byte [eax + 0x15]
test ecx, ecx
je 0x4633c0
mov ecx, dword [edx + 4]
movsx eax, byte [ecx + 0x15]
test eax, eax
je 0x463909
mov dword [ebp + 0x10], ecx
jmp 0x4633d9
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
jne 0x4633d6
mov eax, dword [eax]
mov edx, dword [eax]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x4633ca
mov dword [ebp + 0x10], eax
mov eax, dword [ebx]
movsx edx, byte [eax + 0x15]
mov edi, ebx
test edx, edx
je 0x4633ea
mov esi, dword [ebx + 8]
jmp 0x4633ff
mov edx, dword [ebx + 8]
movsx ecx, byte [edx + 0x15]
test ecx, ecx
je 0x4633f9
mov esi, eax
jmp 0x4633ff
mov edi, dword [ebp + 0x10]
mov esi, dword [edi + 8]
cmp edi, ebx
je 0x463c59
mov dword [eax + 4], edi
mov eax, dword [ebx]
mov dword [edi], eax
cmp edi, dword [ebx + 8]
jne 0x463417
mov ecx, edi
jmp 0x463434
mov ecx, dword [edi + 4]
movsx eax, byte [esi + 0x15]
test eax, eax
je 0x463c51
mov dword [ecx], esi
mov eax, dword [ebx + 8]
mov dword [edi + 8], eax
mov edx, dword [ebx + 8]
mov dword [edx + 4], edi
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x24], eax
mov eax, dword [eax + 4]
cmp ebx, dword [eax + 4]
je 0x463c49
mov eax, dword [ebx + 4]
cmp ebx, dword [eax]
je 0x463452
mov dword [eax + 8], edi
jmp 0x463454
mov dword [eax], edi
mov eax, dword [ebx + 4]
mov dword [edi + 4], eax
movzx eax, byte [edi + 0x14]
movzx edx, byte [ebx + 0x14]
mov byte [edi + 0x14], dl
mov byte [ebx + 0x14], al
movsx eax, byte [ebx + 0x14]
cmp eax, 1
je 0x463930
push ebx
call 0xd14f4f
pop ecx
mov edx, dword [ebp - 0x20]
mov eax, dword [edx + 8]
test eax, eax
je 0x46348c
add eax, 0xffffffff
mov dword [edx + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x14]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0xc
push dword [ebp - 0x60]
call 0xd14f4f
pop ecx
jmp 0x463373
mov ebx, dword [ebp - 0x30]
mov ecx, dword [ebx + 0x18]
cmp ecx, 0x10
jb 0x4636a8
mov ebx, dword [ebx + 4]
jmp 0x4636ab
add ebx, 4
mov edx, dword [ebp - 0x2c]
mov eax, dword [edx + 0x18]
cmp eax, 0x10
jb 0x4636bb
mov edx, dword [edx + 4]
jmp 0x4636be
add edx, 4
add edx, dword [ebp - 0x28]
push dword [ebp - 0x3c]
movzx eax, byte [ebp - 0x44]
mov byte [ebp - 0x48], al
push edx
push ecx
push ebx
call 0xd1699e
add esp, 0x10
mov ecx, dword [ebp - 0x3c]
mov eax, dword [ebp - 0x30]
mov dword [eax + 0x14], ecx
mov eax, dword [ebp - 0x30]
mov edx, dword [eax + 0x18]
cmp edx, 0x10
jb 0x4636ef
mov eax, dword [eax + 4]
jmp 0x4636f2
add eax, 4
mov byte [eax + ecx], 0
jmp 0x46333f
mov dword [ebp - 0x6c], 0
cmp esi, 0x10
jb 0x46370c
mov eax, dword [ebp - 0x7c]
jmp 0x46370f
lea eax, [ebp - 0x7c]
mov byte [eax], 0
mov ebx, dword [ebp - 0x40]
jmp 0x463337
mov edx, dword [ebp - 0x6c]
mov dword [ebp - 0xac], ebx
mov ecx, ebx
lea eax, [ebp - 0x80]
or ecx, 0xf
cmp ecx, 0xfffffffe
mov dword [ebp - 0x98], eax
mov dword [ebp - 0x94], edx
mov dword [ebp - 0xb0], ecx
mov dword [ebp - 0xa0], ecx
jbe 0x463756
mov dword [ebp - 0xb0], ebx
mov dword [ebp - 0xa0], ebx
jmp 0x46376d
mov ebx, ecx
mov ecx, esi
shr ecx, 1
mov eax, 0xaaaaaaab
mul ebx
shr edx, 1
cmp ecx, edx
ja 0x4637ff
mov dword [ebp - 0x9c], 0
mov dword [ebp - 4], 2
mov eax, dword [ebp - 0xb0]
add eax, 1
mov dword [ebp - 0xb0], eax
jne 0x463799
xor eax, eax
mov dword [ebp - 0xb0], eax
jmp 0x4637e0
mov ecx, eax
xor edx, edx
mov eax, 0xffffffff
div ecx
cmp eax, 1
jae 0x4637e0
mov dword [ebp - 0xbc], 0
lea eax, [ebp - 0xbc]
push eax
lea ecx, [ebp - 0xcc]
clc
outsb dx, byte [esi]
mov dl, 0xfd
add byte [ecx - 0x723d026e], 0xd2
mov al, 0xc2
jbe 0x463797
mov ebx, 0x63046b22
call 0x72604b84
int 0x72
dec ebp
sub dh, 0x24
lodsd eax, dword [esi]
shr ch, 1
lodsb al, byte [esi]
cmp eax, dword [edi - 0x68a191bb]
lodsb al, byte [esi]
loop 0x463819
int 0xca
in al, dx
inc ebp
cmp dh, ch
or eax, 0x1a438265
invalid
pop edi
fidivr word [ebp - 0x41]
pop es
insb byte es:[edi], dx
or al, 0x17
add edx, ecx
add dh, dl
mov dh, 0x87
xchg dword [esp + ecx*4], edx
and eax, 0x13f6bf40
adc ah, cl
pushal
or eax, dword [ebx + 0x344b996a]
pushal
sub dword [edx - 0x67], 0x4b
xor al, 0x60
invalid
or al, 0xc0
cmovbe ebx, dword [ecx]
add ch, dh
lodsd eax, dword [esi]
jnp 0x463819
sbb eax, 0x57bee69c
sbb al, 0x72
cmp eax, 0x7a003cf1
out dx, eax
add byte [edx - 0x11], bh
cmpsb byte [esi], byte es:[edi]
js 0x463836
cmpsb byte [esi], byte es:[edi]
or eax, 0x2df72e57
mov ecx, 0xb6df4785
inc byte [ecx - 0x1d]
wait
stc
aad 0x9a
loop 0x463869
cmpsb byte [esi], byte es:[edi]
sub dl, ch
invalid
pop esi
add byte [edi + 0x17f18cd0], bh
test eax, 0xd1694f9d
dec esp
or dword [ebp + 0x3679c08f], esp
adc byte [ebp + 0x53], bl
mov dword [0x1a7d1fa2], eax
stosd dword es:[edi], eax
enter 0xffffffffffffdf82, 0x6f
mov al, byte [0x4cdabdf2]
pop ds
adc dword [edx + 0x16e0f1cd], 0xffffffdd
mov ecx, 0xf9a861c0
cli
cmpsd dword [esi], dword es:[edi]
int3
stc
cmc
add al, 0x4d
add eax, 0x78b284a5
xor byte [eax - 0x1a9824ef], 0x4a
aad 0xf2
mov eax, 0x5d439f77
insb byte es:[edi], dx
or eax, 0x65a01a80
mov cl, byte [ebp + 0x76]
aad 0xd
or eax, 0xe97c33cc
inc ebx
frstor dword [ebx - 0x2d20565]
wait
cli
sub eax, 0x552a71fd
jno 0x463935
push ebp
cmp eax, 0xd2f5849d
inc ebx
cmp dword [esi - 0x226fc17e], 0x48725a67
popfd
test ch, dh
rol byte [ebx - 0x7f], cl
mov esi, 0xdd903e82
pop edx
jb 0x463964
cmp byte [eax], al
ficom word [esi + 0x230b6755]
jle 0x46398e
pop ecx
mov dl, 0x20
daa
jbe 0x46390d
mov esp, 0x719dd8f
fstp qword [ecx]
pop es
mov dword [ebx + 0x17], edi
pop ss
inc ecx
inc esp
stosb byte es:[edi], al
pop eax
and eax, 0x42c59078
sbb eax, 0xc682357a
loop 0x4638da
pop ecx
inc ecx
out 0x52, al
and edi, dword [ebp - 0x6216386f]
sub ah, byte [ebp + 0x3c]
jge 0x463938
ja 0x4639b1
mov dh, 0xa0
punpckhdq mm4, qword [0x58d3172]
adc al, 0x8d
mov ah, 0xf0
xor eax, 0xa120d299
xchg byte [esi - 0x7272b81b], al
add byte [eax + 0x7d], dh
ja 0x463905
std
add dword [ebx], edx
push eax
xor dword [ebp - 0x51], 0x75
fcmovbe st(0), st(5)
loopne 0x4639bd
mov byte [0xd788c3e9], al
dec edi
aas
adc al, 0x16
sub eax, 0x862567f
cmp ch, 0x15
dec esp
and al, 0x26
dec ebp
mov dl, byte [edx + 0x5c]
stosd dword es:[edi], eax
and bh, dl
invalid
push eax
mov ecx, 0x97d0dacd
sbb dword [edx + 0x761db269], esp
jns 0x463a31
cmp edi, esp
sub bl, byte [ecx + ebp*8 - 0x4f84fe79]
sbb eax, 0x54b090fd
adc ah, byte [ebx]
push ebx
wait
pushfd
jne 0x4639e2
dec eax
popfd
push ecx
hlt
arpl bp, bp
dec esi
mov ebp, 0xf2e65c9d
mov si, 0x184a
dec edx
push ebp
sub esi, esp
pushfd
mov ebp, 0xc347390d
arpl word [edi + edi*2], bp
xor al, dl
adc edx, dword [eax + 0x1d]
mov dh, 0xf6
pop ebx
cwde
pop ss
pop ebp
jbe 0x4639e5
mov byte [edi + 0x2bfe9f2], ch
lea ecx, [ebp - 0x633197ea]
push cs
cmp eax, 0xc1eb4aca
xchg dword [eax - 0x2a], edi
adc al, 0x2e
mov dl, cl
fld qword [ecx - 0x2e]
push edi
popal
add dl, ah
loop 0x463a51
mov esp, 0xd3c43c43
lodsb al, byte [esi]
mov dword [0x957d02bc], eax
popfd
mov esp, 0x9d957d02
adc dl, byte [esi + 0x7e]
push eax
xor edi, esp
pop edx
pushal
push eax
adc dword [eax - 0x72ea01dd], ebx
mov ebp, 0xe8ca42b8
fcmovnb st(0), st(3)
retf
lds ebx, [edx + 0x51dd5964]
sub al, 0xd
inc esi
jo 0x463a14
pushfd
dec ecx
mov fs, ecx
mov ah, 1
add ch, byte [ebp + 0x75]
fistp dword [ecx]
repne insd dword es:[edi], dx
jno 0x463a36
out 0xbf, eax
xchg ecx, eax
insb byte es:[edi], dx
inc ebx
ret 0x126b
wait
pop eax
mov eax, dword [0xa5345ec8]
movsb byte es:[edi], byte [esi]
pop ecx
mov ecx, 0x74f6f79
pop esp
and byte [ebp + 0x28], bl
mov cl, bl
or eax, 0x89e8491a
mov dl, 0xaf
out dx, eax
pop ebp
sub byte [edx + 0x491a0dcb], cl
call 0xeff5eeee
mov edi, 0x9d2e1b23
invalid
int3
pop ebp
mov ebp, 0x75b9dddc
jb 0x463d04
mov ecx, 0xfefc7275
and byte [ecx], bl
mov bl, 0x82
sal byte [edx], 1
mov al, 0x1a
fst qword [ebp + 0x2c]
or eax, 0x962d5b85
imul ebx, ebx, 0x863e337b
mov ecx, 0x5b8de85
mov ebp, 0xc4a0d825
popfd
or al, 0xf0
push cs
out dx, eax
sbb byte [ebp + 0x6a3d6d5f], 0x6a
lahf
jbe 0x463cc5
invalid
loop 0x463d66
sub al, 0xf1
int1
jns 0x463d81
adc byte [edx], 0xd
dec ebp
push 0xffffffffffffffea
xchg ebx, eax
sahf
jb 0x463d44
and dword [eax], 0x74
cli
push esp
or al, 0xd2
dec byte [eax + 0x7d]
inc edi
cwde
add dh, byte [edx + 0x1db91537]
pop ds
inc esi
mov byte [0x17bb5cef], al
cli
jae 0x463d00
add eax, 0xbfae3f55
mov bl, 0x1b
ret 0x39b9
push ebp
aas
scasb al, byte es:[edi]
mov edi, 0xb9c21bb3
cmp dword [esi + 0x6c312b22], ebx
nop
inc ecx
lodsd eax, dword ds:[esi]
jb 0x463d4c
retf 0x73ec
out 0x3b, eax
ljmp 0xa58f