Function at 0x1db1e60
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x65c
mov eax, dword [0x1e94008]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
mov ebx, edx
mov dword [ebp - 0x65c], eax
push esi
mov esi, ecx
mov dword [ebp - 0x620], ebx
push edi
mov ecx, dword [ebx + 0x9c]
xor edi, edi
mov eax, dword [ebx + 0x98]
mov edx, dword [ebx + 0x20]
mov dword [ebp - 0x63c], esi
mov dword [ebp - 0x62c], 0
lea eax, [eax + ecx*2]
movsx eax, word [eax*2 + 0x1e62efc]
mov dword [ebp - 0x60c], eax
mov eax, dword [ebx + 0xa0]
mov dword [ebp - 0x648], eax
cmp dword [esi + 0x2be0], edi
jle 0x1db1f1c
mov eax, dword [ebp + 0xc]
lea ebx, [esi + 0x1538]
nop dword [eax + eax]
mov eax, dword [eax + edi*4]
lea ebx, [ebx + 4]
imul edx, edx, 0xbb38435
shl eax, 0xa
add eax, dword [ebp - 0x60c]
add edx, 0x3619636b
mov ecx, edx
sar ecx, 0x1f
xor eax, ecx
sub eax, ecx
mov dword [ebx - 4], eax
mov eax, dword [ebp + 0xc]
add edx, dword [eax + edi*4]
inc edi
cmp edi, dword [esi + 0x2be0]
jl 0x1db1ee0
mov ebx, dword [ebp - 0x620]
lea eax, [esi + 0x1538]
mov dword [ebp - 0x630], eax
lea eax, [esi + 0x1cb8]
mov dword [ebp - 0x610], eax
mov eax, dword [esi + 0x2be0]
mov dword [ebp - 0x61c], eax
add eax, 0x121c
xor edi, edi
mov dword [ebp - 0x634], edi
lea eax, [esi + eax*2]
mov dword [ebp - 0x640], eax
lea eax, [esi + 0x1318]
mov dword [ebp - 0x64c], eax
mov eax, dword [esi + 0x2be8]
mov ecx, edi
sar ecx, 1
add eax, eax
shl ecx, 5
add ecx, 0x24
push eax
add ecx, ebx
lea eax, [ebp - 0x24]
push ecx
push eax
mov dword [ebp - 0x60c], ecx
call fcn.01e27b10
mov edx, dword [ebx + edi*4 + 0x10]
lea eax, [edi + 0xa]
lea eax, [eax + eax*4]
mov dword [ebp - 0x658], edx
mov ecx, 1
lea eax, [ebx + eax*2]
add esp, 0xc
mov dword [ebp - 0x644], eax
mov eax, dword [ebx + 0x9c]
cmp edx, ecx
mov dword [ebp - 0x608], eax
cmovg ecx, edx
call fcn.01db1d70
mov edx, dword [esi + 0x414]
mov ecx, 0x7fff
cmp eax, ecx
mov ebx, 0x10000
mov dword [ebp - 0x624], ebx
cmovl ecx, eax
mov dword [ebp - 0x628], ecx
cmp ecx, edx
je 0x1db1ff4
push ecx
call fcn.01db1c40
mov ebx, eax
add esp, 4
mov dword [ebp - 0x624], ebx
cmp dword [esi + 0x350c], 0
mov eax, dword [ebp - 0x608]
je 0x1db204d
cmp dword [esi + 0x3510], 0
jne 0x1db204d
cmp eax, 1
jne 0x1db204d
cmp edi, 2
jge 0x1db204d
mov eax, dword [ebp - 0x644]
xorps xmm0, xmm0
mov ecx, 0x1000
mov dword [ebp - 0x608], 0
movq qword [eax], xmm0
mov word [eax + 8], 0
mov word [eax + 4], cx
mov ecx, dword [ebp - 0x620]
mov eax, dword [esi + 0x2bb8]
mov dword [ecx + edi*4], eax
jmp 0x1db205b
test eax, eax
jne 0x1db21f5
mov ecx, dword [ebp - 0x620]
mov ecx, dword [ecx + edi*4]
xor eax, eax
cmp dword [ebp - 0x648], 4
mov dword [ebp - 0x62c], ecx
setge al
lea eax, [eax*2 + 1]
test edi, eax
jne 0x1db2186
mov ebx, dword [esi + 0x2be0]
mov edi, ebx
mov esi, dword [esi + 0x2be8]
sub edi, esi
sub edi, ecx
sub edi, 2
lea eax, [esi*4]
push eax
lea eax, [ebp - 0x424]
push 0
push eax
call fcn.01e05050
mov edx, dword [ebp - 0x60c]
mov eax, ebx
sar ebx, 2
sub eax, edi
imul ebx, dword [ebp - 0x634]
push esi
mov esi, dword [ebp - 0x63c]
push eax
lea eax, [ebp - 0x3e4]
lea eax, [eax + edi*2]
add ebx, 0x121c
push eax
add ebx, edi
lea eax, [ebp - 0x424]
push eax
lea ecx, [esi + ebx*2]
call fcn.01db98a0
mov ebx, dword [ebp - 0x628]
add esp, 0x1c
shl ebx, 0x10
cmp dword [ebp - 0x634], 0
jne 0x1db210f
mov eax, dword [ebp - 0x620]
sar ebx, 0xe
movsx eax, word [eax + 0x8c]
imul ebx, eax
mov eax, dword [ebp - 0x62c]
xor edi, edi
add eax, 2
test eax, eax
jle 0x1db21f5
mov eax, dword [ebp - 0x61c]
movzx edx, bx
sar ebx, 0x10
add eax, 0x105
mov dword [ebp - 0x60c], edx
lea eax, [esi + eax*4]
mov dword [ebp - 0x614], eax
mov eax, dword [esi + 0x2be0]
sub eax, edi
inc edi
movsx ecx, word [ebp + eax*2 - 0x3e6]
mov eax, ebx
imul edx, ecx
imul eax, ecx
sar edx, 0x10
add edx, eax
mov eax, dword [ebp - 0x614]
mov dword [eax], edx
sub eax, 4
mov edx, dword [ebp - 0x60c]
mov dword [ebp - 0x614], eax
mov eax, dword [ebp - 0x62c]
add eax, 2
cmp edi, eax
jl 0x1db2142
jmp 0x1db21f5
cmp ebx, 0x10000
je 0x1db21f5
lea eax, [ecx + 2]
mov dword [ebp - 0x60c], eax
test eax, eax
jle 0x1db21f5
mov edi, dword [ebp - 0x61c]
movzx eax, bx
mov dword [ebp - 0x618], eax
mov eax, ebx
sar eax, 0x10
add edi, 0x105
mov dword [ebp - 0x638], eax
lea edi, [esi + edi*4]
mov esi, dword [ebp - 0x60c]
mov ecx, dword [edi]
lea edi, [edi - 4]
movsx edx, word [edi + 4]
sar ecx, 0xf
mov eax, edx
imul eax, dword [ebp - 0x618]
inc ecx
imul edx, dword [ebp - 0x638]
sar ecx, 1
imul ecx, ebx
sar eax, 0x10
add ecx, eax
add ecx, edx
mov dword [edi + 4], ecx
sub esi, 1
jne 0x1db21c4
mov ebx, dword [ebp - 0x624]
mov esi, 0x10
mov edi, dword [ebp - 0x64c]
movzx eax, bx
mov dword [ebp - 0x60c], eax
mov eax, ebx
sar eax, 0x10
mov dword [ebp - 0x618], eax
nop word [eax + eax]
mov ecx, dword [edi]
lea edi, [edi + 4]
movsx edx, word [edi - 4]
sar ecx, 0xf
mov eax, edx
imul eax, dword [ebp - 0x60c]
inc ecx
imul edx, dword [ebp - 0x618]
sar ecx, 1
imul ecx, ebx
sar eax, 0x10
add ecx, eax
add ecx, edx
mov dword [edi - 4], ecx
sub esi, 1
jne 0x1db2220
cmp dword [ebp - 0x608], 0
mov esi, dword [ebp - 0x63c]
mov eax, dword [ebp - 0x628]
mov dword [esi + 0x414], eax
jne 0x1db2497
mov ecx, dword [ebp - 0x61c]
mov edx, ecx
sub edx, dword [ebp - 0x62c]
add edx, 0x108
mov dword [ebp - 0x618], 0
cmp dword [esi + 0x2be4], 0
lea edx, [esi + edx*4]
mov dword [ebp - 0x614], edx
jle 0x1db240b
mov ebx, dword [ebp - 0x610]
lea eax, [ecx + 0x106]
lea eax, [esi + eax*4]
mov dword [ebp - 0x60c], ebx
mov dword [ebp - 0x638], eax
mov eax, dword [ebp - 0x630]
sub eax, ebx
mov dword [ebp - 0x654], eax
nop dword [eax]
mov ecx, dword [ebp - 0x644]
mov edi, dword [edx - 4]
mov edx, dword [edx]
inc dword [ebp - 0x61c]
movsx eax, word [ecx + 8]
movsx ebx, word [ecx + 4]
movsx esi, word [ecx + 2]
mov dword [ebp - 0x624], eax
movsx eax, word [ecx + 6]
movsx ecx, word [ecx]
mov dword [ebp - 0x628], eax
movzx eax, dx
imul eax, ecx
mov dword [ebp - 0x650], esi
sar edx, 0x10
imul edx, ecx
sar eax, 0x10
mov dword [ebp - 0x608], eax
movzx eax, di
imul eax, esi
mov esi, dword [ebp - 0x614]
sar edi, 0x10
imul edi, dword [ebp - 0x650]
sar eax, 0x10
add dword [ebp - 0x608], eax
mov eax, dword [esi - 8]
movzx eax, ax
imul eax, ebx
sar eax, 0x10
add dword [ebp - 0x608], eax
mov eax, dword [esi - 0xc]
movzx eax, ax
imul eax, dword [ebp - 0x628]
sar eax, 0x10
add dword [ebp - 0x608], eax
mov eax, dword [esi - 0x10]
movzx eax, ax
imul eax, dword [ebp - 0x624]
sar eax, 0x10
add dword [ebp - 0x608], eax
mov ecx, dword [ebp - 0x608]
add ecx, edx
mov edx, esi
add ecx, edi
mov esi, dword [ebp - 0x63c]
mov eax, dword [edx - 8]
sar eax, 0x10
imul eax, ebx
mov ebx, dword [ebp - 0x60c]
add ecx, eax
mov eax, dword [edx - 0xc]
sar eax, 0x10
imul eax, dword [ebp - 0x628]
add ecx, eax
mov eax, dword [edx - 0x10]
sar eax, 0x10
add edx, 4
imul eax, dword [ebp - 0x624]
mov dword [ebp - 0x614], edx
add ecx, eax
mov eax, dword [ebp - 0x654]
sar ecx, 3
inc ecx
sar ecx, 1
mov eax, dword [eax + ebx]
add eax, ecx
mov ecx, dword [ebp - 0x638]
mov dword [ebx], eax
add ebx, 4
shl eax, 6
mov dword [ebp - 0x60c], ebx
mov dword [ecx], eax
add ecx, 4
mov eax, dword [ebp - 0x618]
inc eax
mov dword [ebp - 0x638], ecx
mov dword [ebp - 0x618], eax
cmp eax, dword [esi + 0x2be4]
jl 0x1db22d0
mov edi, dword [ebp - 0x610]
push dword [esi + 0x2be4]
lea eax, [ebp - 0x24]
mov edx, edi
push dword [esi + 0x2be8]
lea ecx, [ebp - 0x604]
push eax
lea eax, [esi + 0x1318]
push eax
call fcn.01db25a0
xor edi, edi
add esp, 0x10
cmp dword [esi + 0x2be4], edi
jle 0x1db24e5
mov eax, dword [ebp - 0x658]
mov ebx, eax
sar ebx, 0xf
inc ebx
movsx ecx, ax
sar ebx, 1
mov dword [ebp - 0x60c], ecx
nop dword [eax]
mov edx, dword [ebp + edi*4 - 0x604]
movzx eax, dx
imul eax, ecx
mov ecx, edx
sar ecx, 0x10
imul ecx, dword [ebp - 0x60c]
imul edx, ebx
sar eax, 0x10
add eax, ecx
add eax, edx
sar eax, 9
inc eax
sar eax, 1
cmp eax, 0x7fff
jle 0x1db24bb
mov eax, 0x7fff
jmp 0x1db24c8
mov eax, dword [esi + 0x2be4]
mov edi, dword [ebp - 0x610]
shl eax, 2
push eax
push dword [ebp - 0x630]
push edi
call fcn.01e27b10
add esp, 0xc
jmp 0x1db2411
cmp eax, 0xffff8000
mov ecx, 0xffff8000
cmovl eax, ecx
mov ecx, dword [ebp - 0x640]
mov word [ecx + edi*2], ax
inc edi
mov ecx, dword [ebp - 0x60c]
cmp edi, dword [esi + 0x2be4]
jl 0x1db2460
mov ecx, dword [esi + 0x2be4]
mov edi, dword [ebp - 0x634]
mov ebx, dword [ebp - 0x620]
inc edi
mov dword [ebp - 0x634], edi
movups xmm0, xmmword [esi + ecx*4 + 0x1318]
lea eax, [ecx*4]
add dword [ebp - 0x630], eax
add dword [ebp - 0x610], eax
mov eax, dword [ebp - 0x640]
movups xmmword [esi + 0x1318], xmm0
movups xmm0, xmmword [esi + ecx*4 + 0x1328]
lea eax, [eax + ecx*2]
mov dword [ebp - 0x640], eax
movups xmmword [esi + 0x1328], xmm0
movups xmm0, xmmword [esi + ecx*4 + 0x1338]
movups xmmword [esi + 0x1338], xmm0
movups xmm0, xmmword [esi + ecx*4 + 0x1348]
movups xmmword [esi + 0x1348], xmm0
cmp edi, 4
jl 0x1db1f62
mov eax, dword [esi + 0x2be0]
add esi, 0x2438
add eax, eax
push eax
add eax, esi
push eax
push dword [ebp - 0x65c]
call fcn.01e27b10
mov ecx, dword [ebp - 4]
add esp, 0xc
xor ecx, ebp
pop edi
pop esi
pop ebx
call fcn.01e029b1
mov esp, ebp
pop ebp
ret