Function at 0x10072c70
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x1c
mov eax, dword [esp + 0x24]
push ebx
mov ebx, ecx
mov dword [esp + 0x10], eax
push ebp
push esi
push edi
cmp dword [ebx + 0x1e6cc], 0
mov ebp, eax
mov dword [esp + 0x10], ebx
je 0x10072ca1
add eax, 7
cdq
and edx, 7
lea ebp, [edx + eax]
and ebp, 0xfffffff8
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x30]
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov edi, esi
mov dword [esp + 0x28], edi
test ebp, ebp
je 0x10072e29
nop dword [eax]
mov esi, dword [ebx + 0x38]
mov eax, dword [esi + 0x18]
or eax, dword [esi + 0x1c]
jne 0x10072d17
cmp dword [esi + 0x20], eax
je 0x10072e25
mov eax, dword [esi + 0x10]
add eax, 1
js 0x10072e25
cmp eax, dword [esi + 4]
jge 0x10072e25
lea edx, [eax + eax*2]
mov dword [esi + 0x10], eax
shl edx, 4
add edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, dword [edx + 0x1c]
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x28]
mov dword [esi + 0x20], eax
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.10001490
mov esi, dword [ebx + 0x38]
mov ebx, dword [esi + 0x1c]
mov eax, ebp
mov ecx, dword [esi + 0x18]
cdq
cmp edx, ebx
jg 0x10072d32
jl 0x10072d2a
cmp eax, ecx
jae 0x10072d32
mov eax, ebp
mov dword [esp + 0x24], eax
jmp 0x10072d38
mov eax, ecx
mov dword [esp + 0x24], ecx
test eax, eax
je 0x10072e21
mov dword [esp + 0x20], edi
mov ebp, eax
mov edi, ecx
mov dword [esp + 0x18], ebx
nop dword [eax]
or ecx, ebx
jne 0x10072d9e
mov eax, dword [esi + 0x10]
add eax, 1
js 0x10072e15
cmp eax, dword [esi + 4]
jge 0x10072e15
lea edx, [eax + eax*2]
mov dword [esi + 0x10], eax
shl edx, 4
add edx, dword [esi]
mov eax, dword [edx + 0x18]
mov ecx, dword [edx + 0x1c]
mov dword [esi + 0x1c], ecx
mov ecx, dword [esi + 0x28]
mov dword [esi + 0x18], eax
mov eax, dword [edx + 0x28]
mov dword [esi + 0x20], eax
push dword [edx + 0x14]
push dword [edx + 0x10]
call fcn.10001490
mov eax, dword [esi + 0x1c]
mov edi, dword [esi + 0x18]
mov dword [esp + 0x18], eax
mov eax, ebp
cdq
cmp edx, dword [esp + 0x18]
jg 0x10072daf
jl 0x10072dad
cmp eax, edi
jae 0x10072daf
mov edi, ebp
mov ecx, dword [esi + 0x28]
mov ebx, dword [esp + 0x20]
push edi
push ebx
mov eax, dword [ecx]
call dword [eax + 0x18]
test eax, eax
je 0x10072e15
add ebx, edi
mov eax, edi
sub ebp, edi
cdq
sub dword [esi + 0x18], eax
mov ecx, dword [esi + 0x18]
mov edi, ecx
sbb dword [esi + 0x1c], edx
mov dword [esp + 0x20], ebx
mov ebx, dword [esi + 0x1c]
mov dword [esp + 0x18], ebx
test ebp, ebp
jne 0x10072d50
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
sub ebp, eax
mov ecx, dword [esp + 0x14]
add edi, eax
add ecx, eax
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x28], edi
mov dword [esp + 0x14], ecx
test ebp, ebp
je 0x10072e25
mov ebx, dword [esp + 0x10]
jmp 0x10072cc0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x1c
ret 8
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x30]
mov edi, dword [esp + 0x10]
cmp dword [edi + 0x1e6cc], 0
je 0x10072f40
cmp byte [edi + 0x1f718], 0
je 0x10072f40
lea eax, [ecx + 7]
cdq
and edx, 7
add eax, edx
sar eax, 3
and eax, 0x1fffffff
mov dword [esp + 0x24], eax
jbe 0x10072f40
lea edx, [edi + 0x1f79d]
mov dword [esp + 0x18], edx
nop dword [eax]
mov eax, dword [esi]
mov ebp, 0x10
mov ecx, dword [esi + 4]
mov ebx, eax
mov dword [esp + 0x20], eax
mov esi, edx
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x28], ecx
nop word [eax + eax]
xor ebx, dword [esi]
lea esi, [esi - 4]
mov edx, dword [esp + 0x10]
mov eax, ebx
shr eax, 0x10
mov ecx, ebx
movzx eax, al
mov edi, ebx
shr ecx, 0x18
mov edx, dword [edx + eax*4 + 0x1fba1]
mov eax, dword [esp + 0x10]
add edx, dword [eax + ecx*4 + 0x1f7a1]
mov eax, ebx
mov ecx, dword [esp + 0x10]
shr eax, 8
movzx eax, al
xor edx, dword [ecx + eax*4 + 0x1ffa1]
movzx eax, bl
add edx, dword [ecx + eax*4 + 0x203a1]
xor edx, dword [esp + 0x28]
mov dword [esp + 0x28], edi
mov ebx, edx
sub ebp, 1
jne 0x10072e90
xor ebx, dword [ecx + 0x1f75d]
mov ecx, dword [ecx + 0x1f759]
mov esi, dword [esp + 0x30]
xor ecx, edi
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
mov dword [esi], ecx
mov dword [esi + 4], ebx
mov eax, dword [edi + 0x1f751]
xor eax, ecx
mov dword [esi], eax
mov eax, dword [edi + 0x1f755]
xor eax, ebx
mov dword [esi + 4], eax
add esi, 8
sub dword [esp + 0x24], 1
mov eax, dword [esp + 0x20]
mov dword [edi + 0x1f751], eax
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x1f755], eax
mov dword [esp + 0x30], esi
jne 0x10072e70
mov eax, dword [esp + 0x34]
cmp dword [esp + 0x14], eax
pop edi
cmovl eax, dword [esp + 0x10]
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 8