Function at 0x10002aa0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x48
mov ebp, dword [esp + 0x5c]
mov eax, dword [0x10009440]
xor eax, esp
mov dword [esp + 0x44], eax
mov byte [esp + 0x40], 0
mov dword [esp + 0x3c], 0xe8
mov byte [esp + 0x38], 0
mov dword [esp + 0x34], 0xe9
mov word [esp + 0x30], 0
mov dword [esp + 0x2c], 0x800f
mov dword [ebp + 0xc], 0
mov dword [ebp + 0x10], 0
mov dword [esp], 0
xor edx, edx
xor ebx, ebx
nop dword [eax + eax]
movzx esi, bl
add esi, dword [ebp]
mov dword [esp + 0xc], edx
movzx edi, dl
mov ebp, dword [ebp + 8]
add ebp, edi
lea eax, [esp + 0x10]
push eax
push esi
call fcn.100019d0
add esp, 8
mov dword [esp + 8], eax
test byte [esp + 0x29], 0x10
jne 0x10002d8e
cmp bl, 5
jb 0x10002b60
mov eax, esi
sub eax, ebp
add eax, 0xfffffffb
mov dword [esp + 0x35], eax
mov dword [esp + 8], 5
mov al, 1
mov dword [esp + 4], eax
lea eax, [esp + 0x34]
cmp esi, dword [esp]
jb 0x10002cf0
jmp 0x10002cff
movzx eax, byte [esp + 0x16]
cmp eax, 0xe8
jne 0x10002bb0
movzx eax, byte [esp + 0x10]
mov ecx, dword [esp + 0x20]
mov edx, esi
sub edx, ebp
add edx, eax
lea eax, [ecx + edx]
add eax, 0xfffffffb
mov dword [esp + 0x3d], eax
mov dword [esp + 8], 5
mov dword [esp + 4], 0
lea eax, [esp + 0x3c]
cmp esi, dword [esp]
jb 0x10002cf0
jmp 0x10002cff
mov edx, eax
and edx, 0xfffffffd
cmp edx, 0xe9
jne 0x10002bca
cmp eax, 0xeb
je 0x10002c02
mov edx, dword [esp + 0x20]
jmp 0x10002c07
mov edx, eax
and edx, 0xfffffff0
cmp edx, 0x70
sete dh
mov ecx, eax
and ecx, 0xfffffffc
cmp ecx, 0xe0
sete dl
or dl, dh
jne 0x10002bf8
movzx ecx, byte [esp + 0x17]
and cl, 0xf0
cmp cl, 0x80
jne 0x10002cd0
test dl, dl
jne 0x10002c59
mov ecx, dword [esp + 0x20]
jmp 0x10002c5e
movsx edx, byte [esp + 0x20]
movzx ecx, byte [esp + 0x10]
add ecx, esi
add ecx, edx
mov edx, dword [esp + 0x5c]
mov edx, dword [edx]
cmp ecx, edx
jb 0x10002c39
add edx, 5
cmp ecx, edx
jae 0x10002c39
mov edx, dword [esp]
cmp edx, ecx
cmovbe edx, ecx
mov dword [esp], edx
mov dword [esp + 4], 0
jmp 0x10002ce7
sub ecx, ebp
add ecx, 0xfffffffb
mov dword [esp + 0x35], ecx
cmp esi, dword [esp]
setae al
mov dword [esp + 4], eax
mov dword [esp + 8], 5
jmp 0x10002b4d
movsx ecx, byte [esp + 0x20]
movzx edx, byte [esp + 0x10]
add edx, esi
add edx, ecx
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx]
cmp edx, ecx
jb 0x10002c8d
add ecx, 5
cmp edx, ecx
jae 0x10002c8d
mov ecx, dword [esp]
cmp ecx, edx
cmovbe ecx, edx
mov dword [esp], ecx
mov dword [esp + 4], 0
jmp 0x10002ce7
mov ecx, eax
and al, 0xfc
cmp al, 0xe0
je 0x10002d8e
cmp ecx, 0xf
movzx eax, byte [esp + 0x17]
cmovne eax, ecx
and al, 0xf
or al, 0x80
mov byte [esp + 0x2d], al
sub edx, ebp
add edx, 0xfffffffa
mov dword [esp + 0x2e], edx
mov dword [esp + 8], 6
mov dword [esp + 4], 0
lea eax, [esp + 0x2c]
cmp esi, dword [esp]
jb 0x10002cf0
jmp 0x10002cff
and eax, 0xfffffffe
cmp eax, 0xc2
sete cl
cmp esi, dword [esp]
setae al
and al, cl
mov dword [esp + 4], eax
mov eax, esi
cmp esi, dword [esp]
jae 0x10002cff
nop
movzx ecx, byte [esp + 0x10]
cmp dword [esp + 8], ecx
jne 0x10002d8e
mov ecx, dword [esp + 8]
lea edx, [ecx + edi]
cmp edx, 0x20
ja 0x10002d8e
mov ecx, dword [esp + 0x5c]
mov ecx, dword [ecx + 0x10]
cmp ecx, 8
jae 0x10002d8e
mov esi, dword [esp + 0x5c]
mov byte [esi + ecx + 0x14], bl
mov ecx, dword [esi + 0x10]
mov ebp, ebx
mov ebx, dword [esp + 0xc]
mov byte [esi + ecx + 0x1c], bl
mov ebx, ebp
inc dword [esi + 0x10]
add edi, dword [esi + 8]
mov ecx, dword [esp + 8]
xchg esi, eax
rep movsb byte es:[edi], byte [esi]
xchg esi, eax
mov ebp, esi
add bl, byte [esp + 0x10]
cmp byte [esp + 4], 0
je 0x10002b00
mov esi, 1
cmp bl, 4
ja 0x10002d90
movzx ecx, bl
mov eax, dword [ebp]
movzx edx, byte [eax + ecx]
test edx, edx
je 0x10002d79
cmp edx, 0xcc
je 0x10002d79
cmp edx, 0x90
jne 0x10002da5
cmp bl, 3
ja 0x10002d90
mov edi, ecx
cmp byte [eax + edi + 1], dl
jne 0x10002da5
inc edi
cmp edi, 4
jne 0x10002d80
jmp 0x10002d90
xor esi, esi
mov ecx, dword [esp + 0x44]
xor ecx, esp
call fcn.10004f5c
mov eax, esi
add esp, 0x48
pop esi
pop edi
pop ebx
pop ebp
ret
cmp bl, 1
ja 0x10002dc4
xor esi, esi
test edx, edx
je 0x10002dc0
cmp edx, 0xcc
je 0x10002dc0
cmp edx, 0x90
jne 0x10002d90
test bl, bl
je 0x10002e1c
add eax, 0xfffffffb
push eax
call fcn.10001980
add esp, 4
xor esi, esi
test eax, eax
je 0x10002d90
mov eax, dword [ebp]
movzx ecx, byte [eax - 5]
test ecx, ecx
je 0x10002df1
cmp ecx, 0xcc
je 0x10002df1
cmp ecx, 0x90
jne 0x10002d90
cmp byte [eax - 4], cl
jne 0x10002d90
cmp byte [eax - 3], cl
jne 0x10002d90
cmp byte [eax - 2], cl
jne 0x10002d90
cmp byte [eax - 1], cl
jne 0x10002d90
mov dword [ebp + 0xc], 1
mov esi, 1
jmp 0x10002d90
inc ecx
cmp ecx, 1
je 0x10002dc4
cmp byte [eax + ecx + 1], dl
je 0x10002e16
jmp 0x10002d90