Function at 0x2177e0
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
mov eax, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [eax]
mov edx, dword [eax + 8]
mov esi, 0xffffff96
test edx, edx
je 0x218102
mov edi, dword [eax + 4]
movzx ecx, byte [edi]
mov eax, edi
mov esi, edx
cmp cl, 0x3a
jne 0x217827
mov eax, 0xffffff97
cmp edx, 1
je 0x218108
lea eax, [edi + 1]
lea esi, [edx - 1]
mov dword [esp + 8], edi
xor ebx, ebx
nop dword [eax]
movzx edi, byte [eax + ebx]
cmp dword [edi*4 + 0x76c190], 0
je 0x21789b
inc ebx
cmp esi, ebx
jne 0x217830
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 8]
cmp edx, 9
mov dword [esp + 0xc], edx
ja case.default.0x217856
jmp dword [edx*4 + 0x76ba00]
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
mov eax, dword [eax + 8]
test eax, eax
je 0x217d46
mov edx, dword [esp + 4]
mov edx, dword [edx + 4]
xor esi, esi
nop dword [eax + eax]
movzx edi, byte [edx + esi]
cmp byte [edi + 0x76be88], 0
je 0x217d46
inc esi
cmp eax, esi
jne 0x217880
jmp 0x2179cc
mov eax, 0xffffff97
cmp cl, 0x3a
je 0x218108
test edx, edx
je 0x2178d5
xor ecx, ecx
mov esi, dword [esp + 8]
nop word cs:[eax + eax]
movzx ebx, byte [esi + ecx]
add bl, 0xbf
cmp bl, 0x1a
jb 0x218108
inc ecx
cmp edx, ecx
jne 0x2178c0
mov edi, dword [ebp + 8]
mov esi, 0xffffff96
jmp 0x218102
cmp edx, 0x3e8
jne case.0x217856.2
mov edx, dword [eax + 4]
mov eax, dword [edx + 4]
mov esi, dword [edx + 8]
cmp dword [ebp + 0x10], 0
mov dword [esp + 4], edx
je 0x217a3d
test esi, esi
je 0x2179d6
xor edx, edx
nop dword [eax + eax]
movzx edi, byte [eax + edx]
cmp byte [edi + 0x76bf88], 0
je 0x217d46
inc edx
cmp esi, edx
jne 0x217910
jmp 0x2179cc
mov edx, dword [eax + 4]
mov eax, dword [edx + 8]
test eax, eax
mov dword [esp + 4], edx
je 0x2179cc
mov esi, dword [edx + 4]
cmp eax, 1
jne 0x217bfd
movzx eax, byte [esi]
cmp eax, 0x20
je 0x217d46
cmp eax, 9
je 0x217d46
jmp 0x2179cc
mov edx, dword [eax + 4]
mov eax, dword [edx + 8]
test eax, eax
mov dword [esp + 4], edx
je 0x2179cc
mov edx, dword [edx + 4]
xor esi, esi
nop word cs:[eax + eax]
movzx edi, byte [edx + esi]
cmp byte [edi + 0x76c088], 0
je 0x217d46
inc esi
cmp eax, esi
jne 0x217980
jmp 0x2179cc
mov eax, dword [eax + 4]
mov dword [esp + 4], eax
mov eax, dword [eax + 8]
test eax, eax
je 0x217d46
mov edx, dword [esp + 4]
mov esi, dword [edx + 4]
movzx edx, byte [esi]
and dl, 0xdf
add dl, 0xbf
cmp dl, 0x19
ja 0x217d46
cmp eax, 1
jne 0x217d0e
cmp dword [ebp + 0x10], 0
je 0x217a5f
cmp cl, 0x3a
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0xc]
jne 0x2179fb
mov esi, 0xffffff97
cmp dword [ebp + 0x14], 0
jne case.0x217a12.1001
test byte [edi + 0x1c], 0x40
jne case.0x217a12.1001
mov esi, 0xffffff97
lea eax, [edx - 0x3e8]
cmp eax, 8
ja case.default.0x217a12
mov ebx, dword [ebp + 0xc]
jmp dword [eax*4 + 0x76ba50]
mov eax, dword [edi + 0x1c]
test al, 0x10
jne case.0x217a12.1001
mov ecx, dword [esp + 4]
cmp dword [ecx + 8], 0
je case.0x217a12.1001
or eax, 0x10
mov dword [edi + 0x1c], eax
jmp 0x2180e3
test esi, esi
je 0x217a5f
cmp esi, 1
jne 0x217c47
movzx eax, byte [eax]
cmp eax, 9
je 0x217d46
cmp eax, 0x20
je 0x217d46
cmp cl, 0x3a
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0xc]
jne 0x217a85
mov esi, 0xffffff97
test eax, eax
jne case.0x217a12.1001
test byte [edi + 0x1c], 0x40
jne case.0x217a12.1001
mov esi, 0xffffff97
cmp edx, 0x3e8
jle 0x217c91
lea eax, [edx - 0x3e9]
cmp eax, 5
jb case.0x217a12.1001
cmp edx, 0x3ee
jne 0x217ee2
mov eax, dword [esp + 4]
cmp dword [eax + 8], 8
jne case.0x217a12.1001
mov eax, dword [eax + 4]
movzx ecx, byte [eax]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x74
jne case.0x217a12.1001
movzx ecx, byte [eax + 1]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x72
jne case.0x217a12.1001
movzx ecx, byte [eax + 2]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x61
jne case.0x217a12.1001
movzx ecx, byte [eax + 3]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x69
jne case.0x217a12.1001
movzx ecx, byte [eax + 4]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x6c
jne case.0x217a12.1001
movzx ecx, byte [eax + 5]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x65
jne case.0x217a12.1001
movzx ecx, byte [eax + 6]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x72
jne case.0x217a12.1001
movzx eax, byte [eax + 7]
mov ecx, eax
add cl, 0xbf
mov edx, eax
or dl, 0x20
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x73
je 0x2180ec
jmp case.0x217a12.1001
cmp edx, 9
ja case.default.0x217bd2
mov ebx, dword [ebp + 0xc]
jmp dword [edx*4 + 0x76ba28]
mov eax, dword [edi + 0x1c]
test al, 1
jne case.0x217a12.1001
mov ecx, dword [esp + 4]
cmp dword [ecx + 8], 0
je case.0x217a12.1001
or eax, 1
mov dword [edi + 0x1c], eax
jmp 0x2180e3
movzx edx, byte [esi]
cmp edx, 9
je 0x217d46
cmp edx, 0x20
je 0x217d46
movzx edx, byte [esi + eax - 1]
cmp edx, 9
je 0x217d46
cmp edx, 0x20
je 0x217d46
xor edx, edx
movzx edi, byte [esi + edx]
cmp dword [edi*4 + 0x76ba88], 0
je 0x217d46
inc edx
cmp eax, edx
jne 0x217c2b
jmp 0x2179cc
movzx edx, byte [eax]
cmp edx, 9
je 0x217d46
cmp edx, 0x20
je 0x217d46
movzx edx, byte [eax + esi - 1]
cmp edx, 9
je 0x217d46
cmp edx, 0x20
je 0x217d46
xor edx, edx
movzx edi, byte [eax + edx]
cmp dword [edi*4 + 0x76ba88], 0
je 0x217d46
inc edx
cmp esi, edx
jne 0x217c75
jmp 0x2179cc
cmp edx, 0xb
je 0x217ef0
cmp edx, 0x37
jne 0x217ee2
test eax, eax
jne 0x217d77
mov eax, dword [edi + 0x18]
cmp eax, 0xcc
jne 0x218137
mov eax, dword [edi]
and eax, dword [edi + 4]
cmp eax, 0xffffffff
jne case.0x217a12.1001
mov eax, dword [esp + 4]
cmp dword [eax + 8], 1
jne case.0x217a12.1001
mov eax, dword [eax + 4]
movzx eax, byte [eax]
mov ecx, eax
add cl, 0xbf
mov edx, eax
or dl, 0x20
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x30
jne case.0x217a12.1001
mov dword [edi + 4], 0
mov dword [edi], 0
mov esi, 0xffffff96
jmp case.0x217a12.1001
mov ebx, 1
jmp 0x217d1e
inc ebx
cmp eax, ebx
je 0x2179cc
movzx edx, byte [esi + ebx]
mov ch, dl
add ch, 0xd0
cmp ch, 0xa
jb 0x217d15
mov ch, dl
and ch, 0xdf
add ch, 0xbf
cmp ch, 0x1a
jb 0x217d15
add edx, 0xffffffd5
cmp edx, 3
ja 0x217d46
cmp edx, 1
jne 0x217d15
mov eax, 0xffffff97
cmp cl, 0x3a
mov edi, dword [ebp + 8]
mov esi, 0xffffff96
jne 0x218102
jmp 0x218108
cmp edx, 0x37
mov ebx, dword [ebp + 0xc]
jne case.0x217bd2.2
cmp dword [ebp + 0x14], 0
je 0x218110
mov esi, 0xffffff96
jmp case.0x217a12.1001
mov ecx, dword [edi + 0x1c]
test cl, 8
jne case.0x217a12.1001
mov eax, dword [esp + 4]
mov eax, dword [eax + 8]
test eax, eax
je case.0x217a12.1001
mov edx, ecx
or edx, 8
mov dword [edi + 0x1c], edx
cmp eax, 5
je 0x2181a6
cmp eax, 4
jne 0x2180e3
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
movzx edx, byte [eax]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x68
mov ebx, dword [ebp + 0xc]
jne 0x2180e3
movzx edx, byte [eax + 1]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x74
mov ebx, dword [ebp + 0xc]
jne 0x2180e3
movzx edx, byte [eax + 2]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x74
mov ebx, dword [ebp + 0xc]
jne 0x2180e3
movzx eax, byte [eax + 3]
mov edx, eax
add dl, 0xbf
mov dh, al
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, eax
cmp dl, 0x70
jne 0x2180e3
jmp 0x218258
mov eax, dword [edi + 0x1c]
test al, 2
jne case.0x217a12.1001
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 8]
test ecx, ecx
je case.0x217a12.1001
mov edx, eax
or edx, 2
mov dword [edi + 0x1c], edx
mov edx, dword [esp + 4]
mov edx, dword [edx + 4]
movzx edx, byte [edx]
cmp dl, 0x2f
jne 0x218185
or eax, 0x402
mov dword [edi + 0x1c], eax
jmp 0x2180e3
mov ecx, dword [edi + 0x1c]
test cl, 4
jne case.0x217a12.1001
mov eax, dword [esp + 4]
mov eax, dword [eax + 8]
test eax, eax
je case.0x217a12.1001
mov edx, ecx
or edx, 4
mov dword [edi + 0x1c], edx
cmp eax, 7
je 0x218266
cmp eax, 4
jne 0x2180e3
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
cmp dword [eax], 0x44414548
jne 0x2180e3
or ecx, 0x104
mov dword [edi + 0x1c], ecx
jmp 0x2180e3
cmp cl, 0x3a
jne 0x2180ec
jmp case.0x217a12.1001
mov eax, dword [edi + 0x1c]
test al, 0x20
jne case.0x217a12.1001
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 8]
test ecx, ecx
je case.0x217a12.1001
or eax, 0x20
mov dword [edi + 0x1c], eax
cmp ecx, 3
jne case.0x217a12.1001
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xc6
cmp dl, 0xf6
jb 0x217f4d
movzx edx, byte [ecx + 1]
mov ebx, edx
add bl, 0xc6
cmp bl, 0xf6
jb 0x217f4d
movzx ecx, byte [ecx + 2]
mov ebx, ecx
add bl, 0xc6
cmp bl, 0xf6
jae 0x2182e0
mov dword [edi + 0x18], 0xffffffff
jmp case.0x217a12.1001
cmp dword [ebp + 0x18], 0
je case.0x217a12.1001
mov eax, dword [edi + 0x1c]
test eax, 0x4000
jne case.0x217a12.1001
mov ecx, dword [esp + 4]
cmp dword [ecx + 8], 0
je case.0x217a12.1001
or eax, 0x4000
mov dword [edi + 0x1c], eax
jmp 0x2180e3
mov eax, dword [esp + 4]
cmp dword [eax + 8], 8
jne case.0x217a12.1001
mov eax, dword [eax + 4]
movzx ecx, byte [eax]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x74
jne case.0x217a12.1001
movzx ecx, byte [eax + 1]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x72
jne case.0x217a12.1001
movzx ecx, byte [eax + 2]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x61
jne case.0x217a12.1001
movzx ecx, byte [eax + 3]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x69
jne case.0x217a12.1001
movzx ecx, byte [eax + 4]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x6c
jne case.0x217a12.1001
movzx ecx, byte [eax + 5]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x65
jne case.0x217a12.1001
movzx ecx, byte [eax + 6]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x72
jne case.0x217a12.1001
movzx eax, byte [eax + 7]
mov ecx, eax
add cl, 0xbf
mov edx, eax
or dl, 0x20
cmp cl, 0x1a
movzx ecx, dl
cmovae ecx, eax
cmp cl, 0x73
je 0x2180e3
jmp case.0x217a12.1001
cmp dword [ebp + 0x14], 0
jne 0x2180e3
test byte [edi + 0x1e], 1
jne 0x2180e3
movsd xmm0, qword [edi + 0x10]
movsd qword [esp + 0x10], xmm0
lea eax, [esp + 0x10]
mov ecx, dword [esp + 4]
push dword [ecx + 8]
push dword [ecx + 4]
push eax
call fcn.002175e0
add esp, 0xc
test eax, eax
je 0x2182a4
mov eax, 0xfffe7fff
and eax, dword [edi + 0x1c]
or eax, 0x10000
mov dword [edi + 0x1c], eax
jmp 0x2180e3
cmp cl, 0x3a
je case.0x217a12.1001
mov eax, dword [ebx]
mov eax, dword [eax + 4]
mov dword [esp + 8], eax
xor esi, esi
mov eax, dword [esp + 8]
cmp byte [eax], 0x3a
je 0x218106
test esi, esi
je 0x218102
mov eax, esi
cmp esi, 0xffffff96
jne 0x218108
or byte [edi + 0x1c], 0x40
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [edi]
and eax, dword [edi + 4]
cmp eax, 0xffffffff
jne case.0x217a12.1001
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
call fcn.00218640
mov dword [edi + 4], edx
mov dword [edi], eax
and eax, edx
cmp eax, 0xffffffff
jne 0x2180e3
jmp case.0x217a12.1001
lea ecx, [eax - 0x64]
cmp ecx, 0x64
jb 0x217d77
add eax, 0xffffff38
cmp eax, 0x63
ja 0x218157
test byte [edi + 0x1c], 0x80
jne 0x217d77
mov eax, dword [edi]
and eax, dword [edi + 4]
cmp eax, 0xffffffff
jne case.0x217a12.1001
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
call fcn.00218640
mov dword [edi + 4], edx
mov dword [edi], eax
and eax, edx
cmp eax, 0xffffffff
jne 0x2180ec
jmp case.0x217a12.1001
cmp ecx, 1
setne cl
cmp dl, 0x2a
setne dl
or dl, cl
jne 0x2180e3
or eax, 0x802
mov dword [edi + 0x1c], eax
jmp 0x2180e3
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
movzx edx, byte [eax]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x68
mov ebx, dword [ebp + 0xc]
jne 0x2180e3
movzx edx, byte [eax + 1]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x74
mov ebx, dword [ebp + 0xc]
jne 0x2180e3
movzx edx, byte [eax + 2]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x74
mov ebx, dword [ebp + 0xc]
jne 0x2180e3
movzx edx, byte [eax + 3]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x70
mov ebx, dword [ebp + 0xc]
jne 0x2180e3
movzx eax, byte [eax + 4]
mov edx, eax
add dl, 0xbf
mov dh, al
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, eax
cmp dl, 0x73
jne 0x2180e3
or ecx, 0x1008
mov dword [edi + 0x1c], ecx
jmp 0x2180e3
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
movzx edx, byte [eax + 6]
cmp edx, 0x53
je 0x2182bb
cmp edx, 0x54
jne 0x2180e3
mov edx, 0x4e4e4f43
xor edx, dword [eax]
mov esi, 0x5443454e
xor esi, dword [eax + 3]
or esi, edx
jne 0x2180e3
or ecx, 0x84
mov dword [edi + 0x1c], ecx
jmp 0x2180e3
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
or byte [edi + 0x1d], 0x80
jmp 0x2180e3
mov edx, 0x4954504f
xor edx, dword [eax]
mov esi, 0x534e4f49
xor esi, dword [eax + 3]
or esi, edx
jne 0x2180e3
or ecx, 0x204
mov dword [edi + 0x1c], ecx
jmp 0x2180e3
lea eax, [eax + eax*4]
lea eax, [edx + eax*2]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*2]
shl eax, 0x10
add eax, 0xeb300000
mov ecx, eax
shr ecx, 0x10
mov dword [edi + 0x18], ecx
cmp eax, 0x640000
setb cl
cmp eax, 0x650000
sete al
or al, cl
je 0x2180ec
jmp case.0x217a12.1001