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

Disassembly:
sub esp, 0xf54
mov ecx, 0x100
xor eax, eax
lea edx, [esp + 0x254]
push ebx
push ebp
push esi
mov esi, dword [esp + 0xf74]
push edi
lea edi, [esp + 0x264]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xf74]
xor ebx, ebx
mov dword [esi], ebx
sub edx, ecx
mov al, byte [ecx]
cmp al, 0x30
jb 0x100024fc
cmp al, 0x39
jbe 0x100024e3
cmp al, 0x41
jb 0x100024fc
cmp al, 0x46
jbe 0x100024eb
cmp al, 0x61
jb 0x100024fc
cmp al, 0x66
ja 0x100024fc
cmp al, 0x61
jb 0x100024f5
sub al, 0x20
mov byte [edx + ecx], al
inc ebx
inc ecx
jmp 0x100024d5
mov cl, byte [esp + 0x266]
cmp cl, 0x36
je 0x10002b29
cmp cl, 0x39
je 0x10002b29
cmp ebx, 8
jb 0x10002b29
test bl, 1
je 0x10002533
pop edi
pop esi
pop ebp
mov eax, 0xfffd
pop ebx
add esp, 0xf54
ret
mov eax, dword [esp + 0xf70]
shr ebx, 1
cmp ebx, eax
je 0x10002550
pop edi
pop esi
pop ebp
mov eax, 0xfffd
pop ebx
add esp, 0xf54
ret
cmp ebx, 4
jne 0x1000256a
mov ebx, 5
mov byte [esp + 0x26c], 0x30
mov byte [esp + 0x26d], 0x30
mov al, byte [esp + 0x264]
cmp al, 0x30
jne 0x1000262c
cmp byte [esp + 0x265], 0x30
jne 0x10002777
cmp cl, 0x31
jne 0x10002777
cmp byte [esp + 0x267], 0x32
jne 0x10002777
cmp byte [esp + 0x268], 0x30
jne 0x10002777
cmp byte [esp + 0x269], 0x30
jne 0x10002777
cmp byte [esp + 0x26a], 0x30
jne 0x10002777
cmp byte [esp + 0x26b], 0x30
jne 0x10002777
cmp byte [esp + 0x26c], 0x30
jne 0x10002777
cmp byte [esp + 0x26d], 0x30
jne 0x10002777
mov eax, dword [esp + 0xf7c]
mov ecx, dword [esp + 0xf6c]
mov edx, dword [esp + 0xf68]
push eax
push esi
push ecx
push edx
call fcn.10002b70
add esp, 0x10
neg eax
sbb eax, eax
pop edi
and eax, 0xffffd200
pop esi
pop ebp
add eax, 0x9000
pop ebx
add esp, 0xf54
ret
cmp al, 0x31
jne 0x10002777
cmp byte [esp + 0x265], 0x30
jne 0x10002777
cmp cl, 0x30
jne 0x10002777
cmp byte [esp + 0x267], 0x32
jne 0x10002777
mov eax, dword [esp + 0x27e]
mov edx, dword [esp + 0x286]
mov ecx, dword [esp + 0x282]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x28a]
mov dword [esp + 0x44], edx
mov edx, dword [esp + 0x272]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x276]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x26e]
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], eax
lea edx, [esp + 0x2c]
mov dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0x27a]
push 8
lea eax, [esp + 0x50]
push edx
push eax
mov dword [esi], 8
mov dword [esp + 0x64], ecx
call sym.SSSE32.dll_bcdtochr
lea ecx, [esp + 0x34]
push 8
lea edx, [esp + 0x40]
push ecx
push edx
call sym.SSSE32.dll_bcdtochr
cmp byte [esp + 0x268], 0x30
jne 0x10002777
mov al, byte [esp + 0x269]
cmp al, 0x30
jne 0x1000275b
cmp byte [esp + 0x26a], 0x30
jne 0x10002777
cmp byte [esp + 0x26b], 0x30
jne 0x10002777
push 0
lea eax, [esp + 0x1c]
push 8
lea ecx, [esp + 0x64]
push eax
lea edx, [esp + 0x40]
push ecx
lea eax, [esp + 0x3c]
push edx
push eax
call fcn.10001040
mov eax, dword [esp + 0xf7c]
mov edx, dword [esp + 0x18]
mov ecx, eax
pop edi
pop esi
pop ebp
mov dword [ecx], edx
mov edx, dword [esp + 0x10]
pop ebx
mov dword [ecx + 4], edx
mov edx, dword [esp + 0x10]
mov dword [ecx + 8], edx
mov edx, dword [esp + 0x14]
mov dword [ecx + 0xc], edx
mov byte [eax + 0x10], 0
mov eax, 0x9000
add esp, 0xf54
ret
cmp al, 0x31
jne 0x10002777
cmp byte [esp + 0x26a], 0x30
jne 0x10002777
cmp byte [esp + 0x26b], 0x30
jne 0x10002777
push 1
jmp 0x10002708
xor esi, esi
test ebx, ebx
jbe 0x100027b6
lea edi, [esp + 0x265]
mov al, byte [edi - 1]
push eax
call fcn.10001a40
mov cl, byte [edi]
mov dl, al
shl dl, 4
push ecx
mov byte [esp + 0x1b], dl
call fcn.10001a40
mov dl, byte [esp + 0x1b]
add esp, 8
add dl, al
add edi, 2
mov byte [esp + esi + 0xb64], dl
inc esi
cmp esi, ebx
jb 0x10002784
mov dl, byte [esp + 0xb65]
mov al, byte [esp + 0xb64]
xor dl, al
mov eax, 2
cmp ebx, eax
mov byte [esp + 0x264], dl
jbe 0x100027eb
mov cl, byte [esp + eax + 0xb64]
xor dl, cl
inc eax
cmp eax, ebx
jb 0x100027d6
mov byte [esp + 0x264], dl
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x165]
mov byte [esp + 0x64], 0
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0x65]
xor ebp, ebp
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov ecx, 0x3f
xor eax, eax
lea edi, [esp + 0xa65]
mov byte [esp + 0x164], 0x3a
rep stosd dword es:[edi], eax
mov ecx, ebx
mov byte [esp + 0x165], 0x5a
stosw word es:[edi], ax
mov al, byte [esp + 0xf6c]
mov byte [esp + 0x166], 9
shr ecx, 8
test ebx, ebx
mov byte [esp + 0x167], al
mov byte [esp + 0x168], bl
mov byte [esp + 0x169], cl
jbe 0x10002880
mov ecx, ebx
lea esi, [esp + 0xb64]
mov eax, ecx
lea edi, [esp + 0x16a]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [esp + ebx + 0x16a], dl
lea ecx, [esp + 0x164]
add ebx, 7
push ecx
push ebx
mov ebx, dword [esp + 0xf70]
push ebx
call fcn.10001850
lea edx, [esp + 0x70]
push edx
push ebx
call fcn.100018e0
add esp, 0x14
cmp eax, 6
jne 0x100028fc
mov cl, byte [esp + 0x66]
test cl, cl
jne 0x100028fc
mov cl, byte [esp + 0x67]
test cl, cl
jne 0x100028fc
mov cl, byte [esp + 0x68]
cmp cl, 2
je 0x100028d6
cmp cl, 3
je 0x100028d6
cmp cl, 0xe
jne 0x100028fc
cmp byte [esp + 0x69], 0x2e
jne 0x100028fc
push 0xa
mov byte [esp + 0x68], 0
call fcn.10001970
add esp, 4
mov eax, 0x6ff0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf54
ret
test eax, eax
jbe 0x1000291d
mov ecx, eax
lea esi, [esp + 0x64]
mov edx, ecx
lea edi, [esp + 0xa64]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov ebp, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
cmp byte [esp + 0x64], 0x3a
jne 0x10002962
cmp byte [esp + 0x65], 0x5a
jne 0x10002962
lea eax, [esp + 0x64]
mov byte [esp + 0x64], 0
push eax
push ebx
call fcn.100018e0
add esp, 8
cmp eax, 3
jle 0x10002980
test eax, eax
jle 0x1000292b
mov ecx, eax
lea edi, [esp + ebp + 0xa64]
mov edx, ecx
lea esi, [esp + 0x64]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
test eax, eax
jge 0x10002990
push 0xa
call fcn.10001970
add esp, 4
mov eax, 0x6ff0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xf54
ret
pop edi
pop esi
pop ebp
mov eax, 0xffffff58
pop ebx
add esp, 0xf54
ret
movsx edx, byte [esp + 0xa67]
movsx eax, byte [esp + 0xa66]
shl edx, 8
add edx, eax
cmp edx, 0x12c
mov dword [esp + 0x28], edx
jb 0x100029c1
pop edi
pop esi
pop ebp
mov eax, 0xfffffff1
pop ebx
add esp, 0xf54
ret
test edx, edx
jne 0x10002a02
mov bl, byte [esp + 0x66]
push 0xa
mov byte [esp + 0x18], bl
call fcn.10001970
add esp, 4
cmp bl, 0xcc
jne 0x100029ec
pop edi
pop esi
pop ebp
mov eax, 0xfffffff5
pop ebx
add esp, 0xf54
ret
mov eax, dword [esp + 0x14]
pop edi
and eax, 0xff
pop esi
pop ebp
pop ebx
neg eax
add esp, 0xf54
ret
mov ecx, dword [esp + 0xf78]
lea eax, [edx - 2]
mov dword [ecx], eax
lea eax, [edx + 1]
test eax, eax
jbe 0x10002a30
mov ecx, eax
lea esi, [esp + 0x66]
mov ebx, ecx
lea edi, [esp + 0x264]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov bl, byte [esp + 0x265]
mov cl, byte [esp + 0x264]
xor bl, cl
mov ecx, 2
cmp eax, ecx
jbe 0x10002a55
xor bl, byte [esp + ecx + 0x264]
inc ecx
cmp ecx, eax
jb 0x10002a49
mov dl, byte [esp + edx + 0x67]
push 0xa
mov byte [esp + 0x18], dl
call fcn.10001970
add esp, 4
test bl, bl
je 0x10002a7b
pop edi
pop esi
pop ebp
mov eax, 0xfffffff1
pop ebx
add esp, 0xf54
ret
mov ebx, dword [esp + 0x28]
mov ebp, dword [esp + 0xf7c]
xor ecx, ecx
lea edi, [ebx - 2]
test edi, edi
jbe 0x10002aad
mov esi, ebp
mov al, byte [esp + ecx + 0x264]
add esi, 2
mov dl, al
and al, 0xf
shr dl, 4
mov byte [esi - 2], dl
mov byte [esi - 1], al
inc ecx
cmp ecx, edi
jb 0x10002a91
lea edx, [ebx + ebx - 4]
xor ecx, ecx
test edx, edx
jbe 0x10002ad8
mov al, byte [ecx + ebp]
cmp al, 0xa
jae 0x10002ac8
and eax, 0xff
add eax, 0x30
jmp 0x10002ad0
and eax, 0xff
add eax, 0x37
mov byte [ecx + ebp], al
inc ecx
cmp ecx, edx
jb 0x10002ab7
lea eax, [ebx - 2]
push 5
mov byte [ebp + eax*2], 0
call dword [sym.imp.KERNEL32.dll_Sleep]
mov al, byte [esp + 0x14]
test al, al
jne 0x10002b11
lea ecx, [esp + ebx + 0x264]
xor eax, eax
xor edx, edx
pop edi
mov al, byte [ecx - 2]
mov dl, byte [ecx - 1]
shl eax, 8
pop esi
pop ebp
add eax, edx
pop ebx
add esp, 0xf54
ret
cmp al, 0xcc
jne 0x100029ec
pop edi
pop esi
pop ebp
mov eax, 0xfffffff5
pop ebx
add esp, 0xf54
ret
pop edi
pop esi
pop ebp
mov eax, 0xfffe
pop ebx
add esp, 0xf54
ret