Function at 0x5f1e6aa8
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
mov dword [ebp - 0xc], edx
push edi
mov edi, dword [0x639e013c]
mov al, byte [esi]
cmp al, 0x6d
je 0x5f1e6ac6
cmp al, 0x4d
jne 0x5f1e6adf
push 5
lea eax, [esi + 1]
push 0x6332b5b0
push eax
call edi
add esp, 0xc
test eax, eax
jne 0x5f1e6adf
mov esi, 0x6332b5c0
mov al, byte [esi]
cmp al, 0x63
je 0x5f1e6ae9
cmp al, 0x43
jne 0x5f1e6b0c
cmp byte [esi + 1], 0x3a
jne 0x5f1e6b0c
cmp byte [esi + 2], 0x5c
jne 0x5f1e6b0c
push 0x11
lea eax, [esi + 3]
push 0x6332b85c
push eax
call edi
add esp, 0xc
test eax, eax
jne 0x5f1e6b0c
add esi, 0x14
mov dl, byte [esi]
xor ecx, ecx
mov eax, esi
mov byte [ebp - 1], cl
jmp 0x5f1e6b23
cmp dl, 0x2e
jne 0x5f1e6b20
mov byte [ebp - 1], 1
inc eax
mov dl, byte [eax]
test dl, dl
jne 0x5f1e6b17
jmp 0x5f1e6b35
mov dl, byte [eax]
cmp dl, 0x20
je 0x5f1e6b35
cmp dl, 0x2e
jne 0x5f1e6b3a
dec eax
cmp eax, esi
jae 0x5f1e6b29
sub eax, esi
inc eax
je 0x5f1e6b4a
cmp byte [ecx + esi], 0
je 0x5f1e6b4a
inc ecx
cmp ecx, eax
jb 0x5f1e6b3f
push ecx
mov edx, esi
call 0x5f1e6c5b
cmp byte [ebp - 1], 0
mov ebx, eax
pop ecx
jne 0x5f1e6c4a
mov edi, 0x6332b5b8
mov eax, edi
and eax, 3
jne 0x5f1e6b6f
xor ecx, ecx
jmp 0x5f1e6b74
push 4
pop ecx
sub ecx, eax
push 4
pop esi
sub esi, ecx
push 4
and esi, 0xfffffff8
pop edx
sub edx, esi
sub edx, ecx
mov dword [ebp - 8], edx
test ecx, ecx
je 0x5f1e6ba2
movzx eax, byte [edi]
xor eax, ebx
shr ebx, 8
and eax, 0xff
xor ebx, dword [eax*4 + 0x633263b0]
inc edi
dec ecx
jne 0x5f1e6b8a
shr esi, 3
test esi, esi
je 0x5f1e6c2e
mov edx, dword [edi + 4]
mov ecx, edx
xor ebx, dword [edi]
mov eax, edx
shr eax, 8
add edi, 8
shr ecx, 0x10
and eax, 0xff
and ecx, 0xff
mov ecx, dword [ecx*4 + 0x63325fb0]
xor ecx, dword [eax*4 + 0x63325bb0]
mov eax, ebx
shr eax, 0x10
and eax, 0xff
xor ecx, dword [eax*4 + 0x63324fb0]
mov eax, ebx
shr eax, 8
and eax, 0xff
xor ecx, dword [eax*4 + 0x63324bb0]
mov eax, edx
shr eax, 0x18
xor eax, dword [eax]
add bl, byte [0x4e4d430a]
loop 0x5f1e6c09
add byte [eax], al
add byte [eax], dl
rol byte [esi + 0x52005c89], 1
add byte [ebp], al
inc edi
add byte [ecx], cl
push ebx
add byte [eax + eax + 0x52], dl
add byte [ecx], bl
pop esp
add byte [ebp], cl
inc ecx
add byte [ebx], al
dec eax
add byte [ecx], cl
dec esi
add byte [ebp], al
pop esp
add byte [ebx], dl
dec edi
add byte [esi], al
push esp
add byte [edi], dl
inc ecx
add byte [edx], dl
inc ebp
add byte [eax + eax + 0x43], bl
add byte [eax + eax + 0x61], ch
popal
add byte [ebx], dh
jae 0x5f1e6c50
add byte gs:[ebx], dh
pop esp
add byte [esi], al
outsd dx, dword [esi]
add byte [eax + eax + 0x64], ch
add byte [ebp], ah
jb 0x5f1e6c62
pop esp
add byte [ebx], dl
push 0x6c006500
add byte [eax + eax + 0x45], ch
add byte [eax], bh
pop esp
add byte [eax + eax + 0x72], al
add byte [ecx], ah
add byte [si], al
jb 0x5f1e6c80
outsd dx, dword [esi]
add byte [eax], dh
dec eax
add byte [ecx], ah
outsb dx, byte [esi]
add byte [eax + eax + 0x6c], ah
add byte [ebp], ah
jb 0x5f1e6c92
jae 0x5f1e6c94
pop esp
add byte [ebx], bh
inc edx
add byte [eax + eax + 0x34], al
add byte [edi], dh
add byte [edx], dh
add byte [esi], al
add byte ss:[eax], dh
add byte [0x37003200], ch
add byte [esi], al
inc ecx
add byte [0x31003100], ch
add byte [ebx], ah
add byte [0x38004200], ch
add byte [edx], al
xor al, 0
sub eax, 0x34003400
add byte [eax + eax], dh
xor al, 0
xor al, 0
xor eax, 0x33003500
add byte [0x30003400], dh
add byte [eax], dh
add byte [eax], dh
add byte [eax], dh
add byte [ebp], bh
je 0x5f1e6ce4
pop esp
add byte [eax], ch
sbb eax, 0x65000e02
add byte [ebp], ch
and byte [edx - 0x1ff77662], ch
or dword [ebp + ebp*2 + 0x57002e00], ecx
add byte [esi], cl
inc ebx
add byte [edx], dl
pop ecx
add byte [eax], al
add byte [edx + eax], al
add eax, 0x46744e0a
jae 0x5f1e6cc1
push ebp
pop ss
mov es, word [eax]
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add dh, dl
mov ebp, 0
add al, 0
mov ah, bh
inc ebx
lahf
inc ebx
dec ebp
push esi
popal
or dword [edx], eax
add eax, 0x536d4d0a
insd dword es:[edi], dx
mov byte [ebx], ch
je 0x5f1e6cca
add byte [ecx], al
add byte [eax], al
add byte [eax], al
or al, 0
add byte [eax], al
add byte [eax], al
add byte [eax], al
adc 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 cs
add dl, byte [eax]
push es
inc esi
push ebx
imul ebp, dword [ebp + 0x7f], 0x27000000
dec esi
push cs
add byte [ebp], ch
xor eax, dword [eax]
xor al, byte [eax]
pop esp
add byte [ebp], ah
js 0x5f1e6d74
popal
add byte [ebp], ch
jo 0x5f1e6d7a
insb byte es:[edi], dx
add byte [ebp], ah
jae 0x5f1e6d80
pop esp
add byte [ebp], ah
js 0x5f1e6d86
popal
add byte [ebp], ch
jo 0x5f1e6d8c
insb byte es:[edi], dx
add byte [eax], dh
add byte [esi], dh
add byte [eax + eax + 0x62], bl
add byte [ebp], dh
bound eax, qword [eax]
bound eax, qword [eax]
insb byte es:[edi], dx
add byte [ebp], ah
add byte [eax], al
bound eax, qword [eax]
jne 0x5f1e6da6
bound eax, qword [eax]
bound eax, qword [eax]
insb byte es:[edi], dx
add byte [ebp], ah
add byte cs:[ecx], ah
jae 0x5f1e6db4
insd dword es:[edi], dx
add byte [esi], ch
add byte [edi], dl
dec esi
add byte [ebx], al
push edx
add byte [ecx], bl
push esp
add byte [eax], al
add byte [eax], al
add byte [eax], al
add al, dl
adc al, bh
test byte [eax], al
add al, byte [eax]
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add byte [eax], dl
add al, byte [ebx]
push es
push eax
push ebx
je 0x5f1e6de3
add byte [eax], al
add byte [eax + eax], al
add byte [eax], al
add eax, 0x7e000000
out 0x87, eax
xor byte [ebx], al
add al, byte [ebx]
push ebx
push ebx
add byte fs:[ebx - 0x2c], ch
mov al, dh
mov ebp, 0x2008fe1
add byte [eax], al
adc al, 0
add byte [eax], al
xor byte [eax], al
add byte [eax], al
add al, byte [eax]
sbb al, 0
add dword [eax], eax
add byte [eax], al
adc dword [eax], eax
adc al, 0
add dword [eax], eax
add byte [eax], al
add dword [ecx], eax
add byte [eax], al
add byte [eax], al
add byte [eax], dl
add byte [eax], al
add byte [edx], al
add ah, al
add dword [ebx], ecx
add byte [eax], al
add byte [eax], al
add byte [eax + eax], dl
inc dword [ecx]
sldt word [ecx]
add dword [eax], eax
add byte [eax], al
add byte [eax], al
add eax, 0x12
add byte [eax], al
adc al, 0
add byte [eax], al
add al, byte [eax]
add dword [ecx], eax
add byte [eax], al
add byte [eax], al
add byte [ebx], al
add al, 0
add byte [eax], al
add byte [eax], al
sub byte [eax], al
inc dword [ecx]
sldt word [ecx]
push es
add byte [eax], al
add byte [eax], al
add byte [0x50], al
cwde
ret 0xe77