Function at 0x1108903e
Capabilities:
Encode data using xor
Hash data with md5

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49c0b2
mov eax, dword fs:[0]
push eax
sub esp, 0x298
mov eax, dword [0x4fa9d4]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ecx, dword [ebp + 0x3c]
mov esi, dword [ebp + 0x14]
mov edi, dword [ebp + 0x34]
mov eax, dword [ebp + 0x28]
mov dword [ebp - 0x290], esi
mov esi, dword [ebp + 0x18]
mov dword [ebp - 0x29c], edi
mov edi, dword [ebp + 0xc]
mov dword [ebp - 0x2a0], eax
mov eax, dword [ebp + 0x30]
mov dword [ebp - 0x28c], esi
mov esi, dword [ebp + 0x2c]
mov dword [ebp - 0x2a4], eax
mov dword [ebp - 0x298], ecx
mov dword [ecx], 0
cmp edi, 5
je 0x110894db
cmp edi, 6
je 0x110894db
mov edi, dword [ebp + 0x10]
test esi, esi
je 0x110894a8
mov eax, dword [esi]
cmp eax, 0x20
jge 0x11089103
push eax
push dword [esi + 4]
lea eax, [ebp - 0xc8]
push eax
call fcn.110e997e
mov ecx, dword [esi]
mov eax, 0x20
sub eax, ecx
push eax
lea eax, [ebp - 0xc8]
add eax, ecx
push 0x4dae48
push eax
call fcn.110e997e
add esp, 0x18
jmp 0x1108911b
mov eax, dword [esi + 4]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xc8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebp - 0xb8], xmm0
push 0x20
lea eax, [ebp - 0xc8]
mov dword [ebp - 0x160], 0x67452301
push eax
lea eax, [ebp - 0x160]
mov dword [ebp - 0x15c], 0xefcdab89
push eax
mov dword [ebp - 0x158], 0x98badcfe
mov dword [ebp - 0x154], 0x10325476
mov dword [ebp - 0x110], 0
mov dword [ebp - 0x10c], 0
call fcn.110898fe
lea eax, [ebp - 0x160]
push eax
call fcn.1108997e
movups xmm0, xmmword [ebp - 0x108]
mov eax, dword [ebp + 0xc]
add esp, 0x10
movups xmmword [ebp - 0xc8], xmm0
cmp eax, 3
jne 0x11089362
lea esi, [eax + 0x2f]
nop word [eax + eax]
lea eax, [ebp - 0xc8]
push eax
push edi
push eax
call fcn.1108987e
add esp, 0xc
sub esi, 1
jne 0x1108919e
mov eax, dword [ebp - 0x290]
mov edx, 0x13
mov dword [ebp - 0x294], edx
mov eax, dword [eax + 4]
movups xmm0, xmmword [eax]
movups xmmword [ebp - 0xf8], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebp - 0xe8], xmm0
nop
xor eax, eax
test edi, edi
jle 0x11089273
cmp edi, 0x20
jb 0x11089253
mov ecx, edi
and ecx, 0x8000001f
jns 0x110891fc
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, edi
sub edx, ecx
mov ecx, dword [ebp - 0x294]
movsx ecx, cl
movd xmm0, ecx
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
nop dword [eax]
movups xmm0, xmmword [ebp + eax - 0xc8]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0xd8], xmm0
movups xmm0, xmmword [ebp + eax - 0xb8]
pxor xmm0, xmm1
movups xmmword [ebp + eax - 0xc8], xmm0
add eax, 0x20
cmp eax, edx
jl 0x1108921e
mov edx, dword [ebp - 0x294]
cmp eax, edi
jge 0x11089273
nop dword [eax]
mov cl, byte [ebp + eax - 0xc8]
xor cl, dl
mov byte [ebp + eax - 0xd8], cl
inc eax
cmp eax, edi
jl 0x1108925e
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0xd8]
push edi
push eax
call fcn.1108a4fe
add esp, 0xc
xor cl, cl
xor dl, dl
xor esi, esi
nop dword [eax]
nop word [eax + eax]
mov al, byte [ebp + esi - 0xf8]
inc dl
mov byte [ebp - 0x287], al
movzx eax, dl
mov byte [ebp - 0x285], dl
lea edx, [ebp - 0x260]
add edx, eax
mov ch, byte [edx]
add cl, ch
mov byte [ebp - 0x288], ch
movzx eax, cl
mov byte [ebp - 0x286], cl
mov cl, byte [ebp + eax - 0x260]
mov byte [edx], cl
mov dl, byte [ebp - 0x285]
mov byte [ebp + eax - 0x260], ch
movzx eax, byte [ebp - 0x288]
movzx ecx, cl
add ecx, eax
movzx eax, cl
mov cl, byte [ebp - 0x286]
movzx eax, byte [ebp + eax - 0x260]
xor al, byte [ebp - 0x287]
mov byte [ebp + esi - 0xf8], al
inc esi
cmp esi, 0x20
jl 0x1108929e
mov edx, dword [ebp - 0x294]
sub edx, 1
mov dword [ebp - 0x294], edx
jns 0x110891de
push 8
call fcn.110e8596
add esp, 4
mov dword [ebp - 0x294], eax
mov dword [ebp - 4], 0
test eax, eax
je 0x11089425
push 0x20
lea ecx, [ebp - 0xf8]
push ecx
mov ecx, eax
call fcn.110e28ae
mov esi, eax
jmp 0x11089427
cmp eax, 2
jne 0x110891b4
lea eax, [ebp - 0x260]
push eax
lea eax, [ebp - 0xc8]
push edi
push eax
call fcn.1108a4fe
mov eax, dword [ebp - 0x290]
lea esi, [ebp - 0xf8]
add esp, 0xc
xor cl, cl
xor dl, dl
xor edi, edi
mov eax, dword [eax + 4]
sub eax, esi
mov dword [ebp - 0x294], eax
lea esi, [ebp - 0xf8]
inc dl
add esi, edi
mov byte [ebp - 0x288], dl
inc edi
mov al, byte [esi + eax]
mov byte [ebp - 0x286], al
movzx eax, dl
lea edx, [ebp - 0x260]
add edx, eax
mov ch, byte [edx]
add cl, ch
mov byte [ebp - 0x285], ch
movzx eax, cl
mov byte [ebp - 0x287], cl
mov cl, byte [ebp + eax - 0x260]
mov byte [edx], cl
mov dl, byte [ebp - 0x288]
mov byte [ebp + eax - 0x260], ch
movzx eax, byte [ebp - 0x285]
movzx ecx, cl
add ecx, eax
movzx eax, cl
mov cl, byte [ebp - 0x287]
movzx eax, byte [ebp + eax - 0x260]
xor al, byte [ebp - 0x286]
mov byte [esi], al
mov eax, dword [ebp - 0x294]
cmp edi, 0x20
jl 0x1108939f
mov edi, dword [ebp + 0x10]
jmp 0x1108932c
xor esi, esi
push dword [ebp + 0x38]
mov dword [ebp - 4], 0xffffffff
push dword [ebp - 0x29c]
push esi
push dword [ebp - 0x2a0]
push dword [ebp + 0x24]
push dword [ebp - 0x28c]
push dword [ebp - 0x290]
push edi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.11088b8e
add esp, 0x28
test eax, eax
je 0x1108948c
mov eax, dword [ebp - 0x298]
mov dword [eax], 1
test esi, esi
je 0x11089482
mov ecx, esi
call fcn.110e291e
push 8
push esi
call fcn.110e85c9
add esp, 8
mov eax, 1
jmp 0x11089858
test esi, esi
je 0x110894a2
mov ecx, esi
call fcn.110e291e
push 8
push esi
call fcn.110e85c9
add esp, 8
mov eax, dword [ebp - 0x2a4]
push dword [ebp + 0x38]
push dword [ebp - 0x29c]
push eax
push dword [ebp - 0x2a0]
push dword [ebp + 0x24]
push dword [ebp - 0x28c]
push dword [ebp - 0x290]
push edi
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.11088b8e
add esp, 0x28
jmp 0x11089858
test esi, esi
je 0x110896d2
mov edi, dword [esi]
mov eax, 0x7f
cmp edi, eax
cmovg edi, eax
lea eax, [ebp - 0xc8]
push edi
push dword [esi + 4]
mov dword [ebp - 0x2a0], edi
push eax
call fcn.110e997e
mov eax, dword [ebp - 0x290]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 0x20]
mov dword [ebp + edi - 0xc8], eax
mov eax, dword [ecx + 0x24]
lea ecx, [ebp - 0xc8]
mov dword [ebp + edi - 0xc4], eax
mov eax, dword [ebp - 0x28c]
push ecx
mov eax, dword [eax + 4]
movups xmm0, xmmword [eax]
movups xmmword [ebp + edi - 0xc0], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebp + edi - 0xb0], xmm0
movups xmm0, xmmword [eax + 0x20]
lea eax, [edi + 0x38]
push eax
mov eax, ecx
push eax
movups xmmword [ebp + edi - 0xa0], xmm0
call fcn.1108a61e
add esp, 0x18
cmp dword [ebp + 0xc], 6
jne 0x11089588
mov eax, dword [ebp - 0x28c]
push dword [eax + 4]
lea eax, [ebp - 0xc8]
push edi
push dword [esi + 4]
push 0x20
push eax
call fcn.1108a28e
add esp, 0x14
mov eax, dword [ebp - 0x290]
lea ecx, [ebp - 0xc8]
mov edi, 0x1c
mov edx, dword [eax + 4]
nop
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x110896cc
add ecx, 4
add edx, 4
sub edi, 4
jae 0x1108959e
mov edi, dword [ebp - 0x2a0]
lea eax, [ebp - 0xc8]
push edi
push dword [esi + 4]
push eax
call fcn.110e997e
mov eax, dword [ebp - 0x290]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 0x28]
mov dword [ebp + edi - 0xc8], eax
mov eax, dword [ecx + 0x2c]
mov dword [ebp + edi - 0xc4], eax
mov eax, dword [ebp - 0x28c]
mov eax, dword [eax + 4]
movups xmm0, xmmword [eax]
movups xmmword [ebp + edi - 0xc0], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [ebp + edi - 0xb0], xmm0
movups xmm0, xmmword [eax + 0x20]
lea eax, [ebp - 0xc8]
push eax
lea eax, [edi + 0x38]
push eax
lea eax, [ebp - 0xc8]
push eax
movups xmmword [ebp + edi - 0xa0], xmm0
call fcn.1108a61e
add esp, 0x18
cmp dword [ebp + 0xc], 6
jne 0x11089650
mov eax, dword [ebp - 0x28c]
push dword [eax + 4]
lea eax, [ebp - 0xc8]
push edi
push dword [esi + 4]
push 0x20
push eax
call fcn.1108a28e
add esp, 0x14
push 0x20
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.110872fe
mov esi, dword [ebp + 0x1c]
lea eax, [ebp - 0x284]
push 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x184], xmm0
push dword [esi + 4]
push eax
call fcn.11086e4e
movups xmm0, xmmword [ebp - 0x174]
mov edi, dword [ebp - 0x29c]
push 0
movups xmmword [edi], xmm0
mov eax, dword [esi + 4]
add eax, 0x10
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.11086e4e
mov eax, dword [ebp - 0x298]
add esp, 0x24
movups xmm0, xmmword [ebp - 0x174]
movups xmmword [edi + 0x10], xmm0
mov dword [eax], 1
mov eax, 1
jmp 0x11089858
mov eax, dword [ebp - 0x2a4]
test eax, eax
je 0x110896ed
mov esi, dword [eax]
mov edi, dword [eax + 4]
mov dword [ebp - 0x298], edi
cmp esi, 0x7f
jle 0x110896fa
mov esi, 0x7f
jmp 0x110896fa
mov edi, 0x4a0dc7
xor esi, esi
mov dword [ebp - 0x298], edi
push esi
lea eax, [ebp - 0xc8]
push edi
push eax
call fcn.110e997e
mov eax, dword [ebp - 0x28c]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 0x20]
mov dword [ebp + esi - 0xc8], eax
mov eax, dword [ecx + 0x24]
lea ecx, [ebp - 0xc8]
mov dword [ebp + esi - 0xc4], eax
lea eax, [esi + 8]
push ecx
push eax
mov eax, ecx
push eax
call fcn.1108a61e
add esp, 0x18
cmp dword [ebp + 0xc], 6
jne 0x11089756
push 0
push esi
push edi
lea eax, [ebp - 0xc8]
push 0x20
push eax
call fcn.1108a28e
add esp, 0x14
mov eax, dword [ebp - 0x28c]
lea ecx, [ebp - 0xc8]
mov edi, 0x1c
mov edx, dword [eax + 4]
nop dword [eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x11089856
add ecx, 4
add edx, 4
sub edi, 4
jae 0x1108976e
mov edi, dword [ebp - 0x298]
lea eax, [ebp - 0xc8]
push esi
push edi
push eax
call fcn.110e997e
mov eax, dword [ebp - 0x28c]
mov ecx, dword [eax + 4]
mov eax, dword [ecx + 0x28]
mov dword [ebp + esi - 0xc8], eax
mov eax, dword [ecx + 0x2c]
mov dword [ebp + esi - 0xc4], eax
lea eax, [ebp - 0xc8]
push eax
lea eax, [esi + 8]
push eax
lea eax, [ebp - 0xc8]
push eax
call fcn.1108a61e
add esp, 0x18
cmp dword [ebp + 0xc], 6
jne 0x110897e9
push 0
push esi
push edi
lea eax, [ebp - 0xc8]
push 0x20
push eax
call fcn.1108a28e
add esp, 0x14
push 0x20
lea eax, [ebp - 0xc8]
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.110872fe
mov esi, dword [ebp + 0x20]
lea eax, [ebp - 0x284]
push 0
xorps xmm0, xmm0
movups xmmword [ebp - 0x184], xmm0
push dword [esi + 4]
push eax
call fcn.11086e4e
movups xmm0, xmmword [ebp - 0x174]
mov edi, dword [ebp - 0x29c]
push 0
movups xmmword [edi], xmm0
mov eax, dword [esi + 4]
add eax, 0x10
push eax
lea eax, [ebp - 0x284]
push eax
call fcn.11086e4e
movups xmm0, xmmword [ebp - 0x174]
add esp, 0x24
mov eax, 1
movups xmmword [edi + 0x10], xmm0
jmp 0x11089858
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.110e85d7
mov esp, ebp
pop ebp
ret