Function at 0x5d34d3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x60
mov eax, dword [0x10148050]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
movzx eax, word [edi + 0x66b6]
mov ecx, 1
mov dword [ebp - 0x14], eax
neg eax
push 3
push edi
mov dword [ebp - 0x58], edi
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x10], 0xffffffff
mov dword [ebp - 0xc], eax
mov dword [ebp - 8], ecx
call fcn.005d29b3
add esp, 8
cmp dword [edi + 0xbc], 0
je 0x5d3537
push 0x1010c090
call fcn.0057c111
add eax, 0x40
push eax
call fcn.00575bd4
add esp, 8
movzx eax, word [edi + 0x66b4]
mov ebx, 3
sub eax, ebx
mov dword [ebp - 0x1c], ebx
cmp eax, ebx
jle 0x5d3737
movzx eax, word [edi + 0x66b6]
mov esi, dword [edi + 0x65b0]
and ebx, 7
mov edx, esi
lea ecx, [ebx*4 + 2]
shr edx, cl
and edx, 1
add edx, 3
mov ecx, edx
and ecx, 1
lea ecx, [ecx + ebx*2]
add ecx, ecx
shr esi, cl
lea ecx, [eax - 3]
mov dword [ebp - 0x24], edx
and esi, 3
mov dword [ebp - 0x30], esi
cmp edx, ecx
jge 0x5d371e
mov edi, edi
imul eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x30]
add eax, edx
mov edx, dword [edi + 0x66e0]
lea ecx, [edx + eax*8]
movzx esi, word [ecx + esi*2]
xor edx, edx
mov dword [ebp - 0x38], edx
mov eax, 1
mov dword [ebp - 0x44], esi
lea esi, [eax*8]
mov edi, esi
neg edi
movzx ebx, word [edi + ecx + 2]
mov dword [ebp - 0x2c], ebx
movzx ebx, word [esi + ecx + 2]
mov dword [ebp - 0x28], ebx
mov ebx, dword [ebp - 0x30]
add esi, ebx
movzx esi, word [ecx + esi*2]
add edi, ebx
movzx edi, word [ecx + edi*2]
mov dword [ebp - 0x20], esi
mov esi, dword [ebp - 0x2c]
add esi, dword [ebp - 0x44]
mov ebx, dword [ebp - 0x20]
add esi, dword [ebp - 0x28]
lea eax, [eax + eax*2]
add esi, esi
sub esi, edi
sub esi, ebx
mov dword [ebp + edx - 0x54], esi
mov esi, edi
sub esi, dword [ebp - 0x44]
add eax, eax
mov edi, esi
sar edi, 0x1f
mov dword [ebp - 0x20], edi
mov edi, ebx
sub edi, dword [ebp - 0x44]
add eax, eax
mov dword [ebp - 0x40], edi
sar edi, 0x1f
mov dword [ebp - 0x4c], edi
mov edi, dword [ebp - 0x2c]
sub edi, dword [ebp - 0x28]
add eax, eax
mov dword [ebp - 0x3c], edi
sar edi, 0x1f
mov dword [ebp - 0x34], edi
mov edi, ecx
sub edi, eax
movzx eax, word [eax + ecx + 2]
sub eax, dword [ebp - 0x28]
movzx edi, word [edi + 2]
sub edi, dword [ebp - 0x2c]
mov dword [ebp - 0x48], eax
sar eax, 0x1f
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x34]
xor eax, dword [ebp - 0x3c]
mov ebx, edi
sar ebx, 0x1f
mov dword [ebp - 0x2c], ebx
mov ebx, dword [ebp - 0x20]
xor ebx, esi
mov esi, dword [ebp - 0x4c]
add eax, ebx
mov ebx, esi
xor ebx, dword [ebp - 0x40]
add eax, ebx
sub eax, dword [ebp - 0x34]
sub eax, dword [ebp - 0x20]
sub eax, esi
mov esi, dword [ebp - 0x2c]
xor esi, edi
mov edi, dword [ebp - 0x28]
xor edi, dword [ebp - 0x48]
lea eax, [eax + eax*2]
add esi, edi
sub esi, dword [ebp - 0x2c]
sub esi, dword [ebp - 0x28]
lea eax, [eax + esi*2]
mov dword [ebp + edx - 0x60], eax
mov eax, dword [ebp - 0x38]
inc eax
lea edx, [eax*4]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp + edx - 0x18]
test eax, eax
jg 0x5d35b6
mov edx, dword [ebp - 0x5c]
xor eax, eax
cmp dword [ebp - 0x60], edx
mov edi, ecx
setg al
mov edx, dword [ebp + eax*4 - 0x18]
mov eax, dword [ebp + eax*4 - 0x54]
add edx, edx
add edx, edx
add edx, edx
movzx esi, word [edx + ecx + 2]
sub edi, edx
movzx edx, word [edi + 2]
sar eax, 2
mov edi, eax
cmp si, dx
jae 0x5d36e8
cmp eax, edx
jl 0x5d36dc
mov edi, edx
cmp esi, edi
jg 0x5d36fa
cmp eax, edx
jl 0x5d36fc
mov eax, edx
jmp 0x5d36fc
cmp eax, esi
jl 0x5d36ee
mov edi, esi
cmp edx, edi
jle 0x5d36f6
mov eax, edx
jmp 0x5d36fc
cmp eax, esi
jl 0x5d36fc
mov eax, esi
mov edi, dword [ebp - 0x58]
mov edx, dword [ebp - 0x24]
mov word [ecx + 2], ax
movzx eax, word [edi + 0x66b6]
add edx, 2
lea ecx, [eax - 3]
mov dword [ebp - 0x24], edx
cmp edx, ecx
jl 0x5d3593
movzx ecx, word [edi + 0x66b4]
mov ebx, dword [ebp - 0x1c]
inc ebx
sub ecx, 3
mov dword [ebp - 0x1c], ebx
cmp ebx, ecx
jl 0x5d3557
movzx edx, word [edi + 0x66b4]
mov ebx, 1
dec edx
mov dword [ebp - 0x1c], ebx
cmp edx, ebx
jle 0x5d3855
lea esp, [esp]
mov edx, dword [edi + 0x65b0]
mov eax, ebx
and eax, 7
lea ecx, [eax*4]
mov esi, edx
shr esi, cl
and esi, 1
inc esi
lea ecx, [esi - 1]
and ecx, 1
lea ecx, [ecx + eax*2]
movzx eax, word [edi + 0x66b6]
add ecx, ecx
shr edx, cl
lea ecx, [eax - 1]
mov dword [ebp - 0x24], esi
and edx, 3
cmp esi, ecx
jge 0x5d3841
nop
mov ecx, dword [edi + 0x66e0]
imul eax, ebx
add eax, esi
lea esi, [ebp - 0x18]
lea eax, [ecx + eax*8]
mov ecx, 1
mov dword [ebp - 0x20], esi
lea esp, [esp]
lea esi, [ecx*4]
add ecx, ecx
mov ebx, edx
sub ebx, esi
movzx ebx, word [eax + ebx*2]
add esi, edx
movzx esi, word [eax + esi*2]
add ecx, ecx
add ebx, esi
add ecx, ecx
mov esi, eax
sub esi, ecx
movzx ecx, word [ecx + eax + 2]
movzx esi, word [esi + 2]
sub ebx, esi
sub ebx, ecx
movzx ecx, word [eax + 2]
lea ecx, [ebx + ecx*2]
sar ecx, 1
cmp ecx, 0xffff
jge 0x5d3802
test ecx, ecx
jns 0x5d37fa
xor ecx, ecx
jmp 0x5d3807
cmp ecx, 0xffff
jl 0x5d3807
mov ecx, 0xffff
mov word [eax + edx*2], cx
mov ecx, 2
sub ecx, edx
mov edx, ecx
mov ecx, dword [ebp - 0x20]
add ecx, 4
mov dword [ebp - 0x20], ecx
mov ecx, dword [ecx]
test ecx, ecx
jg 0x5d37b3
movzx eax, word [edi + 0x66b6]
mov esi, dword [ebp - 0x24]
mov ebx, dword [ebp - 0x1c]
add esi, 2
lea ecx, [eax - 1]
mov dword [ebp - 0x24], esi
cmp esi, ecx
jl 0x5d3793
movzx edx, word [edi + 0x66b4]
inc ebx
dec edx
mov dword [ebp - 0x1c], ebx
cmp ebx, edx
jl 0x5d3753
movzx eax, word [edi + 0x66b4]
mov esi, 1
dec eax
mov dword [ebp - 0x1c], esi
cmp eax, esi
jle 0x5d3a12
lea ebx, [ebx]
mov eax, dword [edi + 0x65b0]
mov ebx, esi
and ebx, 7
lea ecx, [ebx*4 + 2]
mov edx, eax
shr edx, cl
and edx, 1
inc edx
mov ecx, edx
and ecx, 1
lea ecx, [ecx + ebx*2]
add ecx, ecx
shr eax, cl
mov ebx, 2
mov dword [ebp - 0x24], edx
and eax, 3
sub ebx, eax
movzx eax, word [edi + 0x66b6]
lea ecx, [eax - 1]
mov dword [ebp - 0x30], ebx
cmp edx, ecx
jge 0x5d39fe
jmp 0x5d38c6
mov edx, dword [ebp - 0x24]
imul eax, esi
add eax, edx
mov edx, dword [edi + 0x66e0]
lea esi, [edx + eax*8]
mov edx, dword [ebp - 0x14]
xor ecx, ecx
inc edx
mov dword [ebp - 0x38], ecx
cmp edx, ecx
jle 0x5d399f
movzx eax, word [esi + 2]
add eax, eax
mov dword [ebp - 0x28], eax
jmp 0x5d38f3
mov eax, ebx
lea edi, [edx*4]
sub eax, edi
movzx eax, word [esi + eax*2]
add edi, ebx
movzx ebx, word [esi + edi*2]
mov edi, eax
sub edi, ebx
add edx, edx
add edx, edx
mov dword [ebp - 0x2c], ebx
movzx ebx, word [esi + 2]
mov dword [ebp - 0x48], edi
add edx, edx
sar edi, 0x1f
mov dword [ebp - 0x34], edi
mov edi, esi
sub edi, edx
movzx edi, word [edi + 2]
movzx edx, word [edx + esi + 2]
mov dword [ebp - 0x4c], edi
sub edi, ebx
sub eax, dword [ebp - 0x4c]
mov ebx, edi
sar ebx, 0x1f
mov dword [ebp - 0x20], ebx
movzx ebx, word [esi + 2]
mov dword [ebp - 0x3c], edx
sub eax, dword [ebp - 0x3c]
sub edx, ebx
add eax, dword [ebp - 0x28]
mov ebx, edx
add eax, dword [ebp - 0x2c]
sar ebx, 0x1f
mov dword [ebp - 0x40], ebx
xor ebx, edx
mov edx, dword [ebp - 0x20]
xor edx, edi
add ebx, edx
mov edx, dword [ebp - 0x34]
xor edx, dword [ebp - 0x48]
mov dword [ebp + ecx - 0x54], eax
mov eax, dword [ebp - 0x38]
add ebx, edx
sub ebx, dword [ebp - 0x20]
inc eax
sub ebx, dword [ebp - 0x34]
mov dword [ebp - 0x38], eax
sub ebx, dword [ebp - 0x40]
mov dword [ebp + ecx - 0x60], ebx
mov ebx, dword [ebp - 0x30]
lea ecx, [eax*4]
mov edx, dword [ebp + ecx - 0x14]
add edx, dword [ebp + ecx - 0x18]
test edx, edx
jg 0x5d38f3
mov edi, dword [ebp - 0x58]
mov ecx, dword [ebp - 0x60]
mov eax, dword [ebp - 0x5c]
cmp ecx, eax
je 0x5d39b8
xor edx, edx
cmp ecx, eax
setg dl
mov eax, dword [ebp + edx*4 - 0x54]
sar eax, 1
jmp 0x5d39c1
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x50]
sar eax, 2
cmp eax, 0xffff
jge 0x5d39d7
test eax, eax
jns 0x5d39d0
xor eax, eax
jmp 0x5d39dc
cmp eax, 0xffff
jl 0x5d39dc
mov eax, 0xffff
mov ecx, dword [ebp - 0x24]
mov word [esi + ebx*2], ax
movzx eax, word [edi + 0x66b6]
mov esi, dword [ebp - 0x1c]
add ecx, 2
lea edx, [eax - 1]
mov dword [ebp - 0x24], ecx
cmp ecx, edx
jl 0x5d38c3
movzx eax, word [edi + 0x66b4]
inc esi
dec eax
mov dword [ebp - 0x1c], esi
cmp esi, eax
jl 0x5d3873
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0057371d
mov esp, ebp
pop ebp
ret