Function at 0x1004d6b3
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xa8
mov eax, dword [0x102db678]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov ebx, ecx
push 0x20
pop esi
push 0x10171ff0
lea ecx, [ebp - 0x98]
mov dword [ebp - 0x9c], ebx
mov dword [ebp - 0xa8], edi
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0x98], esi
call fcn.10026f05
mov ecx, dword [ebx + 0x28]
lea eax, [ebp - 0x98]
push eax
lea eax, [ebp - 0xa0]
push eax
call fcn.1002b681
lea ecx, [ebp - 0x98]
call fcn.1002716d
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x1004d72c
mov ebx, dword [eax + 4]
jmp 0x1004d72e
xor ebx, ebx
mov dword [ebp - 0x98], ebx
cmp ebx, esi
jbe 0x1004d814
mov ebx, esi
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x94]
push dword [ebp - 0xa4]
mov dword [eax], ecx
mov dword [eax + 4], esi
call fcn.1004d65d
add esp, 0xc
lea eax, [ebp - 0x14]
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x94]
mov dword [eax], ecx
mov dword [eax + 4], esi
call fcn.10075df6
mov edi, dword [ebp - 0x9c]
add esp, 0xc
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x98], eax
push 0x10
pop edx
cmp eax, 3
jl 0x1004d7c4
push 0x32
pop edi
push edx
pop esi
lea eax, [ebp - 0x14]
push eax
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x14]
mov dword [eax], ecx
mov dword [eax + 4], esi
call fcn.10075df6
add esp, 0xc
sub edi, 1
jne 0x1004d792
mov edi, dword [ebp - 0x9c]
push 0x20
pop esi
push 0x10
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x98], eax
pop edx
xor eax, eax
mov dword [ebp - 0xa4], edx
push 8
pop ecx
lea edi, [ebp - 0x54]
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0x9c]
mov ecx, dword [eax + 0x1c]
cmp ecx, edx
mov eax, ecx
mov dword [ebp - 0xa4], ecx
cmova eax, edx
push eax
lea eax, [ebp - 0x14]
push eax
lea eax, [ebp - 0x54]
push eax
call fcn.10147030
add esp, 0xc
lea edi, [ebp - 0x34]
xor eax, eax
push 8
pop ecx
rep stosd dword es:[edi], eax
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x1004d833
add eax, 0xc
jmp 0x1004d838
jae 0x1004d73e
mov ecx, edi
call fcn.10026fdf
lea ecx, [ebp - 0xa0]
call fcn.1002716d
mov eax, edi
jmp 0x1004d908
mov eax, 0x102d42f0
push ebx
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.10147030
add esp, 0xc
lea edi, [ebp - 0x34]
cmp dword [ebp - 0x98], 2
jne 0x1004d870
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x54]
push ebx
push edi
mov dword [eax], ecx
mov ecx, dword [ebp - 0xa4]
mov dword [eax + 4], ecx
call fcn.10075c47
add esp, 0x10
jmp 0x1004d8ce
mov esi, dword [ebp - 0x9c]
push 0x13
pop edx
mov dword [ebp - 0x98], edx
push 8
xor eax, eax
lea edi, [ebp - 0x74]
pop ecx
rep stosd dword es:[edi], eax
mov edi, dword [esi + 0x1c]
xor ecx, ecx
test edi, edi
je 0x1004d8a1
mov al, byte [ebp + ecx - 0x54]
xor al, dl
mov byte [ebp + ecx - 0x74], al
inc ecx
cmp ecx, edi
jb 0x1004d892
push ecx
push ecx
mov eax, esp
lea ecx, [ebp - 0x74]
push ebx
mov dword [eax], ecx
mov dword [eax + 4], edi
lea edi, [ebp - 0x34]
push edi
call fcn.10075c47
mov edx, dword [ebp - 0x98]
add esp, 0x10
sub edx, 1
mov dword [ebp - 0x98], edx
jns 0x1004d87f
push 0x20
pop esi
push 0x1f
pop ecx
cmp ecx, ebx
jb 0x1004d8d6
int3
mov al, byte [ecx + 0x10172034]
cmp al, byte [ecx + edi]
jne 0x1004d8e7
dec ecx
sub esi, 1
jne 0x1004d8d1
mov ecx, dword [ebp - 0xa8]
lea eax, [ebp - 0x34]
push esi
push eax
call fcn.10026f36
lea ecx, [ebp - 0xa0]
call fcn.1002716d
mov eax, dword [ebp - 0xa8]
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.101452d9
leave
ret 8