Function at 0x4644f9
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x409362
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xd4
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x24], esi
mov dword [ebp - 0x20], ebx
mov esi, ecx
mov ebx, dword [ebp + 8]
mov dword [ebp - 0x2c], esi
mov dword [esi + 0x18], 0xf
xor eax, eax
mov dword [esi + 0x14], eax
mov byte [esi + 4], al
mov ecx, ebx
xor eax, eax
movzx edx, byte [ecx + eax]
test edx, edx
je 0x464555
movzx edx, byte [ecx + eax + 1]
add eax, 2
test edx, edx
jne 0x46453e
add eax, 0xffffffff
mov ecx, dword [esi + 0x18]
mov dword [ebp - 0x1c], esi
mov edi, eax
mov dword [ebp - 0x18], ebx
cmp ecx, 0x10
mov dword [ebp - 0x14], edi
jb 0x46456d
mov eax, dword [esi + 4]
jmp 0x464570
lea eax, [esi + 4]
cmp ebx, eax
jae 0x464b85
xor eax, eax
test eax, eax
je 0x4645c7
cmp ecx, 0x10
jb 0x464588
mov eax, dword [esi + 4]
jmp 0x46458b
lea eax, [esi + 4]
mov dword [ebp - 0x38], esi
sub ebx, eax
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x30], ebx
cmp eax, ebx
jae 0x4645ab
call 0xd4b056
mov esi, dword [ebp - 0x2c]
mov ebx, dword [ebp - 0x30]
mov eax, dword [esi + 0x14]
mov edx, eax
sub edx, ebx
cmp edi, edx
jb 0x4645b5
mov edi, edx
mov dword [ebp - 0x40], edi
jmp 0x46493d
mov dword [ebp - 0x3c], edi
cmp edi, 0xfffffffe
jbe 0x4645da
call 0xd4b017
mov esi, dword [ebp - 0x2c]
mov ecx, dword [esi + 0x18]
cmp ecx, edi
jb 0x464a95
test edi, edi
je 0x464a79
mov eax, dword [ebp - 0x3c]
test eax, eax
ja 0x464a2a
mov esi, dword [ebp - 0x2c]
mov edi, dword [ebp - 0x28]
mov ebx, dword [ebp - 0x20]
mov eax, esi
mov esi, dword [ebp - 0x24]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 4
or bl, byte [ebx + 0x73]
push ebx
lea ecx, [ebx - 0x67]
adc eax, eax
mov al, 0x56
xchg ebx, eax
ror dword [eax + 0x216720f7], 1
ror byte [ecx + 0x38ec8015], cl
and ebp, ebp
dec ebx
ret 0xaff6
push ecx
lds esi, [edi]
xor byte [ebp + 0x11], ch
int1
cmpsb byte [esi], byte es:[edi]
inc esi
add ch, ah
mov esi, dword [edi + 0x72]
or dword [eax + eax*4 + 0x708d40bb], eax
ja 0x464a42
fidivr dword [ebx + edi - 0x60]
inc esi
xor dword [eax + 0x7c05249], esi
in eax, 0xdf
adc edi, ebx
invalid
wait
push cs
push eax
jmp 0xd32d5e3
adc cl, ah
outsd dx, dword [esi]
sbb esi, dword [eax + 0x3dc6506a]
cmp al, byte [ecx]
inc esp
in al, 3
cdq
push 0xffffffffffffffeb
arpl sp, ax
loope 0x464a32
mov byte [0xe5e166fc], bl
sbb eax, 0xe5e166fc
dec ebp
imul esp, dword [esi], 0xffffffc3
wait
insd dword es:[edi], dx
call 0xb6ed311d
adc byte [esi - 0x73], 0x6d
mov bl, 0x76
push esi
mov bl, 0x4c
xchg byte [edi], bl
xor ch, byte [edx]
and dword [ebp + 0x32251b35], ecx
xchg ebp, eax
cli
call [ebp + 0x20e01c1a]
sar byte [edi], 1
xor edx, dword [edx + 0x42]
add byte [ecx - 0x62], 0x29
sar dword [eax + 0x5b], cl
call 0xe73fdb30
loopne 0x464aa9
adc dl, byte [edi + eax*2 - 0x38]
int1
hlt
into
mov al, 0x51
loope 0x464b82
mov al, 0xcf
invalid
inc esp
add byte [esi], ah
in al, dx
loop 0x464b2c
pop ebp
rcr byte [0x82e563d0], cl
pushal
aam 8
fisttp dword [eax]
add al, 0xa4
test dword [esi], esp
movsd dword es:[edi], dword [esi]
push ebp
mov bh, 0xdd
pop ebp
int1
mov ds, edi
shr byte [ecx], 1
inc eax
adc ah, byte [ecx - 0x7f864745]
xor dword [ecx + 0x51a2e33e], ebx
mov dh, 0x1a
sbb ecx, 0xfffffff7
and eax, 0x50d3ba32
add byte [edx - 0x49], bl
fistp word [ebx - 0x48]
mov ebx, 0x77645744
ficomp word [ebx + edi*8 - 0x70]
jno 0x464bd2
sub ch, byte cs:[eax + 0x25]
xchg byte [esi - 0x61], dl
dec eax
shr dword [edx + 0x170b43a0], 0x96
and eax, 0xf36d5258
mov eax, dword [0xca8188]
mov eax, dword [0xbbc2e7a]
invalid