Function at 0x1000fa70
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1138
call fcn.10035780
push ebx
push ebp
push esi
push edi
xor edx, edx
mov ecx, 0x102
xor eax, eax
lea edi, [esp + 0x934]
mov dword [esp + 0x930], edx
mov dword [esp + 0x524], edx
rep stosd dword es:[edi], eax
mov ecx, 0x102
lea edi, [esp + 0x528]
rep stosd dword es:[edi], eax
mov ecx, 0x102
lea edi, [esp + 0x11c]
mov dword [esp + 0x118], edx
mov dword [esp + 0xd3c], edx
rep stosd dword es:[edi], eax
mov ecx, 0x102
lea edi, [esp + 0xd40]
rep stosd dword es:[edi], eax
mov ecx, 0x40
lea edi, [esp + 0x15]
mov byte [esp + 0x14], al
mov ebx, dword [esp + 0x1160]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
cmp ebx, edx
mov dword [esp + 0x10], edx
stosb byte es:[edi], al
je 0x1000fe46
mov eax, dword [ebx + 0x408]
cmp eax, edx
je 0x1000fe46
cmp eax, 1
jne 0x1000fb17
cmp dword [ebx + 4], edx
je 0x1000fe46
mov eax, dword [ebx + 0x814]
cmp eax, edx
je 0x1000fe46
cmp eax, 1
jne 0x1000fb36
cmp dword [ebx + 0x410], edx
je 0x1000fe46
mov eax, dword [ebx + 0xc20]
cmp eax, edx
je 0x1000fe46
cmp eax, 1
jne 0x1000fb55
cmp dword [ebx + 0x81c], edx
je 0x1000fe46
cmp dword [esp + 0x115c], edx
je 0x1000fe46
cmp dword [esp + 0x114c], edx
je 0x1000fe46
cmp dword [esp + 0x1154], edx
je 0x1000fe46
mov eax, dword [esp + 0x1150]
cmp eax, 1
jb 0x1000fe46
cmp eax, 5
ja 0x1000fe46
lea edi, [ebx + 0x40c]
push edi
call fcn.10014410
add eax, 7
mov ebp, dword [esp + 0x115c]
cdq
and edx, 7
add esp, 4
add eax, edx
sar eax, 3
cmp ebp, eax
jg 0x1000fe34
cmp ebp, 0x32
jg 0x1000fe34
push 1
lea eax, [esp + 0xd40]
push ebx
push eax
call fcn.10007000
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1000fe4b
mov ecx, dword [edi + 0x408]
lea edx, [esp + 0x118]
shl ecx, 5
push ecx
push edx
call fcn.1000b9c0
mov esi, eax
add esp, 8
test esi, esi
jl 0x1000fe4b
lea eax, [ebx + 0x40c]
lea ecx, [esp + 0x118]
push eax
lea eax, [esp + 0x11c]
push eax
push ecx
call fcn.10006050
mov esi, eax
lea edx, [esp + 0x124]
push ebx
lea eax, [ebx + 0x818]
push edx
push eax
lea eax, [esp + 0x948]
push eax
call fcn.10006690
add esp, 0x1c
or esi, eax
jne 0x1000fe4b
lea ecx, [esp + 0x930]
push ecx
call fcn.10014410
add eax, 7
push ebx
cdq
and edx, 7
add eax, edx
mov esi, eax
sar esi, 3
call fcn.10014410
add eax, 7
mov ecx, 0x41
cdq
and edx, 7
lea edi, [esp + 0x1c]
add edx, eax
xor eax, eax
sar edx, 3
sub edx, esi
push esi
rep stosd dword es:[edi], eax
lea eax, [esp + 0x93c]
lea ecx, [esp + edx + 0x20]
push eax
push ecx
call fcn.10014190
mov eax, dword [esp + 0xd4c]
mov edx, dword [esp + 0x1164]
push edx
lea edx, [esp + 0x2c]
lea ecx, [eax*4]
lea eax, [esp + 0x28]
push ecx
push edx
lea ecx, [esp + 0x34]
push eax
push ecx
call fcn.1000dc60
lea edx, [esp + 0x3c]
push ebp
lea eax, [esp + 0x95c]
push edx
push eax
call fcn.10014230
mov esi, eax
add esp, 0x34
test esi, esi
jne 0x1000fe4b
xor ecx, ecx
test ebp, ebp
jle 0x1000fd0a
mov esi, dword [esp + 0x1154]
lea edx, [esp + 0x14]
sub esi, edx
lea eax, [esp + ecx + 0x14]
mov dl, byte [esi + eax]
xor byte [eax], dl
inc ecx
cmp ecx, ebp
jl 0x1000fcfc
lea eax, [esp + 0x14]
push ebp
lea ecx, [esp + 0x528]
push eax
push ecx
call fcn.10014230
mov esi, eax
add esp, 0xc
test esi, esi
jne 0x1000fe4b
lea edi, [ebx + 0x40c]
lea edx, [esp + 0x524]
push edi
lea eax, [esp + 0x528]
push edx
push eax
call fcn.10006050
lea ecx, [esp + 0x530]
mov esi, eax
push edi
lea edx, [esp + 0x128]
push ecx
lea eax, [esp + 0x538]
push edx
push eax
call fcn.10006110
mov edx, dword [esp + 0x1178]
lea ecx, [esp + 0x540]
or esi, eax
push edi
push ecx
lea eax, [esp + 0x548]
push edx
push eax
call fcn.10006180
add esp, 0x2c
or esi, eax
jne 0x1000fe4b
lea ecx, [esp + 0x524]
lea edx, [esp + 0xd3c]
push ecx
lea eax, [esp + 0x11c]
push edx
push eax
call fcn.10007b00
mov ecx, dword [esp + 0x52c]
mov eax, 1
add esp, 0xc
cmp ecx, eax
jne 0x1000fdca
cmp dword [esp + 0x11c], eax
je 0x1000fdf9
mov ecx, dword [edi + 0x408]
lea edx, [esp + 0x118]
shl ecx, 5
push ecx
push edx
call fcn.1000b9c0
mov esi, eax
add esp, 8
test esi, esi
jge 0x1000fc09
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1138
ret
mov esi, dword [esp + 0x114c]
lea eax, [esp + 0x930]
push eax
push esi
call fcn.100140e0
lea ecx, [esp + 0x52c]
add esi, 0x40c
push ecx
push esi
call fcn.100140e0
add esp, 0x10
xor esi, esi
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1138
ret
mov esi, 0xffffec71
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x1138
ret
mov esi, 0xffffec72
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1138
ret