Function at 0x1000a010
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x478
cmp byte [0x1000df18], 0
mov dword [ebp - 0x478], 0x20
mov dword [ebp - 0x474], 0x10
mov dword [ebp - 0x470], 0xe
mov dword [ebp - 0x46c], 1
jne 0x1000a04f
call fcn.10007920
push ebx
push esi
push edi
push 0x40
lea eax, [ebp - 0x88]
push 0
push eax
call fcn.10001d60
add esp, 0xc
mov dword [ebp - 0x48], 0x54a6f7a2
lea eax, [ebp - 0x48]
mov dword [ebp - 0x44], 0x8b1df887
lea ecx, [ebp - 0x478]
mov dword [ebp - 0x40], 0x19f48ef3
mov dword [ebp - 0x3c], 0x33c50680
push eax
lea eax, [ebp - 0x28]
mov dword [ebp - 0x28], 0x2283b6f9
push eax
mov dword [ebp - 0x24], 0x3e8106b5
mov dword [ebp - 0x20], 0xe84505ea
mov dword [ebp - 0x1c], 0xf6f8e845
mov dword [ebp - 0x18], 0xb6b7085
mov dword [ebp - 0x14], 0x8bcc440e
mov dword [ebp - 0x10], 0x6feaccd9
mov dword [ebp - 0xc], 0x9464831
call fcn.10009d20
mov edi, dword [ebp + 0xc]
test edi, edi
jne 0x1000a12f
mov ecx, dword [0x100140a8]
lea eax, [ebp - 8]
push eax
lea edx, [ebp - 0x88]
mov dword [ebp - 8], edi
call fcn.100021b0
mov esi, eax
push 0x10
mov dword [ebp + 0xc], esi
lea ebx, [esi + 3]
lea ecx, [esi + 4]
push ebx
push ecx
call fcn.10001cf0
push 0x10
lea edi, [esi + 6]
lea eax, [esi + 7]
push edi
push eax
call fcn.10001cf0
mov eax, dword [ebp + 0xc]
add esi, 9
push 0x10
add eax, 0xa
push esi
push eax
call fcn.10001cf0
mov byte [edi], 0x2d
add esp, 0x24
mov edi, dword [ebp + 0xc]
mov byte [esi], 0x2d
mov byte [ebx], 0x2d
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov ebx, eax
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
lea ecx, [ebx + 8]
push ecx
push 8
call eax
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp + 0xc], esi
test esi, esi
jne 0x1000a16f
mov edi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push 8
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov dword [ebp + 0xc], esi
xor ebx, ebx
jmp 0x1000a184
push ebx
push edi
push esi
call fcn.10001c80
mov edi, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
add esp, 0xc
mov byte [esi + ebx], 0
push 0x10012d50
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 8], eax
test eax, eax
je 0x1000a205
add eax, ebx
mov dword [ebp - 4], eax
je 0x1000a1bb
test esi, esi
je 0x1000a1bf
call edi
mov ecx, dword [ebp - 4]
add ecx, 8
push ecx
push esi
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov esi, eax
mov dword [ebp + 0xc], esi
jmp 0x1000a1d3
test esi, esi
jne 0x1000a1f4
add eax, 8
push eax
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp + 0xc], eax
test esi, esi
je 0x1000a205
push dword [ebp - 8]
lea eax, [ebx + esi]
push 0x10012d50
push eax
call fcn.10001c80
mov ebx, dword [ebp - 4]
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x1000a205
call edi
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
mov dword [ebp + 0xc], esi
push 0x10012d54
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 8], eax
test eax, eax
je 0x1000a286
add eax, ebx
mov dword [ebp - 4], eax
je 0x1000a23c
test esi, esi
je 0x1000a240
call edi
mov ecx, dword [ebp - 4]
add ecx, 8
push ecx
push esi
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov esi, eax
mov dword [ebp + 0xc], esi
jmp 0x1000a254
test esi, esi
jne 0x1000a275
add eax, 8
push eax
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp + 0xc], eax
test esi, esi
je 0x1000a286
push dword [ebp - 8]
lea eax, [ebx + esi]
push 0x10012d54
push eax
call fcn.10001c80
mov ebx, dword [ebp - 4]
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x1000a286
call edi
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
mov dword [ebp + 0xc], esi
push 0x10012d50
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 8], eax
test eax, eax
je 0x1000a307
add eax, ebx
mov dword [ebp - 4], eax
je 0x1000a2bd
test esi, esi
je 0x1000a2c1
call edi
mov ecx, dword [ebp - 4]
add ecx, 8
push ecx
push esi
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov esi, eax
mov dword [ebp + 0xc], esi
jmp 0x1000a2d5
test esi, esi
jne 0x1000a2f6
add eax, 8
push eax
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp + 0xc], eax
test esi, esi
je 0x1000a307
push dword [ebp - 8]
lea eax, [ebx + esi]
push 0x10012d50
push eax
call fcn.10001c80
mov ebx, dword [ebp - 4]
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x1000a307
call edi
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
mov dword [ebp + 0xc], esi
push 0x10012d58
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 8], eax
test eax, eax
je 0x1000a388
add eax, ebx
mov dword [ebp - 4], eax
je 0x1000a33e
test esi, esi
je 0x1000a342
call edi
mov ecx, dword [ebp - 4]
add ecx, 8
push ecx
push esi
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov esi, eax
mov dword [ebp + 0xc], esi
jmp 0x1000a356
test esi, esi
jne 0x1000a377
add eax, 8
push eax
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp + 0xc], eax
test esi, esi
je 0x1000a388
push dword [ebp - 8]
lea eax, [ebx + esi]
push 0x10012d58
push eax
call fcn.10001c80
mov ebx, dword [ebp - 4]
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x1000a388
call edi
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
mov dword [ebp + 0xc], esi
push 0x10012d50
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 8], eax
test eax, eax
je 0x1000a409
add eax, ebx
mov dword [ebp - 4], eax
je 0x1000a3bf
test esi, esi
je 0x1000a3c3
call edi
mov ecx, dword [ebp - 4]
add ecx, 8
push ecx
push esi
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov esi, eax
mov dword [ebp + 0xc], esi
jmp 0x1000a3d7
test esi, esi
jne 0x1000a3f8
add eax, 8
push eax
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp + 0xc], eax
test esi, esi
je 0x1000a409
push dword [ebp - 8]
lea eax, [ebx + esi]
push 0x10012d50
push eax
call fcn.10001c80
mov ebx, dword [ebp - 4]
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x1000a409
call edi
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
mov dword [ebp + 0xc], esi
push str.8920d7a74c76e3234856158dc2d92e91dad5d9d59cfb70a519f04799eaf8d4e609d0d92cad6e2b3c11d8d891c10779673eedba39ea3bc8d079bd417be38433629910d49d465edfc1323ae1671c35a1f057c3c2391d4d30d85c474ba2bcf64ff790d377d25317fa8c529710d68a863c3e389f32bc04e929c1f83541a7d9a658b8837eb14acb48bd5cbf5df5331c8892065daadd1c08e42a3b76d97336d7e6fcdc7d4d4b42be92c2dfa4de8b7bddc78b0f18eecc8f1ffccbdcf1bda9348d508d2392693e39181e6cd91173c33a4cc5b8a1329d3868d9738c99c9293ae4002da02a4e280b5442d45dad49cac12187dcd9446d821585d7a446d91cd78bdc7675a03b
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 8], eax
test eax, eax
je 0x1000a48a
add eax, ebx
mov dword [ebp - 4], eax
je 0x1000a440
test esi, esi
je 0x1000a444
call edi
mov ecx, dword [ebp - 4]
add ecx, 8
push ecx
push esi
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov esi, eax
mov dword [ebp + 0xc], esi
jmp 0x1000a458
test esi, esi
jne 0x1000a479
add eax, 8
push eax
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp + 0xc], eax
test esi, esi
je 0x1000a48a
push dword [ebp - 8]
lea eax, [ebx + esi]
push str.8920d7a74c76e3234856158dc2d92e91dad5d9d59cfb70a519f04799eaf8d4e609d0d92cad6e2b3c11d8d891c10779673eedba39ea3bc8d079bd417be38433629910d49d465edfc1323ae1671c35a1f057c3c2391d4d30d85c474ba2bcf64ff790d377d25317fa8c529710d68a863c3e389f32bc04e929c1f83541a7d9a658b8837eb14acb48bd5cbf5df5331c8892065daadd1c08e42a3b76d97336d7e6fcdc7d4d4b42be92c2dfa4de8b7bddc78b0f18eecc8f1ffccbdcf1bda9348d508d2392693e39181e6cd91173c33a4cc5b8a1329d3868d9738c99c9293ae4002da02a4e280b5442d45dad49cac12187dcd9446d821585d7a446d91cd78bdc7675a03b
push eax
call fcn.10001c80
mov ebx, dword [ebp - 4]
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x1000a48a
call edi
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
mov dword [ebp + 0xc], esi
push 0x10012d50
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 8], eax
test eax, eax
je 0x1000a50b
add eax, ebx
mov dword [ebp - 4], eax
je 0x1000a4c1
test esi, esi
je 0x1000a4c5
call edi
mov ecx, dword [ebp - 4]
add ecx, 8
push ecx
push esi
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
mov esi, eax
mov dword [ebp + 0xc], esi
jmp 0x1000a4d9
test esi, esi
jne 0x1000a4fa
add eax, 8
push eax
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, eax
mov dword [ebp + 0xc], eax
test esi, esi
je 0x1000a50b
push dword [ebp - 8]
lea eax, [ebx + esi]
push 0x10012d50
push eax
call fcn.10001c80
mov ebx, dword [ebp - 4]
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x1000a50b
call edi
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
mov dword [ebp + 0xc], esi
push str.10001
call dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [ebp - 8], eax
test eax, eax
je 0x1000a589
add eax, ebx
mov dword [ebp - 4], eax
je 0x1000a53d
test esi, esi
je 0x1000a541
call edi
mov edi, dword [ebp - 4]
lea ecx, [edi + 8]
push ecx
push esi
push 8
push eax
call dword [sym.imp.KERNEL32.dll_HeapReAlloc]
jmp 0x1000a553
test esi, esi
jne 0x1000a578
add eax, 8
push eax
push 8
call edi
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov edi, dword [ebp - 4]
mov esi, eax
mov dword [ebp + 0xc], esi
test esi, esi
je 0x1000a589
push dword [ebp - 8]
lea eax, [ebx + esi]
push str.10001
push eax
call fcn.10001c80
mov ebx, edi
add esp, 0xc
mov byte [ebx + esi], 0
jmp 0x1000a589
call edi
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor esi, esi
mov dword [ebp + 0xc], esi
mov edi, dword [ebp + 8]
mov cl, bl
and cl, 0xf
mov al, 0x10
sub al, cl
mov ecx, edi
movzx eax, al
push eax
lea eax, [ebx + 0x10]
and eax, 0xfffffff0
push eax
call fcn.1000ba10
push ebx
push esi
push dword [edi]
call fcn.10001c80
mov ebx, dword [edi]
add esp, 0xc
mov ecx, dword [ebp - 0x46c]
xor edx, edx
mov eax, dword [edi + 4]
mov edi, ebx
mov dword [ebp - 4], ebx
cmp ecx, 1
jne 0x1000a63f
mov ebx, dword [ebp - 0x474]
div ebx
mov dword [ebp + 0xc], eax
test eax, eax
je 0x1000a6e1
lea ecx, [ecx]
xor edx, edx
lea ecx, [ebp - 0xa8]
test ebx, ebx
jle 0x1000a5fe
lea esp, [esp]
mov al, byte [edx + edi]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
inc edx
cmp edx, ebx
jl 0x1000a5f0
lea eax, [ebp - 0xa8]
push eax
push eax
lea ecx, [ebp - 0x478]
call fcn.10006150
push dword [ebp - 0x474]
lea eax, [ebp - 0xa8]
push eax
push dword [ebp - 4]
call fcn.10001c80
mov ebx, dword [ebp - 0x474]
add esp, 0xc
add dword [ebp - 4], ebx
add edi, ebx
sub dword [ebp + 0xc], 1
jne 0x1000a5e0
jmp 0x1000a6e1
div dword [ebp - 0x474]
cmp ecx, 2
jne 0x1000a6b9
mov dword [ebp - 8], eax
test eax, eax
je 0x1000a6e1
mov esi, ebx
lea eax, [ebp - 0xa8]
push eax
push eax
lea ecx, [ebp - 0x478]
call fcn.10006150
mov ebx, dword [ebp - 0x474]
lea ecx, [ebp - 0xa8]
xor edx, edx
test ebx, ebx
jle 0x1000a694
lea esp, [esp]
mov al, byte [edx + edi]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
inc edx
cmp edx, ebx
jl 0x1000a680
mov ebx, dword [ebp - 0x474]
push ebx
lea eax, [ebp - 0xa8]
push eax
push esi
call fcn.10001c80
add edi, dword [ebp - 0x474]
add esp, 0xc
add esi, dword [ebp - 0x474]
sub dword [ebp - 8], 1
jne 0x1000a657
jmp 0x1000a6de
test eax, eax
je 0x1000a6e1
mov esi, eax
nop
push ebx
push edi
lea ecx, [ebp - 0x478]
call fcn.10006150
add edi, dword [ebp - 0x474]
add ebx, dword [ebp - 0x474]
sub esi, 1
jne 0x1000a6c0
mov esi, dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10005fc0
mov eax, dword [sym.imp.KERNEL32.dll_GetProcessHeap]
test esi, esi
jne 0x1000a708
push 8
push 8
call eax
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
call eax
push esi
push 0
push eax
call dword [sym.imp.KERNEL32.dll_HeapFree]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8