Function at 0x66103520
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov eax, 0xffff800f
push edi
xor edi, edi
push esi
push ebx
sub esp, 0x6c
mov ebp, dword [esp + 0x80]
mov byte [esp + 0x34], 0xe8
mov dword [esp + 0x35], 0
mov byte [esp + 0x39], 0xe9
mov dword [esp + 0x3a], 0
mov word [esp + 0x3e], ax
mov dword [esp + 0x40], 0
mov dword [ebp + 0xc], 0
mov dword [ebp + 0x10], 0
mov dword [esp + 0x2c], 0
mov byte [esp + 0x1c], 0
lea esi, [esi]
nop
movzx ecx, byte [esp + 0x1c]
mov eax, edi
movzx esi, al
add esi, dword [ebp]
mov eax, ecx
add eax, dword [ebp + 8]
mov dword [esp], esi
mov dword [esp + 0x28], eax
lea eax, [esp + 0x44]
mov dword [esp + 4], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], esi
call fcn.6610a3b0
mov ebx, eax
test byte [esp + 0x5d], 0x10
jne 0x66103740
mov eax, edi
mov ecx, dword [esp + 0x24]
cmp al, 4
ja 0x66103758
movzx eax, byte [esp + 0x4a]
cmp al, 0xe8
je 0x66103780
mov edx, eax
and edx, 0xfffffffd
cmp dl, 0xe9
je 0x661037b0
mov edx, eax
and edx, 0xfffffff0
cmp dl, 0x70
je 0x66103880
mov edx, eax
and edx, 0xfffffffc
cmp dl, 0xe0
je 0x661038e0
movzx edx, byte [esp + 0x4b]
and edx, 0xfffffff0
cmp dl, 0x80
je 0x66103820
and eax, 0xfffffffe
xor edx, edx
cmp al, 0xc2
jne 0x66103628
xor edx, edx
cmp dword [esp + 0x2c], esi
setbe dl
lea esi, [esi]
nop
cmp dword [esp + 0x2c], esi
jbe 0x6610363b
movzx eax, byte [esp + 0x44]
cmp eax, ebx
jne 0x66103740
lea eax, [ecx + ebx]
mov dword [esp + 0x24], edx
cmp eax, 0x20
ja 0x66103740
mov eax, dword [ebp + 0x10]
cmp eax, 7
ja 0x66103740
mov edx, edi
mov byte [ebp + eax + 0x14], dl
movzx edx, byte [esp + 0x1c]
mov byte [ebp + eax + 0x1c], dl
add eax, 1
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 8]
mov dword [esp + 8], ebx
add eax, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sub.msvcrt.dll_memcpy
mov edx, dword [esp + 0x24]
mov eax, edi
add al, byte [esp + 0x44]
add byte [esp + 0x1c], bl
mov edi, eax
test edx, edx
je 0x66103580
mov byte [esp + 0x20], al
mov dword [esp + 0x1c], edx
cmp al, 4
ja 0x66103748
mov ebx, dword [ebp]
movzx edi, al
lea esi, [ebx + edi]
mov dword [esp + 0x24], ebx
movzx edx, byte [esi]
cmp dl, 0x90
setne bl
test dl, dl
setne cl
test bl, cl
je 0x661036d5
cmp dl, 0xcc
jne 0x66103928
mov ecx, 5
sub ecx, edi
cmp ecx, 1
je 0x66103748
lea ebx, [esi + 1]
cmp dl, byte [esi + 1]
jne 0x66103707
cmp ecx, 2
je 0x66103748
cmp dl, byte [esi + 2]
jne 0x66103707
cmp ecx, 3
je 0x66103748
cmp dl, byte [esi + 3]
jne 0x66103707
cmp ecx, 5
jne 0x66103748
cmp dl, byte [esi + 4]
je 0x66103748
cmp al, 1
ja 0x66103933
mov eax, 2
sub eax, edi
cmp eax, 1
jbe 0x66103933
add eax, esi
jmp 0x66103733
add ebx, 1
cmp ebx, eax
je 0x66103933
cmp dl, byte [ebx]
je 0x66103728
lea esi, [esi]
nop
mov dword [esp + 0x1c], 0
mov eax, dword [esp + 0x1c]
add esp, 0x6c
pop ebx
pop esi
pop edi
pop ebp
ret
lea eax, [esi - 5]
sub eax, dword [esp + 0x28]
mov ebx, 5
mov edx, 1
mov dword [esp + 0x3a], eax
lea eax, [esp + 0x39]
mov dword [esp + 0x20], eax
jmp 0x66103628
mov edx, dword [esp + 0x54]
movzx eax, byte [esp + 0x44]
mov ebx, 5
lea eax, [edx + eax - 5]
xor edx, edx
add eax, esi
sub eax, dword [esp + 0x28]
mov dword [esp + 0x35], eax
lea eax, [esp + 0x34]
mov dword [esp + 0x20], eax
jmp 0x66103628
movzx edx, byte [esp + 0x44]
add edx, esi
cmp al, 0xeb
je 0x661038d0
mov eax, dword [esp + 0x54]
add eax, edx
mov edx, dword [ebp]
cmp edx, eax
ja 0x661037f0
add edx, 5
cmp edx, eax
jbe 0x661037f0
mov edx, dword [esp + 0x2c]
cmp edx, eax
cmovae eax, edx
xor edx, edx
mov dword [esp + 0x2c], eax
jmp 0x66103628
sub eax, dword [esp + 0x28]
xor edx, edx
mov ebx, 5
sub eax, 5
cmp dword [esp + 0x2c], esi
mov dword [esp + 0x3a], eax
lea eax, [esp + 0x39]
setbe dl
mov dword [esp + 0x20], eax
jmp 0x66103628
movzx edx, byte [esp + 0x44]
add edx, dword [esp + 0x54]
add edx, esi
mov dword [esp + 0x24], edx
mov edx, dword [ebp]
cmp dword [esp + 0x24], edx
jb 0x66103848
add edx, 5
cmp dword [esp + 0x24], edx
jb 0x661038b0
lea esi, [esi]
cmp al, 0xf
jne 0x66103851
movzx eax, byte [esp + 0x4b]
and eax, 0xf
mov edx, 0xfffffffa
sub edx, dword [esp + 0x28]
add edx, dword [esp + 0x24]
or eax, 0xffffff80
mov dword [esp + 0x40], edx
mov ebx, 6
xor edx, edx
mov byte [esp + 0x3f], al
lea eax, [esp + 0x3e]
mov dword [esp + 0x20], eax
jmp 0x66103628
movzx edx, byte [esp + 0x44]
add edx, esi
mov dword [esp + 0x24], edx
movsx edx, byte [esp + 0x54]
add edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
mov edx, dword [ebp]
cmp edx, dword [esp + 0x24]
ja 0x66103848
add edx, 5
cmp edx, dword [esp + 0x24]
jbe 0x6610390e
lea esi, [esi]
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x24]
cmp edx, eax
cmovae eax, edx
xor edx, edx
mov dword [esp + 0x2c], eax
jmp 0x66103628
movsx eax, byte [esp + 0x54]
add eax, edx
jmp 0x661037c5
movzx edx, byte [esp + 0x44]
add edx, esi
mov dword [esp + 0x24], edx
movsx edx, byte [esp + 0x54]
add edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
mov edx, dword [ebp]
cmp dword [esp + 0x24], edx
jb 0x66103740
add edx, 5
cmp edx, dword [esp + 0x24]
ja 0x661038b0
mov edx, eax
and edx, 0xfffffffc
cmp dl, 0xe0
jne 0x66103848
jmp 0x66103740
cmp byte [esp + 0x20], 1
jbe 0x66103740
mov eax, dword [esp + 0x24]
sub eax, 5
mov dword [esp], eax
call fcn.6610a370
test eax, eax
je 0x66103740
mov edx, dword [ebp]
movzx eax, byte [edx - 5]
test al, al
setne bl
cmp al, 0x90
setne cl
test bl, cl
je 0x66103967
cmp al, 0xcc
jne 0x66103740
cmp al, byte [edx - 4]
jne 0x66103740
cmp byte [edx - 3], al
jne 0x66103740
cmp byte [edx - 2], al
jne 0x66103740
cmp al, byte [edx - 1]
jne 0x66103740
mov dword [ebp + 0xc], 1
jmp 0x66103748