Function at 0x4a61d0
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 0x4a6af2
mov edi, dword [eax + 4]
movzx ecx, byte [edi]
mov eax, edi
mov esi, edx
cmp cl, 0x3a
jne 0x4a6217
mov eax, 0xffffff97
cmp edx, 1
je 0x4a6af8
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 + 0x9afe90], 0
je 0x4a628b
inc ebx
cmp esi, ebx
jne 0x4a6220
mov eax, dword [ebp + 0xc]
mov edx, dword [eax + 8]
cmp edx, 9
mov dword [esp + 0xc], edx
ja 0x4a62d2
jmp dword [edx*4 + 0x9af700]
mov eax, 0xffffff97
cmp cl, 0x3a
je 0x4a6af8
test edx, edx
je 0x4a62c5
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 0x4a6af8
inc ecx
cmp edx, ecx
jne 0x4a62b0
mov edi, dword [ebp + 8]
mov esi, 0xffffff96
jmp 0x4a6af2
cmp edx, 0x3e8
jne 0x4a631b
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 0x4a642d
test esi, esi
je 0x4a63c6
xor edx, edx
nop dword [eax + eax]
movzx edi, byte [eax + edx]
cmp byte [edi + 0x9afc88], 0
je 0x4a6736
inc edx
cmp esi, edx
jne 0x4a6300
jmp 0x4a63bc
mov edx, dword [eax + 4]
mov eax, dword [edx + 8]
test eax, eax
mov dword [esp + 4], edx
je 0x4a63bc
mov esi, dword [edx + 4]
cmp eax, 1
jne 0x4a65ed
movzx eax, byte [esi]
cmp eax, 0x20
je 0x4a6736
cmp eax, 9
je 0x4a6736
jmp 0x4a63bc
cmp dword [ebp + 0x10], 0
je 0x4a644f
cmp cl, 0x3a
mov edi, dword [ebp + 8]
mov edx, dword [esp + 0xc]
jne 0x4a63eb
mov esi, 0xffffff97
cmp dword [ebp + 0x14], 0
jne 0x4a6ade
test byte [edi + 0x1c], 0x40
jne 0x4a6ade
mov esi, 0xffffff97
lea eax, [edx - 0x3e8]
cmp eax, 8
ja 0x4a65b6
mov ebx, dword [ebp + 0xc]
jmp dword [eax*4 + 0x9af750]
test esi, esi
je 0x4a644f
cmp esi, 1
jne 0x4a6637
movzx eax, byte [eax]
cmp eax, 9
je 0x4a6736
cmp eax, 0x20
je 0x4a6736
cmp cl, 0x3a
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0x14]
mov edx, dword [esp + 0xc]
jne 0x4a6475
mov esi, 0xffffff97
test eax, eax
jne 0x4a6ade
test byte [edi + 0x1c], 0x40
jne 0x4a6ade
mov esi, 0xffffff97
cmp edx, 0x3e8
jle 0x4a6681
lea eax, [edx - 0x3e9]
cmp eax, 5
jb 0x4a6ade
cmp edx, 0x3ee
jne 0x4a68d2
mov eax, dword [esp + 4]
cmp dword [eax + 8], 8
jne 0x4a6ade
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 0x4a6ade
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 0x4a6ade
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 0x4a6ade
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 0x4a6ade
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 0x4a6ade
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 0x4a6ade
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 0x4a6ade
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 0x4a6adc
jmp 0x4a6ade
cmp edx, 9
ja 0x4a6751
mov ebx, dword [ebp + 0xc]
jmp dword [edx*4 + 0x9af728]
movzx edx, byte [esi]
cmp edx, 9
je 0x4a6736
cmp edx, 0x20
je 0x4a6736
movzx edx, byte [esi + eax - 1]
cmp edx, 9
je 0x4a6736
cmp edx, 0x20
je 0x4a6736
xor edx, edx
movzx edi, byte [esi + edx]
cmp dword [edi*4 + 0x9af788], 0
je 0x4a6736
inc edx
cmp eax, edx
jne 0x4a661b
jmp 0x4a63bc
movzx edx, byte [eax]
cmp edx, 9
je 0x4a6736
cmp edx, 0x20
je 0x4a6736
movzx edx, byte [eax + esi - 1]
cmp edx, 9
je 0x4a6736
cmp edx, 0x20
je 0x4a6736
xor edx, edx
movzx edi, byte [eax + edx]
cmp dword [edi*4 + 0x9af788], 0
je 0x4a6736
inc edx
cmp esi, edx
jne 0x4a6665
jmp 0x4a63bc
cmp edx, 0xb
je 0x4a68e0
cmp edx, 0x37
jne 0x4a68d2
test eax, eax
jne 0x4a6767
mov eax, dword [edi + 0x18]
cmp eax, 0xcc
jne 0x4a6b27
mov eax, dword [edi]
and eax, dword [edi + 4]
cmp eax, 0xffffffff
jne 0x4a6ade
mov eax, dword [esp + 4]
cmp dword [eax + 8], 1
jne 0x4a6ade
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 0x4a6ade
mov dword [edi + 4], 0
mov dword [edi], 0
mov esi, 0xffffff96
jmp 0x4a6ade
mov eax, 0xffffff97
cmp cl, 0x3a
mov edi, dword [ebp + 8]
mov esi, 0xffffff96
jne 0x4a6af2
jmp 0x4a6af8
cmp edx, 0x37
mov ebx, dword [ebp + 0xc]
jne 0x4a6ace
cmp dword [ebp + 0x14], 0
je 0x4a6b00
mov esi, 0xffffff96
jmp 0x4a6ade
cmp cl, 0x3a
jne 0x4a6adc
jmp 0x4a6ade
mov eax, dword [edi + 0x1c]
test al, 0x20
jne 0x4a6ade
mov ecx, dword [esp + 4]
mov ecx, dword [ecx + 8]
test ecx, ecx
je 0x4a6ade
or eax, 0x20
mov dword [edi + 0x1c], eax
cmp ecx, 3
jne 0x4a6ade
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
movzx eax, byte [ecx]
mov edx, eax
add dl, 0xc6
cmp dl, 0xf6
jb 0x4a693d
movzx edx, byte [ecx + 1]
mov ebx, edx
add bl, 0xc6
cmp bl, 0xf6
jb 0x4a693d
movzx ecx, byte [ecx + 2]
mov ebx, ecx
add bl, 0xc6
cmp bl, 0xf6
jae 0x4a6cd0
mov dword [edi + 0x18], 0xffffffff
jmp 0x4a6ade
cmp cl, 0x3a
je 0x4a6ade
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 0x4a6af6
test esi, esi
je 0x4a6af2
mov eax, esi
cmp esi, 0xffffff96
jne 0x4a6af8
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 0x4a6ade
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
call fcn.004a7030
mov dword [edi + 4], edx
mov dword [edi], eax
and eax, edx
cmp eax, 0xffffffff
jne 0x4a6ad3
jmp 0x4a6ade
lea ecx, [eax - 0x64]
cmp ecx, 0x64
jb 0x4a6767
add eax, 0xffffff38
cmp eax, 0x63
ja 0x4a6b47
test byte [edi + 0x1c], 0x80
jne 0x4a6767
mov eax, dword [edi]
and eax, dword [edi + 4]
cmp eax, 0xffffffff
jne 0x4a6ade
mov eax, dword [esp + 4]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 8]
call fcn.004a7030
mov dword [edi + 4], edx
mov dword [edi], eax
and eax, edx
cmp eax, 0xffffffff
jne 0x4a6adc
jmp 0x4a6ade
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 0x4a6adc
jmp 0x4a6ade