Function at 0x5f8936e3
Capabilities:
Encode data using xor

Disassembly:
dec ecx
and ebx, ebx
dec esp
mov esi, eax
dec esi
lea ecx, [edx + eax]
dec esp
mov dword [esp + 0x48], ecx
dec ebp
and esi, ebx
dec eax
sub ebp, ebx
dec ecx
sub eax, esi
dec esp
mov dword [esp + 0x50], esi
dec eax
mov dword [esp + 0x60], eax
jmp 0x5f893716
inc ecx
mov eax, dword [eax]
dec eax
cmp eax, ebx
jae 0x5f89371b
inc ecx
mov eax, dword [eax + 4]
dec esp
add eax, eax
dec ebp
cmp eax, ecx
jne 0x5f893707
inc ebp
xor ebx, ebx
dec ebp
cmp eax, ecx
je 0x5f893755
inc ecx
mov eax, dword [eax]
dec eax
cmp eax, ebx
jne 0x5f893755
inc ecx
mov ecx, dword [eax + 4]
dec eax
sub ecx, 8
dec eax
shr ecx, 1
je 0x5f893755
dec ecx
lea edx, [eax + 8]
movzx eax, word [edx]
and eax, 0xfff
dec eax
cmp eax, ebp
jae 0x5f893755
dec ecx
inc ebx
dec eax
add edx, 2
dec esp
cmp ebx, ecx
jne 0x5f89373c
dec eax
mov esi, dword [esp + 0x68]
mov ebx, dword [esp + 0x40]
dec esp
lea edi, [0xfffb1c9b]
mov edx, dword [esp + 0x44]
dec ebp
cmp eax, ecx
je 0x5f89395e
inc ecx
mov eax, dword [eax]
dec ecx
cmp eax, esi
ja 0x5f89395e
inc ecx
mov ecx, dword [eax + 4]
dec eax
lea eax, [ecx - 8]
dec eax
shr eax, 1
dec esp
cmp ebx, eax
jne 0x5f8937ab
dec esp
add eax, ecx
dec ebp
cmp eax, ecx
je 0x5f89395e
inc ecx
mov eax, dword [eax]
dec ecx
cmp eax, esi
ja 0x5f89395e
inc ebp
xor ebx, ebx
jmp 0x5f89377e
inc ecx
mov eax, dword [eax]
dec ecx
cmp eax, esi
jne 0x5f8937c9
inc ebx
movzx eax, word [eax + ebx*2 + 8]
and eax, 0xfff
dec eax
cmp eax, dword [esp + 0x60]
jae 0x5f89395e
mov ecx, 0xf000
dec ecx
mov eax, ebx
dec ecx
inc ebx
inc cx
test dword [eax + eax*2 + 8], ecx
je 0x5f893769
inc ebp
movzx ecx, word [eax + eax*2 + 8]
inc ecx
mov ebp, ecx
inc ebp
xor esp, esp
and ebp, 0xfff
inc ecx
add ebp, dword [eax]
dec ecx
add ebp, edi
dec esp
mov esi, ebp
dec ebp
sub esi, edx
je 0x5f893871
inc ebx
movzx eax, byte [esp + edx]
dec ecx
inc esp
add eax, 0x2ce293dd
add ebx, eax
add eax, edx
dec eax
imul eax, eax, 0x2ce293dd
dec eax
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0x58]
dec eax
shr eax, 0x20
lea edx, [ecx + eax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
dec eax
imul eax, eax, 0x2ce293dd
dec eax
mov dword [esp + 0x58], eax
dec eax
shr eax, 0x20
mov ecx, dword [esp + 0x58]
add ecx, eax
mov edx, ecx
imul edx, edx, 0xed2c
rol edx, 0xd
ror ecx, 0xd
xor edx, ecx
add ebx, edx
dec ebp
cmp esp, esi
jb 0x5f8937fc
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ebx
dec eax
mov eax, dword [ebp]
dec eax
mov dword [esp + 0x58], eax
inc ecx
shr ecx, 0xc
inc ecx
cmp ecx, 3
je 0x5f893894
inc ecx
sub ecx, 0xa
inc ecx
neg ecx
inc ebp
sbb edx, edx
inc ecx
add edx, 3
jmp 0x5f89389a
inc ecx
mov edx, 2
dec esp
mov ecx, esi
dec ecx
neg ecx
inc ecx
sub edx, 2
je 0x5f8938c2
inc ecx
cmp edx, 1
je 0x5f8938b2
dec ecx
or ecx, 0xffffffff
jmp 0x5f8938cd
dec ecx
add eax, ecx
inc ecx
mov ecx, 8
dec eax
mov dword [esp + 0x58], eax
jmp 0x5f8938cd
inc esp
add dword [esp + 0x58], ecx
inc ecx
mov ecx, 4
inc ebp
xor edx, edx
dec ebp
test ecx, ecx
je 0x5f89394b
inc edx
movzx eax, byte [esp + edx + 0x58]
dec ecx
inc edx
add eax, 0x2ce293dd
add ebx, eax
add eax, edx
dec eax
imul eax, eax, 0x2ce293dd
dec eax
mov dword [esp + 0x38], eax
dec eax
shr eax, 0x20
mov ecx, dword [esp + 0x38]
lea edx, [ecx + eax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
dec eax
imul eax, eax, 0x2ce293dd
dec eax
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x38]
dec eax
shr eax, 0x20
add ecx, eax
mov edx, ecx
imul edx, edx, 0xed2c
rol edx, 0xd
ror ecx, 0xd
xor edx, ecx
add ebx, edx
dec ebp
cmp edx, ecx
jb 0x5f8938d5
mov dword [esp + 0x44], edx
mov dword [esp + 0x40], ebx
dec esp
mov esi, dword [esp + 0x50]
dec ebp
lea edx, [ecx + ebp]
dec esp
mov ecx, dword [esp + 0x48]
jmp 0x5f893769
dec esp
mov ecx, dword [esp + 0xc8]
inc ebp
xor eax, eax
dec ebp
sub ecx, edx
dec eax
mov esi, dword [esp + 0xf8]
dec esp
mov edi, dword [esp + 0xe8]
je 0x5f8939f3
inc ebx
movzx eax, byte [eax + edx]
dec ecx
inc eax
add eax, 0x2ce293dd
add ebx, eax
add eax, edx
dec eax
imul eax, eax, 0x2ce293dd
dec eax
mov dword [esp + 0x38], eax
dec eax
shr eax, 0x20
mov ecx, dword [esp + 0x38]
lea edx, [ecx + eax*2 - 0x7fffffff]
sar ecx, 0x1f
btr ecx, 0x1f
sub edx, ecx
mov eax, edx
sar eax, 0x1f
btr eax, 0x1f
add eax, edx
dec eax
imul eax, eax, 0x2ce293dd
dec eax
mov dword [esp + 0x38], eax
mov ecx, dword [esp + 0x38]
dec eax
shr eax, 0x20
add ecx, eax
mov edx, ecx
imul edx, edx, 0xed2c
rol edx, 0xd
ror ecx, 0xd
xor edx, ecx
add ebx, edx
dec ebp
cmp eax, ecx
jb 0x5f89397e
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], edx
xor ecx, ecx
dec eax
mov eax, ecx
dec eax
inc ecx
and eax, 7
mov al, byte [esp + eax + 0x40]
mov byte [esp + ecx + 0x147], al
dec eax
cmp ecx, 0x10
jb 0x5f8939f5
mov eax, 0x875f702
inc esp
mov ebx, dword [esp + 0x148]
dec esp
mov esi, esi
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x150]
mov edx, dword [esp + 0x14c]
and dword [esp + 0x118], 0
and dword [esp + 0x11c], 0
dec ecx
mov ebx, edi
xor ebp, ebp
mov dword [esp + 0x110], eax
mov dword [esp + 0x138], eax
mov eax, dword [0xfffc1cab]
and dword [esp + 0x124], ebp
lea esi, [ebp + 0x40]
mov dword [esp + 0x100], eax
mov eax, dword [0xfffc1c98]
mov dword [esp + 0x114], eax
mov eax, dword [0xfffc1c8f]
mov dword [esp + 0x128], eax
mov eax, dword [0xfffc1c86]
inc esp
mov dword [esp + 0x104], ebx
mov dword [esp + 0x13c], eax
dec eax
lea eax, [esp + 0x160]
mov dword [esp + 0x108], edx
dec eax
sub ebx, eax
dec ebp
sub esi, edi
mov dword [esp + 0x10c], ecx
inc esp
mov dword [esp + 0x12c], ebx
mov dword [esp + 0x130], edx
mov dword [esp + 0x134], ecx
dec esp
mov dword [esp + 0xc8], esi
mov dword [esp + 0x120], ebp