Function at 0x100b9da0
Capabilities:
Encode data using xor

Disassembly:
mov ecx, dword [esp + 4]
push ebx
push ebp
xor ebp, ebp
cmp ecx, ebp
je 0x100b9ff7
mov eax, dword [ecx + 4]
cmp eax, ebp
je 0x100b9ff7
cmp dword [eax], ebp
je 0x100b9ff7
mov ebx, dword [esp + 0x10]
cmp ebx, ebp
je 0x100b9ff7
push esi
mov esi, dword [eax]
mov eax, dword [ecx]
mov dword [esi], eax
add eax, 0xfffffbf8
cmp eax, 4
ja case.default.0x100b9de4
jmp dword [eax*4 + 0x100ba000]
mov dword [esi + 0x18], 0x40
jmp 0x100b9dfb
mov dword [esi + 0x18], 0x80
mov eax, dword [esi + 0x18]
push edi
push eax
call fcn.1013fbbd
mov edi, eax
add esp, 4
cmp edi, ebp
je 0x100b9faa
mov ecx, dword [esi + 0x18]
push ecx
call fcn.1013fbbd
add esp, 4
mov dword [esi + 0x1c], eax
cmp eax, ebp
je 0x100b9fa1
mov edx, dword [esi + 0x18]
mov ecx, dword [esi]
push edx
mov edx, dword [esp + 0x20]
push ecx
push edx
push ebx
push eax
call fcn.100b9be0
add esp, 0x14
xor eax, eax
cmp dword [esi + 0x18], ebp
jbe 0x100b9e58
mov ecx, dword [esi + 0x1c]
mov dl, byte [ecx + eax]
xor dl, 0x36
mov byte [eax + edi], dl
inc eax
cmp eax, dword [esi + 0x18]
jb 0x100b9e46
mov ecx, dword [esi + 0x18]
cmp eax, ecx
jae 0x100b9e72
nop
mov ecx, dword [esi + 0x1c]
mov dl, byte [ecx + eax]
xor dl, 0x36
mov byte [eax + edi], dl
inc eax
cmp eax, dword [esi + 0x18]
jb 0x100b9e60
mov eax, dword [esi]
add eax, 0xfffffbf8
mov dword [esi + 0x14], ebp
mov dword [esi + 4], ebp
mov dword [esi + 8], ebp
mov dword [esi + 0xc], ebp
mov dword [esi + 0x10], ebp
cmp eax, 4
ja case.default.0x100b9e91
jmp dword [eax*4 + 0x100ba014]
push 0x58
call fcn.1013fbbd
add esp, 4
mov dword [esi + 0x14], eax
cmp eax, ebp
je 0x100b9fa1
push eax
call fcn.100c7a40
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x14]
push eax
push edi
push ecx
call fcn.100c8260
add esp, 0x10
push edi
call fcn.1013db65
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
push 0x9c
call fcn.1013fbbd
add esp, 4
mov dword [esi + 4], eax
cmp eax, ebp
je 0x100b9fa1
push eax
call fcn.100c26b0
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 4]
push edx
push edi
push eax
call fcn.100c39b0
add esp, 0x10
push edi
call fcn.1013db65
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
push 0xa8
call fcn.1013fbbd
add esp, 4
mov dword [esi + 8], eax
cmp eax, ebp
je 0x100b9fa1
push eax
call fcn.100c63d0
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 8]
push ecx
push edi
push edx
call fcn.100c6450
add esp, 0x10
push edi
call fcn.1013db65
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
push 0x148
call fcn.1013fbbd
add esp, 4
mov dword [esi + 0xc], eax
cmp eax, ebp
je 0x100b9fa1
push eax
call fcn.100c77e0
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0xc]
push eax
push edi
push ecx
call fcn.100c78c0
add esp, 0x10
push edi
call fcn.1013db65
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
push 0x148
call fcn.1013fbbd
add esp, 4
mov dword [esi + 0x10], eax
cmp eax, ebp
jne 0x100b9fb4
push edi
call fcn.1013db65
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 0xfffff447
pop ebx
ret
push eax
call fcn.100c7610
mov edx, dword [esi + 0x18]
mov eax, dword [esi + 0x10]
push edx
push edi
push eax
call fcn.100c78c0
add esp, 0x10
push edi
call fcn.1013db65
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
ret
push edi
call fcn.1013db65
add esp, 4
pop edi
pop esi
pop ebp
mov eax, 0xfffff445
pop ebx
ret
pop esi
pop ebp
mov eax, 0xfffff445
pop ebx
ret
pop ebp
mov eax, 0xfffff446
pop ebx
ret