Function at 0x477b70
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x18], 0x50
mov al, dl
mov dword [ebp - 8], edi
xor ecx, ecx
mov byte [ebp - 1], al
xor edx, edx
mov dword [ebp - 0x1c], ecx
mov esi, dword [edi + 0x4d4]
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], 0x50
mov dword [ebp - 0x28], esi
mov dword [ebp - 0xc], esi
mov dword [ebp - 0x10], ecx
cmp al, 0xcc
jne 0x477bc9
movzx eax, byte [ebp + 8]
add eax, 0xffffffeb
cmp eax, 0x98
ja case.0x477bc2.22
movzx eax, byte [eax + 0x477dbc]
jmp dword [eax*4 + 0x477db4]
cmp al, 0xc0
je case.0x477bc2.22
cmp al, 0xd0
jne case.0x477bc2.21
mov eax, dword [edi + 0x1358]
test eax, eax
je case.0x477bc2.21
nop dword [eax + eax]
cmp dword [eax], 0xa
je 0x477bf7
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x477be0
pop edi
mov eax, 1
pop esi
mov esp, ebp
pop ebp
ret
push ebx
mov ebx, dword [eax + 4]
test ebx, ebx
je 0x477d4d
test edx, edx
jne 0x477d4a
movzx eax, word [ebx]
mov ecx, eax
cmp eax, 0x1e
ja 0x477d3f
mov edi, dword [edi + 0x47c]
test edi, edi
je 0x477c32
mov eax, 1
shl eax, cl
test edi, eax
jne case.0x477c3e.22
add ecx, 0xffffffeb
cmp ecx, 4
ja case.0x477c3e.22
jmp dword [ecx*4 + 0x477e58]
mov ecx, 0xd1
mov eax, 0x1c
jmp 0x477c73
mov ecx, 0x20e
mov eax, 0x20
jmp 0x477c73
mov ecx, 0xd2
mov eax, 0x30
jmp 0x477c73
mov ecx, 0xd3
mov eax, 0x42
cmp dword [ebp - 0x1c], 0
movzx edi, ax
mov dword [ebp - 0x14], edi
jne 0x477c9f
mov edi, dword [ebp - 8]
cmp word [edi + 0x4e8], ax
mov edi, dword [ebp - 0x14]
ja 0x477c9f
movzx edi, ax
cmp dword [ebp - 0x18], edi
jbe 0x477c9c
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x18], edi
mov edi, dword [ebp - 0x14]
cmp dword [ebp - 0xc], 0
jne 0x477cc1
mov edi, dword [ebp - 0xc]
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 8]
cmp word [edi + 0x4e8], ax
mov edi, dword [ebp - 0xc]
cmove edi, ecx
mov dword [ebp - 0xc], edi
mov edi, dword [ebp - 0x14]
cmp dword [ebp - 0x24], 0
movzx edi, di
je 0x477ccf
cmp dword [ebp - 0x20], edi
jbe 0x477ce4
mov esi, dword [ebp - 8]
cmp word [esi + 0x4e8], ax
mov esi, dword [ebp - 0x28]
ja 0x477ce4
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x20], edi
mov al, byte [ebp - 1]
cmp al, 0xc0
jne 0x477d17
movzx eax, byte [ebp + 8]
add eax, 0xfffffff9
cmp eax, 0xa8
ja case.0x477d30.21
movzx eax, byte [eax + 0x477e74]
jmp dword [eax*4 + 0x477e6c]
xor edx, edx
mov dword [ebp - 0x10], 1
cmp esi, ecx
sete dl
jmp case.0x477c3e.22
cmp al, 0xcc
jne case.0x477c3e.22
movzx eax, byte [ebp + 8]
add eax, 0xffffffed
cmp eax, 0x96
ja case.0x477d30.21
movzx eax, byte [eax + 0x477f28]
jmp dword [eax*4 + 0x477f20]
mov edx, 1
mov edi, dword [ebp - 8]
mov ebx, dword [ebx + 4]
test ebx, ebx
jne 0x477c03
mov ecx, dword [ebp - 0x1c]
mov ebx, dword [ebp - 0x18]
test esi, esi
jne 0x477d8f
movzx eax, word [edi + 0x4e8]
cmp ebx, eax
jne 0x477d6a
lea edx, [esi + 1]
mov dword [edi + 0x4d4], ecx
mov esi, ecx
test esi, esi
jne 0x477d8f
mov eax, dword [ebp - 0xc]
lea edx, [esi + 1]
mov esi, eax
mov dword [edi + 0x4d4], eax
test esi, esi
jne 0x477d8f
cmp ebx, dword [ebp - 0x20]
jne 0x477d8d
mov dword [edi + 0x4d4], ecx
mov esi, ecx
test esi, esi
pop ebx
jne 0x477d9d
mov eax, dword [ebp - 0x24]
mov esi, eax
mov dword [edi + 0x4d4], eax
test esi, esi
jne 0x477da9
xor eax, eax
cmp dword [ebp - 0x10], eax
cmovne edx, eax
pop edi
mov eax, edx
pop esi
mov esp, ebp
pop ebp
ret