Function at 0x100020e0
Capabilities:
Check for software breakpoints
Encode data using xor

Disassembly:
sub esp, 0x408
push ebx
push ebp
push esi
push edi
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x219]
mov byte [esp + 0x18], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x19]
mov byte [esp + 0x118], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x119]
mov ebp, dword [esp + 0x41c]
rep stosd dword es:[edi], eax
lea ecx, [esp + 0x218]
xor esi, esi
stosw word es:[edi], ax
mov al, byte [esp + 0x420]
push ecx
mov bl, 0x5a
push 4
push ebp
mov dword [esp + 0x20], esi
mov byte [esp + 0x224], 0x3a
mov byte [esp + 0x225], bl
mov byte [esp + 0x226], 8
mov byte [esp + 0x227], al
call fcn.10001850
add esp, 0xc
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
lea edx, [esp + 0x18]
push edx
push ebp
call fcn.100018e0
add esp, 8
cmp eax, 5
jne 0x100021a9
mov cl, byte [esp + 0x1c]
mov byte [esp + 0x18], 0
mov eax, dword [esp + 0x18]
mov byte [esp + 0x11c], cl
mov dword [esp + 0x118], eax
jmp 0x10002209
test eax, eax
jle 0x100021ca
mov ecx, eax
lea esi, [esp + 0x18]
mov edx, ecx
lea edi, [esp + 0x118]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, eax
cmp byte [esp + 0x18], 0x3a
jne 0x10002209
cmp byte [esp + 0x19], bl
jne 0x10002209
lea eax, [esp + 0x18]
mov byte [esp + 0x18], 0
push eax
push ebp
call fcn.100018e0
add esp, 8
test eax, eax
jle 0x100021d7
mov ecx, eax
lea edi, [esp + esi + 0x118]
mov edx, ecx
lea esi, [esp + 0x19]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
movsx ecx, byte [esp + 0x18]
mov edx, dword [esp + 0x424]
mov eax, ecx
sar eax, 4
and eax, 0xf
and ecx, 0xf
mov dword [edx], eax
shl eax, 4
add eax, ecx
mov ebp, eax
jne 0x10002259
mov bl, byte [esp + ebp + 0x11b]
push 0xa
mov byte [esp + 0x14], bl
call fcn.10001970
add esp, 4
cmp bl, 0xcc
jne 0x1000233a
pop edi
pop esi
pop ebp
mov eax, 0xfffffff5
pop ebx
add esp, 0x408
ret
lea ebx, [ebp + 1]
test ebx, ebx
jle 0x1000227e
mov ecx, ebx
lea esi, [esp + 0x11a]
mov eax, ecx
lea edi, [esp + 0x318]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov cl, byte [esp + ebp + 0x11b]
push 0xa
mov byte [esp + 0x14], cl
call fcn.10001970
mov dl, byte [esp + 0x31d]
mov al, byte [esp + 0x31c]
xor dl, al
mov eax, dword [esp + 0x42c]
mov ecx, 2
add esp, 4
cmp ebx, ecx
mov byte [eax], dl
jle 0x100022c3
mov dl, byte [esp + ecx + 0x318]
xor byte [eax], dl
inc ecx
cmp ecx, ebx
jl 0x100022b5
mov cl, byte [eax]
mov edx, 1
test cl, cl
jne 0x100022d2
mov edx, dword [esp + 0x14]
test ebp, ebp
jle 0x100022ef
mov ecx, ebp
lea esi, [esp + 0x318]
mov ebx, ecx
mov edi, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp edx, 1
mov byte [eax + ebp], 0
jne 0x10002308
pop edi
pop esi
pop ebp
mov eax, 0xffffffef
pop ebx
add esp, 0x408
ret
mov al, byte [esp + 0x10]
test al, al
jne 0x10002326
mov eax, dword [esp + 0x424]
pop edi
pop esi
mov dword [eax], ebp
pop ebp
xor eax, eax
pop ebx
add esp, 0x408
ret
cmp al, 0xcc
jne 0x1000233a
pop edi
pop esi
pop ebp
mov eax, 0xfffffff5
pop ebx
add esp, 0x408
ret
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
and eax, 0xff
pop ebx
add esp, 0x408
ret