Function at 0x4c9380
Capabilities:
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x63d360]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4c9d4d
sub esp, 0x5c
mov edx, dword [esp + 0x60]
mov ebx, dword [edx + 8]
mov ecx, dword [ebx + 4]
movzx ebp, byte [edx + 0x50]
nop
mov eax, dword [esp + 0x70]
cmp eax, ecx
jae 0x4c9d47
xchg ebp, eax
mov byte [esp + 0x22], al
xchg ebp, eax
mov ebx, dword [ebx]
lea esi, [eax + eax*2]
lea ebx, [ebx + esi*8]
cmp byte [ebx], 5
je 0x4c9415
mov ebx, dword [esp + 0x64]
mov esi, dword [ebx]
inc esi
imul esi, eax
mov edi, dword [esp + 0x74]
lea ecx, [edi + esi]
mov dword [esp + 0x48], ecx
mov esi, dword [ebx + 0x2c]
shr ecx, 5
cmp esi, ecx
jbe 0x4c9d3e
mov dword [esp + 0x44], ecx
mov esi, dword [ebx + 0x28]
mov ebp, dword [esi + ecx*4]
mov ecx, dword [esp + 0x48]
mov edx, 1
shl edx, cl
mov ecx, edx
and edx, ebp
test edx, edx
jne 0x4c9410
or ecx, ebp
mov ebp, dword [esp + 0x44]
mov dword [esi + ebp*4], ecx
test edx, edx
sete dl
jmp 0x4c941f
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x74]
xor edx, edx
test dl, dl
je 0x4c94a7
mov edx, dword [ebx + 0x24]
mov ebp, dword [ebx + 0x20]
inc ebp
mov esi, dword [ebx + 0x1c]
cmp edx, ebp
jae 0x4c9490
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x510100]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x64]
mov dword [ebx + 0x24], eax
mov eax, dword [0x63d400]
test eax, eax
je 0x4c9481
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebp, dword [ebx + 0x1c]
mov dword [edi + 4], ebp
mov dword [ebx + 0x1c], ecx
mov eax, dword [esp + 0x70]
mov edi, dword [esp + 0x74]
mov ebp, edx
mov esi, ecx
mov dword [ebx + 0x20], ebp
lea edx, [ebp + ebp*2]
mov dword [esi + edx*4 - 0xc], eax
lea ebp, [esi + edx*4 - 0xc]
mov byte [ebp + 4], 0
mov dword [esi + edx*4 - 4], edi
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x6c]
mov esi, dword [esp + 0x68]
jmp 0x4c94c3
mov edx, dword [esp + 0x60]
mov ebp, dword [esp + 0x6c]
mov edi, dword [esp + 0x68]
mov esi, edi
mov edi, dword [ebx + 0x20]
test edi, edi
je 0x4c95f4
mov eax, dword [ebx + 0x1c]
lea ecx, [edi - 1]
lea edi, [edi + edi*2]
lea ebp, [eax + edi*4 - 8]
mov esi, dword [eax + edi*4 - 0xc]
mov edi, dword [eax + edi*4 - 4]
movzx ebp, byte [ebp]
mov dword [ebx + 0x20], ecx
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x68]
jmp 0x4c9632
mov ecx, dword [ebx + 8]
lea edx, [edx + esi*8 + 8]
mov eax, dword [edx]
cmp ecx, eax
jbe 0x4c9d07
mov edx, dword [ebx + 4]
mov dword [edx + eax*4], edi
movzx esi, byte [esp + 0x22]
jmp 0x4c94b5
mov ebx, dword [esp + 0x64]
movzx esi, byte [esp + 0x22]
jmp 0x4c94b5
mov edx, dword [ebx + 8]
test edx, edx
je 0x4c9cb2
cmp edx, 1
jle 0x4c9536
mov edx, dword [ebx + 4]
mov dword [edx + 4], edi
mov ecx, dword [ebx + 0x14]
cmp ecx, 1
jbe 0x4c9cfd
mov edx, dword [ebx + 0x10]
mov ebp, dword [edx + 4]
cmp ebp, 0xffffffff
jne 0x4c9554
movzx esi, byte [esp + 0x22]
jmp 0x4c9567
movzx esi, byte [esp + 0x22]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4c9597
test edi, edi
jle 0x4c9597
cmp edi, ebp
jle 0x4c9597
mov ebp, dword [ebx + 8]
cmp ebp, ecx
jl 0x4c9570
mov ebp, ecx
mov eax, dword [ebx + 4]
cmp eax, edx
je 0x4c9597
mov dword [esp], edx
mov dword [esp + 4], eax
shl ebp, 2
mov dword [esp + 8], ebp
call sym.runtime.memmove
mov ebx, dword [esp + 0x64]
movzx esi, byte [esp + 0x22]
mov edi, dword [esp + 0x30]
xchg esi, eax
test al, al
xchg esi, eax
je 0x4c9ca9
cmp dword [ebx], edi
jne 0x4c94b5
jmp 0x4c9ca0
mov ebx, dword [esp + 0x64]
movzx esi, byte [esp + 0x22]
jmp 0x4c94b5
mov ebx, dword [esp + 0x64]
movzx esi, byte [esp + 0x22]
jmp 0x4c94b5
mov ebx, dword [esp + 0x64]
movzx esi, byte [esp + 0x22]
jmp 0x4c94b5
mov ebx, dword [esp + 0x64]
movzx esi, byte [esp + 0x22]
jmp 0x4c94b5
mov ebx, dword [esp + 0x64]
movzx esi, byte [esp + 0x22]
jmp 0x4c94b5
movzx eax, byte [esp + 0x22]
test al, al
je 0x4c9610
cmp dword [ebx + 0x14], 1
jle 0x4c9610
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + 4]
test eax, eax
setge al
jmp 0x4c9612
xor eax, eax
mov byte [esp + 0x78], al
add esp, 0x5c
ret
mov ebx, dword [esp + 0x64]
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x68]
mov esi, dword [esp + 0x38]
mov ecx, ebp
mov ebp, eax
mov edx, dword [edx + 8]
mov eax, dword [edx + 4]
cmp esi, eax
jae 0x4c9d35
mov dword [esp + 0x48], eax
mov dword [esp + 0x38], esi
mov dword [esp + 0x30], edi
xchg ebp, eax
mov byte [esp + 0x23], al
xchg ebp, eax
mov edx, dword [edx]
mov dword [esp + 0x58], edx
lea esi, [esi + esi*2]
mov dword [esp + 0x40], esi
lea eax, [edx + esi*8]
mov dword [esp + 0x54], eax
movzx eax, byte [eax]
lea ecx, [edx + esi*8]
cmp al, 4
ja 0x4c9ad0
cmp al, 1
ja 0x4c9963
test al, al
jne 0x4c9745
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x4c9699
lea edx, [edx + esi*8 + 8]
mov edx, dword [edx]
xor eax, eax
jmp 0x4c9c60
nop
mov eax, ebp
mov ebp, dword [esp + 0x54]
cmp byte [ebp], 5
je 0x4c973a
mov ebp, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x20]
inc ecx
mov eax, dword [ebx + 0x1c]
cmp ebp, ecx
jae 0x4c9717
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x510100]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x64]
mov dword [ebx + 0x24], eax
mov eax, dword [0x63d400]
test eax, eax
je 0x4c9704
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebp, dword [ebx + 0x1c]
mov dword [edi + 4], ebp
mov dword [ebx + 0x1c], ecx
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x30]
mov eax, ecx
mov ecx, edx
mov edx, dword [esp + 0x58]
mov dword [ebx + 0x20], ecx
lea ebp, [ecx + ecx*2]
mov ecx, ebx
mov ebx, dword [esp + 0x38]
mov dword [eax + ebp*4 - 0xc], ebx
lea ebx, [eax + ebp*4 - 0xc]
mov byte [ebx + 4], 1
mov dword [eax + ebp*4 - 4], edi
movzx eax, byte [esp + 0x23]
mov ebx, ecx
lea esi, [edx + esi*8 + 4]
mov edx, dword [esi]
jmp 0x4c9c60
lea eax, [edx + esi*8 + 4]
mov ecx, dword [eax]
mov ebp, dword [esp + 0x48]
cmp ecx, ebp
jae 0x4c9d2c
mov dword [esp + 0x50], eax
lea eax, [ecx + ecx*2]
lea eax, [edx + eax*8]
movzx eax, byte [eax]
lea edi, [eax - 7]
xchg edi, eax
cmp al, 3
xchg edi, eax
ja 0x4c9872
lea esi, [edx + esi*8 + 8]
mov eax, dword [esi]
cmp eax, ebp
jae 0x4c9d25
mov dword [esp + 0x50], esi
lea ebp, [eax + eax*2]
lea edx, [edx + ebp*8]
cmp byte [edx], 5
je 0x4c97d2
mov edx, dword [ebx]
inc edx
imul edx, eax
mov ebp, dword [esp + 0x30]
lea ecx, [ebp + edx]
mov edx, dword [ebx + 0x2c]
mov edi, ecx
shr edi, 5
cmp edx, edi
jbe 0x4c9d1c
mov edx, dword [ebx + 0x28]
mov ebp, dword [edx + edi*4]
mov esi, 1
shl esi, cl
mov ecx, esi
and esi, ebp
test esi, esi
jne 0x4c97c9
or ecx, ebp
mov dword [edx + edi*4], ecx
test esi, esi
sete dl
mov esi, dword [esp + 0x50]
jmp 0x4c97d4
xor edx, edx
test dl, dl
je 0x4c9864
mov edx, dword [ebx + 0x24]
mov ebp, dword [ebx + 0x20]
inc ebp
mov edi, dword [ebx + 0x1c]
cmp edx, ebp
jae 0x4c9849
mov dword [esp + 0x34], eax
mov dword [esp], edi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x510100]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x64]
mov dword [ebx + 0x24], eax
mov eax, dword [0x63d400]
test eax, eax
je 0x4c983a
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebp, dword [ebx + 0x1c]
mov dword [edi + 4], ebp
mov dword [ebx + 0x1c], ecx
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x50]
mov ebp, edx
mov edi, ecx
mov dword [ebx + 0x20], ebp
lea edx, [ebp + ebp*2]
mov dword [edi + edx*4 - 0xc], eax
lea ebp, [edi + edx*4 - 0xc]
mov byte [ebp + 4], 0
mov ebp, dword [esp + 0x30]
mov dword [edi + edx*4 - 4], ebp
mov edx, dword [esi]
mov edi, dword [ebx]
movzx eax, byte [esp + 0x23]
jmp 0x4c9c60
mov dword [esp + 0x3c], ecx
mov edx, dword [ebx]
mov dword [esp + 0x2c], edx
cmp al, 5
je 0x4c98ca
lea ebp, [edx + 1]
imul ebp, ecx
lea eax, [ebp + edx]
mov ebp, dword [ebx + 0x2c]
mov esi, eax
shr esi, 5
cmp ebp, esi
jbe 0x4c9d13
mov ebp, dword [ebx + 0x28]
mov edi, dword [ebp + esi*4]
mov ecx, eax
mov edx, 1
shl edx, cl
mov eax, edx
and edx, edi
test edx, edx
jne 0x4c98bb
or eax, edi
mov dword [ebp + esi*4], eax
test edx, edx
sete dl
mov ecx, dword [esp + 0x3c]
mov eax, edx
mov edx, dword [esp + 0x2c]
jmp 0x4c98cc
xor eax, eax
test al, al
je 0x4c994f
mov ebp, dword [ebx + 0x24]
mov esi, dword [ebx + 0x20]
inc esi
mov edi, dword [ebx + 0x1c]
cmp ebp, esi
jae 0x4c9939
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x510100]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x64]
mov dword [ebx + 0x24], eax
mov eax, dword [0x63d400]
test eax, eax
je 0x4c992a
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebp, dword [ebx + 0x1c]
mov dword [edi + 4], ebp
mov dword [ebx + 0x1c], ecx
mov esi, edx
mov edi, ecx
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x2c]
mov dword [ebx + 0x20], esi
lea ebp, [esi + esi*2]
mov dword [edi + ebp*4 - 0xc], ecx
lea esi, [edi + ebp*4 - 0xc]
mov byte [esi + 4], 0
mov dword [edi + ebp*4 - 4], edx
mov esi, dword [esp + 0x50]
mov edx, dword [esi]
mov edi, dword [esp + 0x30]
movzx eax, byte [esp + 0x23]
jmp 0x4c9c60
cmp al, 2
jne 0x4c9a5d
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x4c94f7
lea eax, [edx + esi*8 + 8]
mov ecx, dword [eax]
cmp dword [ebx + 8], ecx
jbe 0x4c9a50
mov ebp, dword [ebx + 4]
mov ebp, dword [ebp + ecx*4]
mov ecx, edx
mov edx, dword [esp + 0x54]
cmp byte [edx], 5
je 0x4c9a36
mov edx, dword [ebx + 0x24]
mov ecx, dword [ebx + 0x20]
inc ecx
mov esi, dword [ebx + 0x1c]
cmp edx, ecx
jae 0x4c9a10
mov dword [esp + 0x50], eax
mov dword [esp + 0x28], ebp
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x510100]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x64]
mov dword [ebx + 0x24], eax
mov eax, dword [0x63d400]
test eax, eax
je 0x4c99fd
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebp, dword [ebx + 0x1c]
mov dword [edi + 4], ebp
mov dword [ebx + 0x1c], ecx
mov eax, dword [esp + 0x50]
mov ebp, dword [esp + 0x28]
mov edi, dword [esp + 0x30]
mov esi, ecx
mov ecx, edx
mov dword [ebx + 0x20], ecx
lea edx, [ecx + ecx*2]
mov edi, dword [esp + 0x38]
mov dword [esi + edx*4 - 0xc], edi
lea edi, [esi + edx*4 - 0xc]
mov byte [edi + 4], 1
mov dword [esi + edx*4 - 4], ebp
mov ecx, dword [esp + 0x58]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x30]
mov edx, dword [ebx + 8]
mov eax, dword [eax]
cmp eax, edx
jae 0x4c9d0c
mov edx, dword [ebx + 4]
mov dword [edx + eax*4], edi
mov edx, ecx
movzx ebp, byte [esp + 0x23]
lea esi, [edx + esi*8 + 4]
mov edx, dword [esi]
mov eax, ebp
jmp 0x4c9c60
cmp al, 3
jne 0x4c9520
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x6c]
mov dword [esp], edx
mov dword [esp + 4], edi
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x58]
lea ebp, [ebx + edx*8 + 8]
mov ebp, dword [ebp]
mov dword [esp], eax
mov dword [esp + 4], ecx
xchg ebp, eax
mov byte [esp + 8], al
xchg ebp, eax
call sym.regexp.lazyFlag.match
movzx eax, byte [esp + 0xc]
test al, al
je 0x4c9515
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x58]
lea ebx, [esi + ebx*8 + 4]
mov edx, dword [ebx]
mov ebx, dword [esp + 0x64]
mov edi, dword [esp + 0x30]
movzx eax, byte [esp + 0x23]
jmp 0x4c9c60
mov dword [esp + 0x4c], ecx
cmp al, 7
ja 0x4c9b58
cmp al, 5
je 0x4c9ce5
cmp al, 6
jne 0x4c9af4
lea esi, [edx + esi*8 + 4]
mov edx, dword [esi]
mov eax, ebp
jmp 0x4c9c60
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x6c]
mov dword [esp], edx
mov dword [esp + 4], edi
call ecx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x24], ecx
mov edx, dword [esp + 0x4c]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym.regexp_syntax._Inst_.MatchRunePos
cmp dword [esp + 8], 0xffffffff
je 0x4c95ae
mov ebx, dword [esp + 0x40]
mov esi, dword [esp + 0x58]
lea ebx, [esi + ebx*8 + 4]
mov esi, dword [esp + 0x24]
mov eax, ebx
mov ebx, dword [esp + 0x30]
lea edi, [ebx + esi]
mov edx, dword [eax]
mov ebx, dword [esp + 0x64]
movzx eax, byte [esp + 0x23]
jmp 0x4c9c60
cmp al, 8
je 0x4c9c07
cmp al, 9
je 0x4c9bc2
cmp al, 0xa
jne 0x4c9ccd
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x6c]
mov dword [esp], edx
mov dword [esp + 4], edi
call ecx
mov eax, dword [esp + 8]
cmp eax, 0xa
je 0x4c95bc
cmp eax, 0xffffffff
je 0x4c95bc
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x40]
mov eax, ebx
mov ebx, dword [esp + 0x58]
lea ebx, [ebx + esi*8 + 4]
mov esi, dword [esp + 0x30]
lea edi, [esi + eax]
mov edx, dword [ebx]
mov ebx, dword [esp + 0x64]
movzx eax, byte [esp + 0x23]
jmp 0x4c9c60
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x6c]
mov dword [esp], edx
mov dword [esp + 4], edi
call ecx
cmp dword [esp + 8], 0xffffffff
je 0x4c95ca
mov ebx, dword [esp + 0xc]
mov esi, dword [esp + 0x40]
mov eax, ebx
mov ebx, dword [esp + 0x58]
lea ebx, [ebx + esi*8 + 4]
mov esi, dword [esp + 0x30]
lea edi, [esi + eax]
mov edx, dword [ebx]
mov ebx, dword [esp + 0x64]
movzx eax, byte [esp + 0x23]
jmp 0x4c9c60
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x6c]
mov dword [esp], edx
mov dword [esp + 4], edi
call ecx
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x58]
lea ebx, [edx + ecx*8 + 0xc]
test eax, eax
jbe 0x4c9cc4
mov ebp, dword [esp + 8]
mov ebx, dword [ebx]
cmp dword [ebx], ebp
jne 0x4c95e6
mov ebx, dword [esp + 0xc]
lea esi, [edx + ecx*8 + 4]
mov eax, esi
mov esi, dword [esp + 0x30]
lea edi, [esi + ebx]
mov edx, dword [eax]
mov ebx, dword [esp + 0x64]
movzx eax, byte [esp + 0x23]
mov ebp, dword [ebx]
inc ebp
imul ebp, edx
lea ecx, [edi + ebp]
mov ebp, dword [ebx + 0x2c]
mov esi, ecx
shr esi, 5
cmp ebp, esi
jbe 0x4c9cbb
mov dword [esp + 0x38], edx
mov ebp, dword [ebx + 0x28]
mov ebx, dword [ebp + esi*4]
mov edx, 1
shl edx, cl
test edx, ebx
jne 0x4c9c95
mov ecx, edx
or edx, ebx
mov dword [ebp + esi*4], edx
test ecx, ebx
je 0x4c961a
jmp 0x4c95d8
mov byte [esp + 0x78], 1
add esp, 0x5c
ret
mov byte [esp + 0x78], 1
add esp, 0x5c
ret
mov byte [esp + 0x78], 1
add esp, 0x5c
ret
mov eax, esi
mov ecx, ebp
call sym.runtime.panicIndexU
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
lea eax, [0x5071c0]
mov dword [esp], eax
lea eax, [0x549cb0]
mov dword [esp + 4], eax
call sym.runtime.gopanic
lea eax, [0x5071c0]
mov dword [esp], eax
lea eax, [0x549cb8]
mov dword [esp + 4], eax
call sym.runtime.gopanic
mov eax, 1
call sym.runtime.panicIndex
call sym.runtime.panicIndexU
mov ecx, edx
call sym.runtime.panicIndexU
mov eax, esi
mov ecx, ebp
call sym.runtime.panicIndexU
mov eax, edi
mov ecx, edx
call sym.runtime.panicIndexU
mov ecx, ebp
call sym.runtime.panicIndexU
mov eax, ecx
mov ecx, ebp
call sym.runtime.panicIndexU
mov ecx, eax
mov eax, esi
call sym.runtime.panicIndexU
mov eax, ecx
mov ecx, esi
call sym.runtime.panicIndexU
call sym.runtime.panicIndexU
nop
call sym.runtime.morestack_noctxt
jmp sym.regexp._Regexp_.tryBacktrack