Function at 0x100014a9
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x99c
push ebx
push esi
push edi
push 0x103
xor esi, esi
lea eax, [ebp - 0x197]
push esi
push eax
mov byte [ebp - 0x198], 0
call sub.msvcrt.dll_memset
add esp, 0xc
mov ebx, 0x1ff
push ebx
lea eax, [ebp - 0x597]
push esi
push eax
mov byte [ebp - 0x598], 0
call sub.msvcrt.dll_memset
add esp, 0xc
push ebx
lea eax, [ebp - 0x397]
push esi
push eax
mov byte [ebp - 0x398], 0
call sub.msvcrt.dll_memset
add esp, 0xc
push ebx
lea eax, [ebp - 0x997]
push esi
push eax
mov byte [ebp - 0x998], 0
call sub.msvcrt.dll_memset
add esp, 0xc
push ebx
lea eax, [ebp - 0x797]
push esi
push eax
mov byte [ebp - 0x798], 0
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x3b
lea eax, [ebp - 0x8b]
push esi
push eax
mov byte [ebp - 0x8c], 0
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x3c
lea eax, [ebp - 0x4f]
push esi
push eax
mov byte [ebp - 0x50], 0
call sub.msvcrt.dll_memset
add esp, 0xc
lea eax, [ebp - 0x198]
push eax
mov dword [ebp - 0xc], esi
call fcn.10001038
mov dword [0x1001f8f8], eax
cmp eax, esi
jl 0x10001895
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 0x198]
push eax
call fcn.1000122d
mov dword [0x1001f8f8], eax
cmp eax, esi
jl 0x10001895
cmp dword [ebp - 4], esi
je 0x100015ac
mov eax, 0x80070032
jmp 0x10001890
push 0x3c
lea eax, [ebp - 0x8c]
push eax
call fcn.10001424
mov dword [0x1001f8f8], eax
cmp eax, esi
jl 0x10001895
xor ecx, ecx
movzx eax, byte [ebp + ecx - 0x8c]
xor edx, edx
push 0x3a
pop edi
div edi
inc ecx
mov al, byte [edx + str.123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz]
mov byte [ebp + ecx - 0x51], al
cmp ecx, 0x3c
jb 0x100015c9
lea eax, [ebp - 0x598]
push eax
lea eax, [ebp - 0x198]
push eax
call fcn.100012d5
mov dword [0x1001f8f8], eax
cmp eax, esi
jl 0x10001895
push 4
lea ecx, [ebp - 0x3d2]
pop edi
mov edx, esi
mov eax, dword [ecx]
cmp eax, esi
je 0x10001620
cmp eax, 0xffffffff
jae 0x10001620
mov edx, eax
add ecx, 0x10
dec edi
jne 0x10001613
cmp edx, 0xffffffff
jne 0x1000162d
xor edx, edx
cmp edx, 0x28
ja 0x1000163c
mov eax, 0x80070272
jmp 0x10001890
mov ecx, 0x80
lea esi, [ebp - 0x598]
lea edi, [ebp - 0x798]
rep movsd dword es:[edi], dword [esi]
xor eax, eax
xor byte [ebp + eax - 0x798], 7
inc eax
cmp eax, 0x200
jb 0x10001651
mov edi, 0x200
push edi
lea eax, [ebp - 0x998]
push 7
push eax
call sub.msvcrt.dll_memset
add esp, 0xc
push 0x20
lea eax, [ebp - 0x397]
push eax
mov byte [ebp - 0x398], 0
call fcn.10001424
mov dword [0x1001f8f8], eax
test eax, eax
js 0x10001895
push 8
lea eax, [ebp - 0x377]
push eax
call fcn.10001424
mov dword [0x1001f8f8], eax
test eax, eax
js 0x10001895
push 0x22
lea eax, [ebp - 0x36f]
push str.1Mz7153HMuxXTuR2R1t78mGSdzaAtNbBWX
push eax
call sub.msvcrt.dll_memcpy
lea eax, [ebp - 0x50]
add esp, 0xc
mov byte [ebp - 0x34d], 0
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x100016d8
sub eax, esi
mov esi, eax
je 0x1000170c
mov eax, 0x156
cmp esi, eax
jbe 0x100016f0
mov esi, eax
push esi
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x2ef]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov byte [ebp + esi - 0x2ef], 0
push edi
call dword [0x1001b104]
mov dword [ebp - 8], eax
test eax, eax
jne 0x10001721
mov eax, 0x8007000e
jmp 0x10001731
mov edi, eax
mov ecx, 0x80
mov esi, 0x10018c50
rep movsd dword es:[edi], dword [esi]
xor eax, eax
mov dword [0x1001f8f8], eax
test eax, eax
js 0x10001895
mov esi, 0x22b1
push esi
call dword [0x1001b104]
mov dword [ebp - 4], eax
test eax, eax
jne 0x10001758
mov eax, 0x8007000e
jmp 0x1000176c
push esi
push 0x10018e50
push eax
mov dword [ebp - 0xc], esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
xor eax, eax
mov dword [0x1001f8f8], eax
test eax, eax
js 0x10001895
mov eax, dword [ebp - 0xc]
mov ecx, eax
and ecx, ebx
sub eax, ecx
add eax, 0x400
push eax
mov dword [ebp - 0x10], eax
call dword [0x1001b104]
mov ebx, eax
test ebx, ebx
jne 0x100017a1
mov eax, 0x8007000e
jmp 0x10001890
mov esi, dword [ebp - 8]
mov ecx, 0x80
mov edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x3e0]
mov dword [ebx + 0x1b8], eax
mov ax, word [ebp - 0x3dc]
push 4
mov word [ebx + 0x1bc], ax
lea eax, [ebp - 0x3da]
lea ecx, [ebx + 0x1be]
pop edx
mov esi, eax
mov edi, ecx
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
add eax, 0x10
add ecx, 0x10
dec edx
movsd dword es:[edi], dword [esi]
jne 0x100017d6
push dword [ebp - 0xc]
lea eax, [ebx + 0x200]
push dword [ebp - 4]
push eax
call sub.msvcrt.dll_memcpy
mov esi, dword [ebp - 0x10]
shr esi, 9
add esp, 0xc
xor eax, eax
test esi, esi
je 0x1000182e
xor edi, edi
test esi, esi
je 0x10001833
push ebx
lea eax, [ebp - 0x198]
push eax
mov eax, edi
call fcn.10001384
test eax, eax
js 0x10001833
inc edi
add ebx, 0x200
cmp edi, esi
jb 0x1000180e
jmp 0x10001833
mov eax, 0x80070057
mov dword [0x1001f8f8], eax
test eax, eax
js 0x10001895
lea eax, [ebp - 0x398]
push eax
lea eax, [ebp - 0x198]
push eax
push 0x20
pop eax
call fcn.10001384
mov dword [0x1001f8f8], eax
test eax, eax
js 0x10001895
lea eax, [ebp - 0x998]
push eax
lea eax, [ebp - 0x198]
push eax
push 0x21
pop eax
call fcn.10001384
mov dword [0x1001f8f8], eax
test eax, eax
js 0x10001895
lea eax, [ebp - 0x798]
push eax
lea eax, [ebp - 0x198]
push eax
push 0x22
pop eax
call fcn.10001384
mov dword [0x1001f8f8], eax
pop edi
pop esi
pop ebx
leave
ret