Function at 0x497990
Capabilities:
Check for software breakpoints

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 8
mov esi, dword [esp + 0x28]
mov ebp, dword [esp + 0x20]
mov eax, dword [esi]
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.004932a0
add esp, 8
test eax, eax
je 0x4979fb
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esi + 8]
cmp eax, 0x25
ja case.default.0x4979c3
jmp dword [eax*4 + 0xa35b90]
cmp byte [ebp + 0x678], 0
jne 0x4979dd
cmp byte [edi + 8], 5
jne 0x497ce1
mov eax, dword [esi + 4]
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.004933f0
add esp, 8
test eax, eax
jne 0x497b3f
jmp 0x497bf8
mov edx, dword [esi]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x497a35
mov esi, dword [edx + 8]
mov eax, 0xfffffded
cmp byte [esi], 0x3a
je case.0x497c74.56
mov edx, dword [edx + 8]
xor esi, esi
nop word [eax + eax]
movzx ebx, byte [edx + esi]
add bl, 0xa5
cmp bl, 0xe6
jae case.0x497c74.56
inc esi
cmp ecx, esi
jne 0x497a20
or byte [ebp + 0x98], 0x40
jmp 0x497c20
cmp eax, 0x42
jne case.0x4979c3.2
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + 0x9c]
test al, 0x40
je 0x497a98
mov edx, dword [esi + 4]
mov ecx, dword [edx + 0xc]
test ecx, ecx
je 0x497bf8
mov edx, dword [edx + 8]
xor ebx, ebx
jmp 0x497a79
inc ebx
cmp ecx, ebx
je 0x497bf8
movzx esi, byte [edx + ebx]
cmp esi, 0x20
je 0x497a70
cmp esi, 9
je 0x497a70
mov esi, dword [esp + 0x28]
jmp 0x497a98
mov eax, dword [esp + 0x20]
movzx eax, byte [eax + 0x9c]
mov edx, dword [esi + 4]
mov ecx, dword [edx + 8]
mov edx, dword [edx + 0xc]
test al, 0x40
jne 0x497c2d
push edx
push ecx
call fcn.00493320
add esp, 8
test eax, eax
jne 0x497b3f
jmp 0x497bf8
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x497bf8
mov esi, dword [ecx + 8]
movzx edx, byte [esi]
and dl, 0xdf
add dl, 0xbf
cmp dl, 0x19
ja 0x497bf8
cmp eax, 1
je 0x497b3f
mov edx, 1
jmp 0x497af5
inc edx
cmp eax, edx
je 0x497b3f
movzx ebx, byte [esi + edx]
mov ecx, ebx
add cl, 0xd0
cmp cl, 0xa
jb 0x497af0
mov ecx, ebx
and cl, 0xdf
add cl, 0xbf
cmp cl, 0x1a
jb 0x497af0
add ebx, 0xffffffd5
cmp ebx, 3
ja 0x497bf8
cmp ebx, 1
jne 0x497af0
jmp 0x497bf8
mov eax, dword [esi + 4]
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.00493370
add esp, 8
test eax, eax
je 0x497bf8
mov ecx, dword [esp + 0x2c]
cmp byte [ebp + 0x678], 0
je 0x497b62
xor edx, edx
cmp byte [ebp + 0x675], 0
setne dl
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
jmp 0x497b76
xor edx, edx
cmp byte [edi + 8], 5
mov ebp, dword [esp + 0x20]
mov esi, dword [esp + 0x28]
jne 0x497c41
mov eax, dword [esi]
mov eax, dword [eax + 8]
movzx ebx, byte [eax]
cmp bl, 0x3a
jne 0x497b9d
mov eax, 0xfffffded
test ecx, ecx
jne case.0x497c74.56
test byte [ebp + 0x98], 0x40
jne case.0x497c74.56
mov eax, dword [esp + 0x28]
mov esi, dword [eax + 8]
mov eax, 0xfffffded
cmp esi, 0x43
ja case.0x497bb2.2
jmp dword [esi*4 + 0xa35d14]
mov ecx, dword [ebp + 0x98]
test cl, 1
jne case.0x497c74.56
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 4]
cmp dword [edx + 0xc], 0
je case.0x497c74.56
or ecx, 1
mov dword [ebp + 0x98], ecx
jmp 0x4980be
mov eax, dword [esi + 4]
push dword [eax + 0xc]
push dword [eax + 8]
call fcn.004933b0
add esp, 8
test eax, eax
jne 0x497b3f
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
cmp dword [eax + 0xc], 0
je 0x498482
mov ecx, dword [eax + 8]
mov eax, 0xfffffded
cmp byte [ecx], 0x3a
mov ecx, dword [esp + 0x20]
je case.0x497c74.56
or byte [ecx + 0x98], 0x40
mov eax, 0xffffff97
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
push edx
push ecx
call fcn.004932e0
add esp, 8
test eax, eax
jne 0x497b3f
jmp 0x497bf8
mov eax, dword [esi]
mov ebx, dword [eax + 8]
movzx edx, byte [ebx]
cmp dl, 0x3a
jne 0x497c60
mov eax, 0xfffffded
test ecx, ecx
jne case.0x497c74.56
test byte [ebp + 0x98], 0x40
jne case.0x497c74.56
mov ecx, dword [esi + 8]
mov eax, 0xfffffded
add ecx, 0xfffffff9
cmp ecx, 0x3a
ja case.0x497c74.8
jmp dword [ecx*4 + 0xa35c28]
mov ecx, dword [ebp + 0x98]
test cl, 0x20
jne case.0x497c74.56
mov edx, dword [esi + 4]
mov esi, dword [edx + 0xc]
test esi, esi
je case.0x497c74.56
or ecx, 0x20
mov dword [ebp + 0x98], ecx
cmp esi, 3
jne case.0x497c74.56
mov edx, dword [edx + 8]
movzx eax, byte [edx]
mov ecx, eax
add cl, 0xc6
cmp cl, 0xf6
jb 0x497cce
movzx ecx, byte [edx + 1]
mov esi, ecx
add cl, 0xc6
cmp cl, 0xf6
jb 0x497cce
movzx edx, byte [edx + 2]
mov ecx, edx
add cl, 0xc6
cmp cl, 0xf6
jae 0x498443
mov word [ebp + 0x94], 0xffff
mov eax, 0xfffffded
jmp case.0x497c74.56
mov eax, dword [esp + 0x20]
test byte [eax + 0x9c], 0x40
mov ecx, dword [esi + 4]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
jne 0x497cfe
push ecx
push eax
jmp 0x497aab
push ecx
push eax
call fcn.004932e0
add esp, 8
test eax, eax
jne 0x497b3f
jmp 0x497bf8
mov ecx, dword [ebp + 0x18]
and ecx, dword [ebp + 0x1c]
cmp ecx, 0xffffffff
jne case.0x497c74.56
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
call fcn.00498840
mov ecx, eax
mov eax, 0xfffffded
mov dword [ebp + 0x1c], edx
mov dword [ebp + 0x18], ecx
and ecx, edx
cmp ecx, 0xffffffff
jne 0x4980be
jmp case.0x497c74.56
test ecx, ecx
jne 0x4980be
test byte [ebp + 0x6c], 1
je 0x4980be
test byte [ebp + 0x9c], 0x10
je 0x4980be
test byte [ebp + 0x9a], 2
jne 0x4980be
movzx eax, byte [ebp + 0xa1]
mov ebx, esp
push eax
push ebx
call fcn.00498a50
add esp, 8
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
push dword [eax + 0xc]
push dword [eax + 8]
push ebx
call fcn.00498770
add esp, 0xc
test eax, eax
je 0x498428
mov eax, 0xfffcffff
and eax, dword [ebp + 0x98]
or eax, 0x20000
mov dword [ebp + 0x98], eax
jmp 0x4980be
mov ecx, dword [ebp + 0x98]
test cl, 2
jne case.0x497c74.56
mov edx, dword [esp + 0x28]
mov esi, dword [edx + 4]
mov edx, dword [esi + 0xc]
test edx, edx
je case.0x497c74.56
mov eax, ecx
or eax, 2
mov dword [ebp + 0x98], eax
mov eax, dword [esi + 8]
movzx eax, byte [eax]
cmp al, 0x2f
jne 0x4982b7
or ecx, 0x802
mov dword [ebp + 0x98], ecx
jmp 0x4980be
mov ecx, dword [ebp + 0x98]
test cl, 0x10
jne case.0x497c74.56
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 4]
cmp dword [edx + 0xc], 0
je case.0x497c74.56
or ecx, 0x10
mov dword [ebp + 0x98], ecx
jmp 0x4980be
mov ecx, dword [ebp + 0x98]
test cl, 8
jne case.0x497c74.56
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 4]
mov esi, dword [edx + 0xc]
test esi, esi
je case.0x497c74.56
mov eax, ecx
or eax, 8
mov dword [ebp + 0x98], eax
cmp esi, 5
je 0x4982db
cmp esi, 4
jne 0x4980be
mov eax, dword [edx + 8]
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
jne 0x4980be
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
jne 0x4980be
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
jne 0x4980be
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 0x4980be
jmp 0x49837d
mov ecx, dword [ebp + 0x98]
test cl, 4
jne case.0x497c74.56
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 4]
mov esi, dword [edx + 0xc]
test esi, esi
je case.0x497c74.56
mov ebx, ecx
or ebx, 4
mov dword [ebp + 0x98], ebx
cmp esi, 7
je 0x49838e
cmp esi, 4
jne 0x4980be
mov eax, dword [edx + 8]
cmp dword [eax], 0x44414548
jne 0x4980be
or ecx, 0x104
mov dword [ebp + 0x98], ecx
jmp 0x4980be
test edx, edx
je case.0x497c74.56
mov ecx, dword [ebp + 0x98]
test cx, cx
js case.0x497c74.56
mov edx, dword [esp + 0x28]
mov edx, dword [edx + 4]
cmp dword [edx + 0xc], 0
je case.0x497c74.56
or ecx, 0x8000
mov dword [ebp + 0x98], ecx
jmp 0x4980be
mov ecx, dword [esp + 0x28]
mov ecx, dword [ecx + 4]
cmp dword [ecx + 0xc], 8
jne case.0x497c74.56
mov ecx, dword [ecx + 8]
movzx edx, byte [ecx]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x74
jne case.0x497c74.56
movzx edx, byte [ecx + 1]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x72
jne case.0x497c74.56
movzx edx, byte [ecx + 2]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x61
jne case.0x497c74.56
movzx edx, byte [ecx + 3]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x69
jne case.0x497c74.56
movzx edx, byte [ecx + 4]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x6c
jne case.0x497c74.56
movzx edx, byte [ecx + 5]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x65
jne case.0x497c74.56
movzx edx, byte [ecx + 6]
mov ebx, edx
add bl, 0xbf
mov bh, dl
or bh, 0x20
cmp bl, 0x1a
movzx ebx, bh
cmovae ebx, edx
cmp bl, 0x72
jne case.0x497c74.56
movzx ecx, byte [ecx + 7]
mov edx, ecx
add dl, 0xbf
mov dh, cl
or dh, 0x20
cmp dl, 0x1a
movzx edx, dh
cmovae edx, ecx
cmp dl, 0x73
jne case.0x497c74.56
jmp 0x4980be
cmp bl, 0x3a
je case.0x497c74.56
mov eax, dword [esp + 0x28]
mov eax, dword [eax]
mov ecx, dword [eax + 8]
xor eax, eax
cmp byte [ecx], 0x3a
je case.0x497c74.56
or byte [ebp + 0x98], 0x40
jmp case.0x497c74.56
movzx ecx, word [ebp + 0x94]
cmp ecx, 0xcc
jne 0x498277
mov ecx, dword [ebp + 0x18]
and ecx, dword [ebp + 0x1c]
cmp ecx, 0xffffffff
jne case.0x497c74.56
mov ecx, dword [esi + 4]
cmp dword [ecx + 0xc], 1
jne case.0x497c74.56
mov eax, dword [ecx + 8]
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
mov eax, 0xfffffded
cmp cl, 0x30
jne case.0x497c74.56
mov dword [ebp + 0x1c], 0
mov dword [ebp + 0x18], 0
mov eax, 0xffffff96
jmp case.0x497c74.56
mov eax, dword [esi + 4]
cmp dword [eax + 0xc], 8
jne 0x4982ad
mov eax, dword [eax + 8]
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 0x4982ad
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 0x4982ad
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 0x4982ad
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 0x4982ad
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 0x4982ad
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 0x4982ad
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 0x4982ad
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
mov eax, 0xfffffded
cmp cl, 0x73
jne case.0x497c74.56
jmp 0x498267
cmp dl, 0x3a
je case.0x497c74.56
xor eax, eax
cmp byte [ebx], 0x3a
je case.0x497c74.56
jmp 0x4980d2
lea eax, [ecx - 0x64]
cmp ax, 0x64
jb 0x4982ad
add ecx, 0xffffff38
cmp cx, 0x63
ja 0x49829e
mov eax, 0xffffff96
test byte [ebp + 0x98], 0x80
jne case.0x497c74.56
mov eax, dword [ebp + 0x18]
and eax, dword [ebp + 0x1c]
cmp eax, 0xffffffff
je 0x4983fd
mov eax, 0xfffffded
jmp case.0x497c74.56
cmp edx, 1
setne dl
cmp al, 0x2a
setne al
or al, dl
jne 0x4980be
or ecx, 0x1002
mov dword [ebp + 0x98], ecx
jmp 0x4980be
mov eax, dword [edx + 8]
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
jne 0x4980be
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
jne 0x4980be
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
jne 0x4980be
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
jne 0x4980be
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 0x4980be
or ecx, 0x2008
mov dword [ebp + 0x98], ecx
jmp 0x4980be
mov edx, dword [edx + 8]
movzx esi, byte [edx + 6]
cmp esi, 0x53
je 0x4983d5
cmp esi, 0x54
jne 0x4980be
mov esi, 0x4e4e4f43
xor esi, dword [edx]
mov ebx, 0x5443454e
xor ebx, dword [edx + 3]
or ebx, esi
jne 0x4980be
test byte [ebp + 0x6c], 1
je case.0x497c74.56
or ecx, 0x84
mov dword [ebp + 0x98], ecx
jmp 0x4980be
mov eax, 0x4954504f
xor eax, dword [edx]
mov esi, 0x534e4f49
xor esi, dword [edx + 3]
or esi, eax
jne 0x4980be
or ecx, 0x204
mov dword [ebp + 0x98], ecx
jmp 0x4980be
mov eax, dword [esi + 4]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
call fcn.00498840
mov ecx, eax
mov dword [ebp + 0x1c], edx
mov dword [ebp + 0x18], eax
and ecx, edx
mov eax, 0xfffffded
cmp ecx, 0xffffffff
jne 0x498267
jmp case.0x497c74.56
push ebx
call fcn.00498a40
add esp, 4
mov byte [ebp + 0xa1], al
or byte [ebp + 0x9a], 1
jmp 0x4980be
movzx eax, ax
add eax, eax
lea eax, [eax + eax*4]
movzx ecx, si
add ecx, eax
add ecx, ecx
lea eax, [ecx + ecx*4]
movzx ecx, dx
lea edx, [eax + ecx]
add eax, ecx
add eax, 0xffffeb30
mov word [ebp + 0x94], ax
movzx ecx, dx
mov eax, 0xfffffded
cmp ecx, 0x1535
je case.0x497c74.56
jmp 0x498267
push 0x1a8
push str.nghttp2_http.c
push str.nv__name__len___0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__assert]
nop word [eax + eax]