Function at 0x100b7129
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1e4
mov eax, dword [0x1013567c]
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 0x100b73a1
lea eax, [esp + 0x14]
push eax
push dword [esi + 0x48]
call fcn.10037710
cmp dword [esp + 0x14], 0
je 0x100b73a1
cmp dword [ebx + 0xf0], 0
jne 0x100b73a1
mov eax, dword [ebx + 0xec]
test eax, eax
je 0x100b73a1
cmp dword [eax], 0x64
jbe 0x100b73a1
push ebp
push 0x1c
push 0x64
lea eax, [esp + 0x68]
push eax
push edi
push esi
call fcn.1009187b
cwde
xor ebx, ebx
or edi, 0xffffffff
mov dword [esp + 0x24], eax
xor ebp, ebp
mov dword [esp + 0x14], ebx
test eax, eax
jle 0x100b7253
mov ebx, dword [esp + ebp*4 + 0x60]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
cmp byte [eax + 4], 0xa
jne 0x100b71f1
cmp byte [eax + 5], 0
jne 0x100b71f1
mov eax, dword [eax + 8]
jmp 0x100b71f4
mov eax, dword [ecx + 8]
push eax
push esi
call fcn.100ba935
cmp byte [ebx + 4], 3
jne 0x100b7223
cmp byte [ebx + 5], 7
jne 0x100b7223
push eax
lea eax, [esp + 0x18]
push eax
push 4
lea eax, [esp + 0x5c]
push eax
call fcn.100b5b2a
test eax, eax
je 0x100b73a0
jmp 0x100b7229
cmp edi, 0xffffffff
cmove edi, eax
inc ebp
cmp ebp, dword [esp + 0x24]
jl 0x100b71d6
cmp edi, 0xffffffff
je 0x100b724f
push edi
lea eax, [esp + 0x18]
push eax
push 4
lea eax, [esp + 0x5c]
push eax
call fcn.100b5b2a
test eax, eax
je 0x100b73a0
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 0x100b7297
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.100b5b2a
test eax, eax
je 0x100b73a0
add edi, 8
cmp edi, ebp
jb 0x100b726a
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0
push 0x68
push esi
call fcn.100c9e0c
test eax, eax
js 0x100b73a0
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 0x100b731c
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 0x100b72fa
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.100b6dd8
test eax, eax
je 0x100b73a0
xor eax, eax
test ebp, ebp
jle 0x100b7348
cmp dword [esp + eax*4 + 0x60], 0
jne 0x100b73a0
inc eax
cmp eax, ebp
jl 0x100b733c
push dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.100b1ed6
test ax, ax
je 0x100b73a0
push 0x7d0
call fcn.10117340
mov edi, eax
pop ecx
test edi, edi
je 0x100b73a0
push 0x3e8
push edi
push ebx
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x30]
push esi
call fcn.100ba19b
push edi
push 0xb
push 0xc
push dword [esi + 0x48]
call dword [esp + 0x28]
or dword [esi + 0x80], 0x200000
push edi
call fcn.1011726a
pop ecx
pop ebp
mov ecx, dword [esp + 0x1ec]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1011705d
add esp, 0x1e4
ret 0xc