Function at 0x100b7329
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 0x100b75a1
lea eax, [esp + 0x14]
push eax
push dword [esi + 0x48]
call fcn.10037760
cmp dword [esp + 0x14], 0
je 0x100b75a1
cmp dword [ebx + 0xf0], 0
jne 0x100b75a1
mov eax, dword [ebx + 0xec]
test eax, eax
je 0x100b75a1
cmp dword [eax], 0x64
jbe 0x100b75a1
push ebp
push 0x1c
push 0x64
lea eax, [esp + 0x68]
push eax
push edi
push esi
call fcn.10091a7b
cwde
xor ebx, ebx
or edi, 0xffffffff
mov dword [esp + 0x24], eax
xor ebp, ebp
mov dword [esp + 0x14], ebx
test eax, eax
jle 0x100b7453
mov ebx, dword [esp + ebp*4 + 0x60]
mov eax, dword [ebx + 8]
mov ecx, dword [ebx + 0xc]
cmp byte [eax + 4], 0xa
jne 0x100b73f1
cmp byte [eax + 5], 0
jne 0x100b73f1
mov eax, dword [eax + 8]
jmp 0x100b73f4
mov eax, dword [ecx + 8]
push eax
push esi
call fcn.100bab35
cmp byte [ebx + 4], 3
jne 0x100b7423
cmp byte [ebx + 5], 7
jne 0x100b7423
push eax
lea eax, [esp + 0x18]
push eax
push 4
lea eax, [esp + 0x5c]
push eax
call fcn.100b5d2a
test eax, eax
je 0x100b75a0
jmp 0x100b7429
cmp edi, 0xffffffff
cmove edi, eax
inc ebp
cmp ebp, dword [esp + 0x24]
jl 0x100b73d6
cmp edi, 0xffffffff
je 0x100b744f
push edi
lea eax, [esp + 0x18]
push eax
push 4
lea eax, [esp + 0x5c]
push eax
call fcn.100b5d2a
test eax, eax
je 0x100b75a0
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 0x100b7497
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.100b5d2a
test eax, eax
je 0x100b75a0
add edi, 8
cmp edi, ebp
jb 0x100b746a
mov ebx, dword [esp + 0x14]
lea eax, [esp + 0x10]
push eax
push 0
push 0x68
push esi
call fcn.100ca00c
test eax, eax
js 0x100b75a0
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 0x100b751c
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 0x100b74fa
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.100b6fd8
test eax, eax
je 0x100b75a0
xor eax, eax
test ebp, ebp
jle 0x100b7548
cmp dword [esp + eax*4 + 0x60], 0
jne 0x100b75a0
inc eax
cmp eax, ebp
jl 0x100b753c
push dword [esp + 0x10]
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.100b20d6
test ax, ax
je 0x100b75a0
push 0x7d0
call fcn.101174f0
mov edi, eax
pop ecx
test edi, edi
je 0x100b75a0
push 0x3e8
push edi
push ebx
lea eax, [esp + 0x5c]
push eax
push dword [esp + 0x30]
push esi
call fcn.100ba39b
push edi
push 0xb
push 0xc
push dword [esi + 0x48]
call dword [esp + 0x28]
or dword [esi + 0x80], 0x200000
push edi
call fcn.1011741a
pop ecx
pop ebp
mov ecx, dword [esp + 0x1ec]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.1011720d
add esp, 0x1e4
ret 0xc