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

Disassembly:
sub esp, 0x1ac
mov eax, dword [0x4fa9d4]
xor eax, esp
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0x1c8]
push ebx
mov ebx, dword [esp + 0x1c4]
push ebp
mov ebp, dword [esp + 0x1d8]
mov dword [esp + 0x10], eax
mov eax, dword [eax]
push esi
mov esi, dword [esp + 0x1d8]
add eax, 0x48
push edi
push eax
mov dword [esp + 0x18], ebx
call fcn.110e268e
add esp, 4
mov edi, eax
mov dword [esp + 0x1c], edi
test esi, esi
je 0x11088c25
mov ebx, dword [esi]
cmp ebx, 0x20
jge 0x11088c12
push ebx
push dword [esi + 4]
push edi
call fcn.110e997e
mov eax, 0x20
sub eax, ebx
push eax
lea eax, [ebx + edi]
push 0x4dae48
push eax
call fcn.110e997e
mov ebx, dword [esp + 0x2c]
add esp, 0x18
jmp 0x11088c3a
mov eax, dword [esi + 4]
mov ebx, dword [esp + 0x14]
movups xmm0, xmmword [eax]
movups xmmword [edi], xmm0
movups xmm0, xmmword [eax + 0x10]
jmp 0x11088c36
movups xmm0, xmmword [0x4dae48]
movups xmmword [edi], xmm0
movups xmm0, xmmword [0x4dae58]
movups xmmword [edi + 0x10], xmm0
mov eax, dword [esp + 0x1cc]
mov ecx, dword [esp + 0x1d4]
mov esi, dword [esp + 0x18]
mov eax, dword [eax + 4]
movups xmm0, xmmword [eax]
movups xmmword [edi + 0x20], xmm0
movups xmm0, xmmword [eax + 0x10]
mov eax, ecx
sar eax, 8
movups xmmword [edi + 0x30], xmm0
mov byte [edi + 0x41], al
mov eax, ecx
mov byte [edi + 0x40], cl
sar eax, 0x10
mov byte [edi + 0x42], al
lea eax, [edi + 0x44]
sar ecx, 0x18
mov byte [edi + 0x43], cl
push dword [esi]
push dword [esi + 4]
push eax
call fcn.110e997e
mov eax, dword [esi]
add esp, 0xc
add eax, 0x44
cmp dword [esp + 0x1e4], 0
jne 0x11088ca1
mov dword [eax + edi], 0xffffffff
add eax, 4
push ebp
push eax
push edi
call fcn.1108987e
mov eax, dword [esp + 0x1d0]
add esp, 0xc
cmp eax, 3
jne 0x11088f4d
mov esi, dword [esp + 0x1c8]
lea edi, [eax + 0x2f]
test esi, esi
js 0x11088d22
push esi
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0x67452301
push ebp
push eax
mov dword [esp + 0x30], 0xefcdab89
mov dword [esp + 0x34], 0x98badcfe
mov dword [esp + 0x38], 0x10325476
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
call fcn.110898fe
lea eax, [esp + 0x2c]
push eax
call fcn.1108997e
movups xmm0, xmmword [esp + 0x88]
add esp, 0x10
movups xmmword [ebp], xmm0
sub edi, 1
jne 0x11088cc6
mov eax, dword [ebx + 4]
mov ebx, 0x13
mov dword [esp + 0x14], ebx
movups xmm0, xmmword [eax]
movups xmmword [esp + 0x98], xmm0
movups xmm0, xmmword [eax + 0x10]
movups xmmword [esp + 0xa8], xmm0
nop dword [eax]
xor eax, eax
test esi, esi
jle 0x11088e03
cmp esi, 0x20
jb 0x11088ddd
lea ecx, [ebp - 1]
add ecx, esi
lea edi, [esp + 0x88]
lea edx, [esp + esi + 0x87]
cmp edi, ecx
ja 0x11088d7c
cmp edx, ebp
jae 0x11088ddd
mov ecx, esi
and ecx, 0x8000001f
jns 0x11088d8b
dec ecx
or ecx, 0xffffffe0
inc ecx
mov edx, esi
mov edi, ebp
sub edx, ecx
movsx ecx, bl
movd xmm0, ecx
lea ecx, [esp + 0x88]
punpcklbw xmm0, xmm0
sub edi, ecx
punpcklwd xmm0, xmm0
pshufd xmm1, xmm0, 0
lea ecx, [edi + eax]
movups xmm0, xmmword [esp + ecx + 0x88]
pxor xmm0, xmm1
movups xmmword [esp + eax + 0x88], xmm0
movups xmm0, xmmword [eax + ebp + 0x10]
pxor xmm0, xmm1
movups xmmword [esp + eax + 0x98], xmm0
add eax, 0x20
cmp eax, edx
jl 0x11088dae
cmp eax, esi
jge 0x11088e03
mov edi, ebp
lea ecx, [esp + 0x88]
sub edi, ecx
nop
lea edx, [esp + 0x88]
add edx, eax
inc eax
mov cl, byte [edi + edx]
xor cl, bl
mov byte [edx], cl
cmp eax, esi
jl 0x11088dee
lea eax, [esp + 0xb8]
push eax
lea eax, [esp + 0x8c]
push esi
push eax
call fcn.1108a4fe
add esp, 0xc
xor bh, bh
xor al, al
xor edi, edi
nop dword [eax]
nop dword [eax + eax]
inc al
lea edx, [esp + 0xb8]
mov byte [esp + 0x13], al
movzx eax, al
add edx, eax
mov bl, byte [edx]
add bh, bl
movzx eax, bh
mov cl, byte [esp + eax + 0xb8]
mov byte [edx], cl
mov byte [esp + eax + 0xb8], bl
movzx eax, bl
movzx ecx, cl
add ecx, eax
movzx eax, cl
movzx eax, byte [esp + eax + 0xb8]
xor byte [esp + edi + 0x98], al
inc edi
mov al, byte [esp + 0x13]
cmp edi, 0x20
jl 0x11088e2e
mov ebx, dword [esp + 0x14]
sub ebx, 1
mov dword [esp + 0x14], ebx
jns 0x11088d4e
movups xmm0, xmmword [0x4dae48]
mov edi, dword [esp + 0x1c]
mov ebx, dword [esp + 0x18]
movups xmmword [edi], xmm0
lea eax, [edi + 0x20]
movups xmm0, xmmword [0x4dae58]
movups xmmword [edi + 0x10], xmm0
push dword [ebx]
push dword [ebx + 4]
push eax
call fcn.110e997e
mov eax, dword [ebx]
add esp, 0xc
add eax, 0x20
js 0x11088f18
push eax
lea eax, [esp + 0x24]
mov dword [esp + 0x24], 0x67452301
push edi
push eax
mov dword [esp + 0x30], 0xefcdab89
mov dword [esp + 0x34], 0x98badcfe
mov dword [esp + 0x38], 0x10325476
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
call fcn.110898fe
lea eax, [esp + 0x2c]
push eax
call fcn.1108997e
movups xmm0, xmmword [esp + 0x88]
add esp, 0x10
movups xmmword [edi], xmm0
lea ecx, [esp + 0x98]
mov edx, edi
mov esi, 0xc
nop dword [eax + eax]
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1108900b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x11088f2e
mov esi, 1
jmp 0x1108900d
cmp eax, 2
jne 0x1108900b
lea eax, [esp + 0xb8]
push eax
push dword [esp + 0x1cc]
push ebp
call fcn.1108a4fe
mov ebp, dword [esp + 0x20]
lea ecx, [esp + 0xa4]
add esp, 0xc
xor bh, bh
xor al, al
xor esi, esi
mov ebp, dword [ebp + 4]
sub ebp, ecx
nop word [eax + eax]
inc al
lea edx, [esp + 0xb8]
mov byte [esp + 0x13], al
movzx eax, al
add edx, eax
mov bl, byte [edx]
add bh, bl
movzx eax, bh
mov cl, byte [esp + eax + 0xb8]
mov byte [edx], cl
lea edx, [esp + 0x98]
mov byte [esp + eax + 0xb8], bl
add edx, esi
movzx eax, bl
inc esi
movzx ecx, cl
add ecx, eax
movzx eax, cl
movzx eax, byte [esp + eax + 0xb8]
xor al, byte [edx + ebp]
mov byte [edx], al
mov al, byte [esp + 0x13]
cmp esi, 0x20
jl 0x11088f8e
lea ecx, [esp + 0x98]
mov edx, 0x4dae48
mov esi, 0x1c
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x1108900b
add ecx, 4
add edx, 4
sub esi, 4
jae 0x11088ff3
mov esi, 1
jmp 0x1108900d
xor esi, esi
push edi
call fcn.110e266e
mov ecx, dword [esp + 0x1bc]
add esp, 4
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
xor ecx, esp
call fcn.110e85d7
add esp, 0x1ac
ret