Function at 0x100b7d4a
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1e4
mov eax, dword [0x101366b4]
xor eax, esp
mov dword [esp + 0x1e0], eax
and dword [esp + 8], 0
mov eax, dword [esp + 0x1f0]
push ebx
push esi
mov esi, dword [esp + 0x1f0]
push edi
mov edi, dword [esp + 0x1f8]
mov dword [esp + 0x18], eax
test dword [esi + 0x9c], 0x100000
mov ebx, dword [esi + 0x3c]
mov dword [esp + 0x1c], ebx
je 0x100b7fc2
lea eax, [esp + 0x14]
push eax
push dword [esi + 0x48]
call fcn.100378c0
cmp dword [esp + 0x14], 0
je 0x100b7fc2
cmp dword [ebx + 0xf0], 0
jne 0x100b7fc2
mov eax, dword [ebx + 0xec]
test eax, eax
je 0x100b7fc2
cmp dword [eax], 0x64
jbe 0x100b7fc2
push ebp
push 0x1c
push 0x64
lea eax, [esp + 0x68]
push eax
push edi
push esi
call fcn.1009245b
cwde
xor ebx, ebx
or edi, 0xffffffff
mov dword [esp + 0x24], eax
xor ebp, ebp
mov dword [esp + 0x14], ebx
test eax, eax
jle 0x100b7e74
mov ebx, dword [esp + ebp*4 + 0x60]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
cmp byte [eax + 4], 0xa
jne 0x100b7e12
cmp byte [eax + 5], 0
jne 0x100b7e12
mov eax, dword [eax + 8]
jmp 0x100b7e15
mov eax, dword [ecx + 8]
push eax
push esi
call fcn.100bb556
cmp byte [ebx + 4], 3
jne 0x100b7e44
cmp byte [ebx + 5], 7
jne 0x100b7e44
push eax
lea eax, [esp + 0x18]
push eax
push 4
lea eax, [esp + 0x5c]
push eax
call fcn.100b674b
test eax, eax
je 0x100b7fc1
jmp 0x100b7e4a
cmp edi, 0xffffffff
cmove edi, eax
inc ebp
cmp ebp, dword [esp + 0x24]
jl 0x100b7df7
cmp edi, 0xffffffff
je 0x100b7e70
push edi
lea eax, [esp + 0x18]
push eax
push 4
lea eax, [esp + 0x5c]
push eax
call fcn.100b674b
test eax, eax
je 0x100b7fc1
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
lea edi, [eax + 0x18]
mov eax, dword [eax + 0x14]
shl eax, 0x11
sar eax, 0x1b
lea ebp, [edi + eax*8]
cmp edi, ebp
jae 0x100b7eb8
mov eax, dword [edi]
shl eax, 0x10
sar eax, 0x12
push eax
lea eax, [esp + 0x18]
push eax
push 4
lea eax, [esp + 0x5c]
push eax
call fcn.100b674b
test eax, eax
je 0x100b7fc1
add edi, 8
cmp edi, ebp
jb 0x100b7e8b
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0
push 0x68
push esi
call fcn.100caafd
test eax, eax
js 0x100b7fc1
mov ecx, dword [esp + 0x10]
xor edx, edx
inc edx
mov eax, dword [ecx + 0x14]
and eax, 0xfffffffd
or eax, edx
mov dword [ecx + 0x14], eax
mov eax, ebx
mov ecx, dword [esp + 0x10]
shl eax, 0xa
xor eax, dword [ecx + 0x14]
and eax, 0x7c00
xor dword [ecx + 0x14], eax
mov eax, dword [esp + 0x10]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x10]
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x10]
mov dword [eax + 0x10], edx
xor edx, edx
mov eax, dword [esp + 0x10]
lea ecx, [eax + 0x18]
test ebx, ebx
jle 0x100b7f3d
mov edi, dword [esp + 0x20]
and dword [ecx], 0xfffffffc
mov eax, dword [esp + edx*4 + 0x50]
shl eax, 2
xor eax, dword [ecx]
and eax, 0xfffc
mov dword [ecx + 4], edi
xor dword [ecx], eax
inc edx
lea ecx, [ecx + 8]
cmp edx, ebx
jl 0x100b7f1b
mov eax, dword [esp + 0x10]
mov ebp, dword [esp + 0x24]
lea ecx, [esp + 0x28]
push ecx
push ebp
lea ecx, [esp + 0x68]
push ecx
push eax
push esi
call fcn.100b79f9
test eax, eax
je 0x100b7fc1
xor eax, eax
test ebp, ebp
jle 0x100b7f69
cmp dword [esp + eax*4 + 0x60], 0
jne 0x100b7fc1
inc eax
cmp eax, ebp
jl 0x100b7f5d
push dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.100b2af7
test ax, ax
je 0x100b7fc1
push 0x7d0
call fcn.10117fe0
mov edi, eax
pop ecx
test edi, edi
je 0x100b7fc1
push 0x3e8
push edi
push ebx
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x30]
push esi
call fcn.100badbc
push edi
push 0xb
push 0xc
push dword [esi + 0x48]
call dword [esp + 0x28]
or dword [esi + 0x80], 0x200000
push edi
call fcn.10117f0a
pop ecx
pop ebp
mov ecx, dword [esp + 0x1ec]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10117cfd
add esp, 0x1e4
ret 0xc