Function at 0x10136370
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0xc
push ebx
mov ebx, dword [esp + 0x18]
push ebp
push esi
push edi
mov edi, dword [ebx + 4]
xor ebp, ebp
xor esi, esi
mov dword [esp + 0x14], ebp
test edi, edi
jle 0x101363fd
mov edx, dword [ebx + 8]
nop dword [eax]
lea eax, [ebx + esi*4]
ror ebp, 0x1f
mov ecx, dword [eax + edx]
inc esi
mov eax, dword [ebx + 8]
add edx, ecx
add eax, ecx
mov ecx, dword [edx + ebx]
ror ecx, 0x1f
xor ecx, dword [edx + ebx + 4]
ror ecx, 0x1f
xor ecx, dword [eax + ebx + 8]
mov edx, dword [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, edi
jl 0x10136390
mov ecx, dword [ebx + 0xc]
mov esi, edi
add ecx, ebx
mov edx, esi
movzx eax, word [ecx]
lea ecx, [ecx + 2]
ror ebp, 0x1f
xor ebp, eax
sub edx, 1
jne 0x101363e7
mov dword [esp + 0x14], ebp
jmp 0x101363ff
mov esi, edi
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 0x10136512
nop dword [eax]
cmp dword [edi + 4], ebp
jne 0x101364f9
cmp dword [edi + 0xc], esi
jne 0x101364f9
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 0x10136467
mov ecx, dword [edx]
cmp ecx, dword [eax]
jne 0x1013646c
add edx, 4
add eax, 4
sub esi, 4
jae 0x10136456
cmp esi, 0xfffffffc
je 0x1013649d
mov cl, byte [edx]
cmp cl, byte [eax]
jne 0x101364f9
cmp esi, 0xfffffffd
je 0x1013649d
mov cl, byte [edx + 1]
cmp cl, byte [eax + 1]
jne 0x101364f9
cmp esi, 0xfffffffe
je 0x1013649d
mov cl, byte [edx + 2]
cmp cl, byte [eax + 2]
jne 0x101364f9
cmp esi, 0xffffffff
je 0x1013649d
mov cl, byte [edx + 3]
cmp cl, byte [eax + 3]
jne 0x101364f9
mov eax, dword [ebx + 4]
mov dword [esp + 0x24], 1
test eax, eax
jle 0x10136507
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 0x101364c0
mov ebp, dword [esp + 0x14]
test eax, eax
jne 0x10136507
mov edi, dword [edi]
test edi, edi
je 0x10136512
mov esi, dword [ebx + 4]
jmp 0x10136430
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.1026cf9e
mov esi, eax
add esp, 4
test esi, esi
jne 0x10136534
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 0x101365a7
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 0x1013658b
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 0x10136571
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.10266230
add esp, 0xc
jmp 0x101365b5
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