Function at 0x100c3330
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
push ebx
mov ebx, dword [esp + 0x18]
push ebp
push esi
xor ebp, ebp
xor esi, esi
push edi
mov dword [esp + 0x14], ebp
cmp dword [ebx + 4], esi
jle 0x100c33bb
mov edi, dword [ebx + 8]
nop dword [eax + eax]
lea eax, [edi + esi*4]
ror ebp, 0x1f
mov ecx, dword [eax + ebx]
inc esi
lea edx, [edi + ecx]
lea eax, [edi + ecx]
mov ecx, dword [edx + ebx]
ror ecx, 0x1f
xor ecx, dword [edx + ebx + 4]
ror ecx, 0x1f
xor ecx, dword [eax + ebx + 8]
ror ecx, 0x1f
xor ecx, dword [eax + ebx + 0xc]
ror ecx, 0x1f
xor ecx, dword [eax + ebx + 0x10]
ror ecx, 0x1f
xor ecx, dword [eax + ebx + 0x14]
ror ecx, 0x1f
xor ecx, dword [eax + ebx + 0x18]
ror ecx, 0x1f
xor ecx, dword [eax + ebx + 0x1c]
xor ebp, ecx
cmp esi, dword [ebx + 4]
jl 0x100c3350
mov ecx, dword [ebx + 0xc]
mov esi, dword [ebx + 4]
add ecx, ebx
mov edx, esi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
ror ebp, 0x1f
xor ebp, eax
sub edx, 1
jne 0x100c33a5
mov dword [esp + 0x14], ebp
jmp 0x100c33be
mov esi, dword [ebx + 4]
mov eax, 0x7a44c6b
mov ecx, ebp
mul ebp
shr edx, 1
imul eax, edx, 0x43
sub ecx, eax
mov eax, dword [esp + 0x20]
lea eax, [eax + ecx*4]
add eax, 0x40c
mov dword [esp + 0x18], eax
mov edi, dword [eax]
test edi, edi
je 0x100c34d2
nop dword [eax + eax]
cmp dword [edi + 4], ebp
jne 0x100c34b9
cmp dword [edi + 0xc], esi
jne 0x100c34b9
mov edx, dword [edi + 0x14]
add esi, esi
mov eax, dword [ebx + 0xc]
add edx, 8
add eax, ebx
add edx, edi
sub esi, 4
jb 0x100c3427
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x100c342c
add edx, 4
add eax, 4
sub esi, 4
jae 0x100c3416
cmp esi, 0xfffffffc
je 0x100c345d
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x100c34b9
cmp esi, 0xfffffffd
je 0x100c345d
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x100c34b9
cmp esi, 0xfffffffe
je 0x100c345d
mov cl, byte [edx + 2]
cmp cl, byte [eax + 2]
jne 0x100c34b9
cmp esi, 0xffffffff
je 0x100c345d
mov cl, byte [edx + 3]
cmp cl, byte [eax + 3]
jne 0x100c34b9
mov eax, dword [ebx + 4]
mov dword [esp + 0x24], 1
test eax, eax
jle 0x100c34c7
mov ecx, dword [edi + 0x10]
mov edx, dword [ebx + 8]
mov dword [esp + 0x10], eax
lea ebp, [ecx + 8]
lea esi, [edx + ebx]
add ebp, edi
nop
mov eax, dword [ebp]
lea ebp, [ebp + 4]
add ecx, 8
lea esi, [esi + 4]
add eax, ecx
add edx, ebx
add edx, dword [esi - 4]
add eax, edi
xor ecx, ecx
cmp eax, edx
mov edx, dword [ebx + 8]
cmove ecx, dword [esp + 0x24]
sub dword [esp + 0x10], 1
mov eax, ecx
mov ecx, dword [edi + 0x10]
mov dword [esp + 0x24], eax
jne 0x100c3480
mov ebp, dword [esp + 0x14]
test eax, eax
jne 0x100c34c7
mov edi, dword [edi]
test edi, edi
je 0x100c34d2
mov esi, dword [ebx + 4]
jmp 0x100c33f0
lea eax, [edi + 8]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [ebx + 4]
add eax, 4
lea eax, [eax + eax*2]
add eax, eax
push eax
call fcn.1020782d
mov esi, eax
add esp, 4
test esi, esi
jne 0x100c34f4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov eax, dword [esp + 0x20]
inc dword [eax + 0x638]
mov dword [esi + 8], 0xffffffff
mov eax, dword [ebx + 4]
mov dword [esi + 0xc], eax
cmp dword [ebx + 4], 0
je 0x100c3567
mov dword [esi + 0x10], 0x10
lea edi, [esi + 0x18]
mov eax, dword [ebx + 4]
xor edx, edx
lea eax, [eax*4 + 0x10]
mov dword [esi + 0x14], eax
mov eax, dword [ebx + 4]
test eax, eax
jle 0x100c354b
mov ecx, dword [ebx + 8]
lea eax, [ecx + edx*4]
mov eax, dword [eax + ebx]
sub eax, edi
add eax, ecx
add eax, ebx
mov dword [edi + edx*4], eax
inc edx
mov eax, dword [ebx + 4]
cmp edx, eax
jl 0x100c3531
add eax, eax
push eax
mov eax, dword [ebx + 0xc]
add eax, ebx
push eax
mov eax, dword [esi + 0x14]
add eax, 8
add eax, esi
push eax
call fcn.101f6470
add esp, 0xc
jmp 0x100c3575
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov ecx, dword [esp + 0x18]
mov dword [esi + 4], ebp
pop edi
mov eax, dword [ecx]
mov dword [esi], eax
lea eax, [esi + 8]
mov dword [ecx], esi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret