Function at 0x46615c
Capabilities:
Encode data using xor

Disassembly:
push 0xafa92
call 0x46615c
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
imul esp, dword [ebp + 0x72], 0x6e
insb byte es:[edi], dx
xor esi, dword [edx]
insb byte es:[edi], dx
insb byte es:[edi], dx
add byte [edi + 0x65], al
je 0x466093
insd dword es:[edi], dx
jo 0x466093
popal
je 0x4660ae
inc ecx
add byte [ebx + 0x72], al
popal
je 0x4660b3
inc esi
imul ebp, dword [ebp + 0x41], 0x65724300
popal
je 0x4660bf
inc esi
imul ebp, dword [ebp + 0x4d], 0x69707061
outsb dx, byte [esi]
inc ecx
add byte [ebp + 0x61], cl
jo 0x4660c1
imul esp, dword [ebp + 0x77], 0x6946664f
insb byte es:[edi], dx
add byte gs:[ebp + 0x6e], dl
insd dword es:[edi], dx
popal
jo 0x4660d1
imul esp, dword [ebp + 0x77], 0x6946664f
insb byte es:[edi], dx
add byte gs:[ebx + 0x6c], al
outsd dx, dword [esi]
jae 0x4660ef
dec eax
popal
outsb dx, byte [esi]
insb byte es:[edi], dx
add byte gs:[edi + ebp*2 + 0x61], cl
popal
dec esp
imul esp, dword [edx + 0x72], 0x41797261
add byte [ebp + 0x78], al
imul esi, dword [eax + edx*2 + 0x72], 0x7365636f
jae 0x4660aa
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [esi + 0x32], dl
xor dh, byte [eax]
xor dword [ecx], esi
xor byte [0x452e3831], dh
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
push esi
xor dh, byte [edx]
xor byte [ecx], dh
xor dword [eax], esi
xor eax, 0x452e3831
push eax
inc ebp
add byte [eax], al
add byte [ebp + 0x6e], al
arpl word [edx + 0x79], si
jo 0x4661bf
push eax
inc ebp
pop edi
dec ecx
outsb dx, byte [esi]
imul esi, dword [eax + eax], 0xc10007b6
add dword [eax], eax
add byte [ebx + 0x458b5f5d], al
add byte [ebx - 0x7af0ff08], al
xchg dword [ecx], eax
add byte [eax], al
mov eax, ebp
add eax, 0x24
push eax
call dword [edi + ebp]
mov dword [ebp], eax
mov eax, ebp
add eax, 0x3e
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 8], eax
mov eax, ebp
add eax, 0x31
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 4], eax
mov eax, ebp
add eax, 0x4a
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 0xc], eax
mov eax, ebp
add eax, 0x87
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 0x1c], eax
mov eax, ebp
add eax, 0x6b
push eax
push dword [ebp]
jne 0x4661c1
call dword [edi + ebp + 4]
mov dword [ebp + 0x14], eax
mov eax, ebp
add eax, 0x5d
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 0x10], eax
mov eax, ebp
add eax, 0x94
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 0x20], eax
mov eax, ebp
add eax, 0x7b
push eax
push dword [ebp]
call dword [edi + ebp + 4]
mov dword [ebp + 0x18], eax
mov eax, ebp
add eax, 0x24
push eax
push 0x104
call dword [ebp + 4]
cmp eax, 4
jl 0x466318
add eax, ebp
add eax, 0x23
mov dl, byte [eax]
cmp dl, 0x5c
je 0x466221
inc eax
mov byte [eax], 0x5c
xor ecx, ecx
mov dl, byte [ecx + ebp + 0x129]
mov byte [ecx + eax + 1], dl
cmp dl, 0
je 0x466236
inc ecx
jmp 0x466223
mov eax, dword [ebp + 0x149]
cmp eax, 0
je 0x4662cc
push 0
push 0x80
push 4
push 0
push 0
push 0xc0000000
mov eax, ebp
add eax, 0x24
push eax
call dword [ebp + 8]
cmp eax, 0xffffffff
je 0x4662cc
push eax
push 0
mov ecx, dword [ebp + 0x149]
push ecx
push 0
push 4
push 0
push eax
call dword [ebp + 0xc]
cmp eax, 0
je 0x4662c9
push eax
mov ecx, dword [ebp + 0x149]
push ecx
push 0
push 0
push 0xf001f
push eax
call dword [ebp + 0x10]
cmp eax, 0
je 0x4662c6
push eax
mov ecx, dword [ebp + 0x14d]
mov esi, ebp
add esi, 0x152
add esi, ecx
mov ecx, dword [ebp + 0x149]
mov dh, byte [ebp + 0x151]
mov dl, byte [esi]
xor dl, dh
mov byte [eax], dl
inc esi
inc eax
dec ecx
cmp ecx, 0
jne 0x4662b5
call dword [ebp + 0x14]
call dword [ebp + 0x18]
call dword [ebp + 0x18]
mov eax, ebp
add eax, 0x24
push eax
call dword [ebp + 0x1c]
cmp eax, 0
je 0x466318
mov ebx, eax
mov eax, ebp
add eax, 0x13a
push eax
push ebx
call dword [edi + ebp + 4]
cmp eax, 0
je 0x466318
mov dword [ebp], eax
mov ebx, ebp
add ebx, 0x152
mov ecx, dword [ebp + 0x14d]
add ebx, ecx
mov ecx, dword [ebp + 0x149]
add ebx, ecx
push ebx
jmp 0x466316
call eax
push 0
call dword [ebp + 0x20]
into
invalid
jmp 0x514d67
pushal
jmp 0x514d6d
pushfd
jmp 0x514d7a
push dword fs:[0]
jmp 0x514d85
jmp 0x514d8e
jmp section.EPE1