Function at 0x1109c0a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x598
mov eax, dword [0x111ec774]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
mov esi, dword [ebp + 0xc]
push edi
mov edi, dword [ebp + 0x1c]
mov ebx, edx
push 0x44
lea edx, [ebp - 0x48]
push 0
push edx
mov dword [ebp - 0x558], eax
mov dword [ebp - 0x530], ebx
mov dword [ebp - 0x548], esi
mov dword [ebp - 0x538], ecx
call fcn.11162be0
add esp, 0xc
mov eax, ebx
mov edx, esi
lea ecx, [ecx]
mov ecx, dword [eax]
inc dword [ebp + ecx*4 - 0x48]
lea ecx, [ebp + ecx*4 - 0x48]
add eax, 4
dec edx
jne 0x1109c0f0
cmp dword [ebp - 0x48], esi
jne 0x1109c122
mov eax, dword [ebp - 0x538]
mov dword [eax], edx
mov dword [edi], edx
pop edi
pop esi
xor eax, eax
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.11162bb7
mov esp, ebp
pop ebp
ret
mov ebx, dword [edi]
mov dword [ebp - 0x510], ebx
mov ecx, 1
nop
cmp dword [ebp + ecx*4 - 0x48], 0
jne 0x1109c13d
inc ecx
cmp ecx, 0x10
jbe 0x1109c130
mov dword [ebp - 0x514], ecx
cmp ebx, ecx
jae 0x1109c14f
mov dword [ebp - 0x510], ecx
mov ebx, ecx
mov eax, 0x10
cmp dword [ebp + eax*4 - 0x48], 0
jne 0x1109c15e
dec eax
jne 0x1109c154
mov dword [ebp - 0x524], eax
cmp ebx, eax
jbe 0x1109c170
mov dword [ebp - 0x510], eax
mov ebx, eax
mov esi, 1
shl esi, cl
mov dword [edi], ebx
cmp ecx, eax
jae 0x1109c191
lea ecx, [ecx]
sub esi, dword [ebp + ecx*4 - 0x48]
js 0x1109c26b
inc ecx
add esi, esi
cmp ecx, eax
jb 0x1109c180
mov ecx, dword [ebp + eax*4 - 0x48]
sub esi, ecx
mov dword [ebp - 0x550], esi
js 0x1109c26b
add ecx, esi
mov dword [ebp + eax*4 - 0x48], ecx
xor ecx, ecx
dec eax
mov dword [ebp - 0x88], ecx
je 0x1109c1c7
xor edx, edx
add ecx, dword [ebp + edx - 0x44]
add edx, 4
dec eax
mov dword [ebp + edx - 0x88], ecx
jne 0x1109c1b6
mov edi, dword [ebp - 0x530]
xor ecx, ecx
xor edx, edx
mov eax, dword [edi]
add edi, 4
cmp eax, ecx
je 0x1109c1f4
mov ecx, dword [ebp + eax*4 - 0x8c]
lea eax, [ebp + eax*4 - 0x8c]
mov dword [ebp + ecx*4 - 0x50c], edx
inc ecx
mov dword [eax], ecx
xor ecx, ecx
inc edx
cmp edx, dword [ebp - 0x548]
jb 0x1109c1d1
lea edx, [ebp - 0x50c]
mov dword [ebp - 0x544], edx
mov dword [ebp - 0x52c], ecx
mov dword [ebp - 0x8c], ecx
mov edx, ebx
mov dword [ebp - 0x598], ecx
mov dword [ebp - 0x530], ecx
mov ecx, dword [ebp - 0x514]
neg edx
xor edi, edi
mov dword [ebp - 0x518], 0xffffffff
cmp ecx, dword [ebp - 0x524]
jg 0x1109c546
lea eax, [ebp + ecx*4 - 0x48]
mov dword [ebp - 0x528], eax
lea ecx, [ecx]
mov eax, dword [ebp - 0x528]
mov eax, dword [eax]
test eax, eax
je 0x1109c52c
lea ecx, [eax + 1]
mov dword [ebp - 0x540], ecx
jmp 0x1109c287
pop edi
pop esi
mov eax, 2
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.11162bb7
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp - 0x534]
dec dword [ebp - 0x540]
dec eax
mov dword [ebp - 0x534], eax
lea eax, [edx + ebx]
cmp dword [ebp - 0x514], eax
jle 0x1109c3e7
sub edx, ebx
mov dword [ebp - 0x53c], edx
jmp 0x1109c2b0
mov edx, dword [ebp - 0x524]
inc dword [ebp - 0x518]
add dword [ebp - 0x53c], ebx
sub edx, eax
mov dword [ebp - 0x54c], eax
cmp edx, ebx
jbe 0x1109c2d0
mov edx, ebx
mov ebx, dword [ebp - 0x514]
sub ebx, eax
mov eax, 1
mov ecx, ebx
shl eax, cl
cmp eax, dword [ebp - 0x540]
jbe 0x1109c313
mov esi, dword [ebp - 0x528]
or ecx, 0xffffffff
sub ecx, dword [ebp - 0x534]
inc ebx
add eax, ecx
cmp ebx, edx
jae 0x1109c313
nop
mov ecx, dword [esi + 4]
add esi, 4
add eax, eax
cmp eax, ecx
jbe 0x1109c313
inc ebx
sub eax, ecx
cmp ebx, edx
jb 0x1109c300
mov ecx, ebx
mov edi, 1
shl edi, cl
lea edx, [edi*8 + 8]
push edx
call fcn.11163a11
add esp, 4
test eax, eax
je 0x1109c56a
mov ecx, dword [ebp - 0x558]
lea edx, [edi + 1]
add dword [ecx + 0x1c], edx
mov edx, dword [ebp - 0x538]
lea ecx, [eax + 8]
add eax, 4
mov dword [edx], ecx
mov edx, dword [ebp - 0x518]
mov dword [ebp - 0x538], eax
mov dword [eax], 0
lea eax, [ebp + edx*4 - 0x598]
mov dword [ebp - 0x530], ecx
mov dword [ebp - 0x554], eax
mov dword [eax], ecx
test edx, edx
je 0x1109c3c3
mov esi, dword [ebp - 0x52c]
mov al, byte [ebp - 0x510]
mov dword [ebp + edx*4 - 0x8c], esi
mov edx, ecx
mov ecx, dword [ebp - 0x53c]
mov byte [ebp - 0x51f], al
mov eax, esi
add bl, 0x10
shr eax, cl
mov ecx, dword [ebp - 0x554]
mov ecx, dword [ecx - 4]
mov byte [ebp - 0x520], bl
mov esi, dword [ebp - 0x520]
mov dword [ecx + eax*8], esi
mov dword [ebp - 0x51c], edx
mov dword [ecx + eax*8 + 4], edx
mov eax, dword [ebp - 0x510]
add eax, dword [ebp - 0x54c]
mov ebx, dword [ebp - 0x510]
cmp dword [ebp - 0x514], eax
jg 0x1109c2b0
mov edx, dword [ebp - 0x54c]
mov cl, byte [ebp - 0x514]
mov eax, dword [ebp - 0x548]
sub cl, dl
mov byte [ebp - 0x51f], cl
mov ecx, dword [ebp - 0x544]
lea eax, [ebp + eax*4 - 0x50c]
cmp ecx, eax
jb 0x1109c415
mov byte [ebp - 0x520], 0x63
jmp 0x1109c45b
mov eax, dword [ecx]
mov esi, dword [ebp + 0x10]
cmp eax, esi
jae 0x1109c433
cmp eax, 0x100
setb al
add al, 0xf
mov byte [ebp - 0x520], al
mov ax, word [ecx]
jmp 0x1109c44b
sub eax, esi
lea esi, [eax + eax]
mov eax, dword [ebp + 0x18]
mov al, byte [esi + eax]
mov byte [ebp - 0x520], al
mov eax, dword [ebp + 0x14]
mov ax, word [esi + eax]
add ecx, 4
mov dword [ebp - 0x544], ecx
mov word [ebp - 0x51c], ax
mov ecx, dword [ebp - 0x514]
mov eax, dword [ebp - 0x52c]
sub ecx, edx
mov esi, 1
shl esi, cl
mov ecx, edx
shr eax, cl
cmp eax, edi
jae 0x1109c4a7
mov ecx, dword [ebp - 0x530]
lea ecx, [ecx + eax*8]
mov ebx, dword [ebp - 0x520]
mov dword [ecx], ebx
mov ebx, dword [ebp - 0x51c]
mov dword [ecx + 4], ebx
lea ebx, [esi*8]
add eax, esi
add ecx, ebx
cmp eax, edi
jb 0x1109c481
mov ebx, dword [ebp - 0x510]
mov ecx, dword [ebp - 0x514]
mov esi, dword [ebp - 0x52c]
dec ecx
mov eax, 1
shl eax, cl
test esi, eax
je 0x1109c4c8
nop
xor esi, eax
shr eax, 1
test esi, eax
jne 0x1109c4c0
xor esi, eax
mov ecx, edx
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x518]
mov dword [ebp - 0x52c], esi
dec eax
and eax, esi
cmp eax, dword [ebp + ecx*4 - 0x8c]
je 0x1109c513
jmp 0x1109c4f0
dec dword [ebp - 0x518]
sub edx, ebx
mov ecx, edx
mov eax, 1
shl eax, cl
mov ecx, dword [ebp - 0x518]
dec eax
and eax, esi
cmp eax, dword [ebp + ecx*4 - 0x8c]
jne 0x1109c4f0
cmp dword [ebp - 0x534], 0
jne 0x1109c281
mov esi, dword [ebp - 0x550]
mov ecx, dword [ebp - 0x514]
add dword [ebp - 0x528], 4
inc ecx
mov dword [ebp - 0x514], ecx
cmp ecx, dword [ebp - 0x524]
jle 0x1109c250
test esi, esi
je 0x1109c557
mov eax, 1
cmp dword [ebp - 0x524], eax
jne 0x1109c559
xor eax, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.11162bb7
mov esp, ebp
pop ebp
ret
push 0x140
push 0x111a6a28
push 0x11195af8
call fcn.11029a70
add esp, 0xc
cmp dword [ebp - 0x518], 0
je 0x1109c595
mov eax, dword [ebp - 0x598]
call fcn.1109bf60
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
mov eax, 3
pop ebx
call fcn.11162bb7
mov esp, ebp
pop ebp
ret