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

Disassembly:
mov ecx, dword [0x664c04]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x34]
cmp eax, dword [ecx + 8]
jbe 0x4c3b9d
sub esp, 0xb4
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax]
mov dword [esp + 0xb0], ecx
nop
lea edx, [0x52be20]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x44], eax
lea ecx, [0x51bf60]
mov dword [esp], ecx
mov dword [esp + 4], 0x1000
mov dword [esp + 8], 0x1000
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov dword [esp + 0xac], eax
lea edi, [esp + 0x50]
xor eax, eax
call fcn.0046a5e5
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x50], ecx
mov dword [esp + 0x54], 0x1000
mov dword [esp + 0x58], 0x1000
lea ecx, [0x567794]
mov dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xb0]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x78], 0xffffffff
mov ecx, dword [0x664ca8]
test ecx, ecx
je 0x4c3315
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0x44]
mov dword [edi], eax
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x64]
mov dword [edi + 4], edx
lea edx, [0x52be20]
mov dword [esp], edx
mov dword [esp + 4], eax
lea edx, [esp + 0x50]
mov dword [esp + 8], edx
call sym.runtime.wbMove
mov edi, dword [esp + 0x44]
lea esi, [esp + 0x50]
call fcn.0046aa92
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0xb8]
mov dword [ecx + 0x64], eax
lea edx, [0x567820]
mov dword [esp], edx
mov dword [esp + 4], eax
lea eax, [0x567d2c]
mov dword [esp + 8], eax
lea eax, [0x664ae0]
mov dword [esp + 0xc], eax
lea eax, [0x515f40]
mov dword [esp + 0x10], eax
lea eax, [ecx + 4]
mov dword [esp + 0x14], eax
call sym.encoding_binary.Read
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4c352a
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 4]
mov dword [esp + 0x28], ecx
mov ecx, dword [0x60e278]
mov dword [esp + 0x2c], ecx
movzx ecx, byte [esp + 0x28]
cmp byte [esp + 0x2c], cl
jne 0x4c34df
movzx ecx, byte [esp + 0x29]
cmp byte [esp + 0x2d], cl
jne 0x4c34df
movzx ecx, byte [esp + 0x2a]
cmp byte [esp + 0x2e], cl
jne 0x4c34df
movzx ecx, byte [esp + 0x2b]
cmp byte [esp + 0x2f], cl
jne 0x4c34df
cmp dword [eax + 8], 1
ja 0x4c3428
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x18]
lea ebx, [0x51c0e0]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
call sym.runtime.makeslice64
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x4c], ecx
mov dword [eax + 0x50], ecx
mov ecx, dword [0x664ca8]
test ecx, ecx
je 0x4c341c
call sym.runtime.gcWriteBarrier2
mov dword [edi], edx
mov ecx, dword [eax + 0x48]
mov dword [edi + 4], ecx
mov dword [eax + 0x48], edx
xor ecx, ecx
xor edx, edx
jmp 0x4c354d
mov dword [esp + 0x9c], 0
mov dword [esp + 0xa0], 0
mov dword [esp + 0xa4], 0
mov dword [esp + 0xa8], 0
mov eax, dword [eax + 8]
mov dword [esp], eax
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x51c060]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], eax
lea eax, [0x51c120]
mov dword [esp + 0xa4], eax
lea eax, [0x5664b8]
mov dword [esp + 0xa8], eax
lea eax, [0x541ece]
mov dword [esp], eax
mov dword [esp + 4], 0x35
lea eax, [esp + 0x9c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call sym.fmt.Errorf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
add esp, 0xb4
ret
lea eax, [0x53eb41]
mov dword [esp], eax
mov dword [esp + 4], 0x23
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call sym.fmt.Errorf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
add esp, 0xb4
ret
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
add esp, 0xb4
ret
add ebx, 1
adc esi, 0
mov ecx, ebx
mov edx, esi
mov dword [esp + 0x34], ecx
mov ebx, dword [eax + 0x14]
mov ebp, dword [eax + 0x18]
cmp edx, ebp
xchg esi, ebx
sete bl
xchg esi, ebx
xchg edi, ebx
setb bl
xchg edi, ebx
cmp ecx, ebx
setb cl
and esi, ecx
or esi, edi
xchg esi, eax
test al, al
xchg esi, eax
je 0x4c3717
mov dword [esp + 0x3c], edx
mov dword [esp], eax
call sym.internal_coverage_decodemeta._CoverageMetaFileReader_.rdUint64
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 0x4c]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x3c]
test esi, esi
jne 0x4c3b93
mov ebx, dword [esp + 0x34]
cmp ebx, ecx
jae 0x4c3b8c
mov dword [esp + 0x4c], edx
mov ebp, dword [eax + 0x48]
lea ebp, [ebp + ebx*8]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 4]
mov edx, dword [esp + 8]
mov dword [ebp], edi
mov dword [ebp + 4], edx
test ecx, ecx
jne 0x4c36fe
mov ecx, dword [eax + 0x4c]
cmp ebx, ecx
jae 0x4c3b85
mov ecx, dword [eax + 0x48]
lea ecx, [ecx + ebx*8]
mov edx, dword [ecx + 4]
mov ebp, dword [eax + 0xc]
mov edi, dword [eax + 0x10]
cmp dword [ecx], ebp
seta cl
cmp edx, edi
sete dl
xchg ebp, ebx
seta bl
xchg ebp, ebx
and ecx, edx
or ecx, ebp
test cl, cl
je 0x4c3543
lea edi, [esp + 0x84]
xor eax, eax
call fcn.0046a5ea
mov dword [esp], ebx
mov dword [esp + 4], esi
call sym.runtime.convT64
mov ecx, dword [esp + 8]
lea edx, [0x51c0e0]
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0xb8]
mov ebx, dword [ecx + 0x4c]
mov eax, dword [esp + 0x34]
cmp eax, ebx
jae 0x4c3b7e
mov edx, dword [ecx + 0x48]
lea eax, [edx + eax*8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x51c0e0]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xb8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x51c0e0]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
lea eax, [0x53f0d9]
mov dword [esp], eax
mov dword [esp + 4], 0x24
lea eax, [esp + 0x84]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 3
call sym.fmt.Errorf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
add esp, 0xb4
ret
mov dword [esp + 0xbc], ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc0], eax
add esp, 0xb4
ret
lea eax, [0x51c0e0]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
call sym.runtime.makeslice64
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x14]
mov dword [eax + 0x58], ecx
mov dword [eax + 0x5c], ecx
mov ecx, dword [0x664ca8]
test ecx, ecx
je 0x4c3760
call sym.runtime.gcWriteBarrier2
mov dword [edi], edx
mov ecx, dword [eax + 0x54]
mov dword [edi + 4], ecx
mov dword [eax + 0x54], edx
xor ecx, ecx
xor edx, edx
jmp 0x4c3773
add ebx, 1
adc esi, 0
mov ecx, ebx
mov edx, esi
mov ebx, dword [eax + 0x18]
cmp edx, ebx
sete bl
xchg ebp, ebx
setb bl
xchg ebp, ebx
cmp dword [eax + 0x14], ecx
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, ebx
or esi, ebp
xchg esi, eax
test al, al
xchg esi, eax
je 0x4c393b
mov dword [esp + 0x38], edx
mov dword [esp + 0x30], ecx
mov dword [esp], eax
call sym.internal_coverage_decodemeta._CoverageMetaFileReader_.rdUint64
mov eax, dword [esp + 0xb8]
mov ecx, dword [eax + 0x58]
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x38]
test esi, esi
jne 0x4c3b75
mov ebx, dword [esp + 0x30]
cmp ebx, ecx
jae 0x4c3b6e
mov dword [esp + 0x4c], edx
mov ebp, dword [eax + 0x54]
lea ebp, [ebp + ebx*8]
mov ecx, dword [esp + 0xc]
mov edi, dword [esp + 4]
mov edx, dword [esp + 8]
mov dword [ebp], edi
mov dword [ebp + 4], edx
test ecx, ecx
jne 0x4c3922
mov ecx, dword [eax + 0x58]
cmp ebx, ecx
jae 0x4c3b67
mov ecx, dword [eax + 0x54]
lea ecx, [ecx + ebx*8]
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
mov ebp, dword [eax + 0x10]
cmp dword [eax + 0xc], edx
setb dl
cmp ecx, ebp
seta cl
xchg ebp, ebx
sete bl
xchg ebp, ebx
and edx, ebp
or edx, ecx
test dl, dl
je 0x4c3769
lea edi, [esp + 0x84]
xor eax, eax
call fcn.0046a5ea
mov dword [esp], ebx
mov dword [esp + 4], esi
call sym.runtime.convT64
mov ecx, dword [esp + 8]
lea edx, [0x51c0e0]
mov dword [esp + 0x84], edx
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0xb8]
mov ebx, dword [ecx + 0x58]
mov eax, dword [esp + 0x30]
cmp eax, ebx
jae 0x4c3b60
mov edx, dword [ecx + 0x54]
lea eax, [edx + eax*8]
mov edx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x51c0e0]
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0xb8]
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x10]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x51c0e0]
mov dword [esp + 0x94], ecx
mov dword [esp + 0x98], eax
lea eax, [0x53f0fd]
mov dword [esp], eax
mov dword [esp + 4], 0x24
lea eax, [esp + 0x84]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 3
call sym.fmt.Errorf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
add esp, 0xb4
ret
mov dword [esp + 0xbc], ecx
mov eax, dword [esp + 0x4c]
mov dword [esp + 0xc0], eax
add esp, 0xb4
ret
mov ecx, dword [eax + 0x30]
lea edx, [0x51bf60]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov dword [esp + 0xac], eax
mov ecx, dword [esp + 0xb8]
mov edx, dword [ecx + 0x30]
mov dword [esp + 0x40], edx
mov ebx, dword [ecx + 0x64]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], edx
mov dword [esp + 0xc], edx
call sym.bufio._Reader_.Read
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x4c3b47
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xb8]
cmp dword [ecx + 0x30], eax
jne 0x4c3afc
nop
lea eax, [0x526b80]
mov dword [esp], eax
call sym.runtime.newobject
mov edi, dword [esp + 4]
mov dword [esp + 0x48], edi
xor eax, eax
call fcn.0046a5ea
mov eax, dword [0x664ca8]
test eax, eax
jne 0x4c39d9
mov eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x48]
jmp 0x4c39f0
call sym.runtime.gcWriteBarrier2
mov eax, dword [esp + 0xac]
mov dword [edi], eax
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx]
mov dword [edi + 4], edx
mov dword [ecx], eax
mov eax, dword [esp + 0x40]
mov dword [ecx + 4], eax
mov dword [ecx + 8], eax
lea eax, [0x523280]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0
mov ecx, dword [0x664ca8]
test ecx, ecx
jne 0x4c3a2c
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xb8]
jmp 0x4c3a47
call sym.runtime.gcWriteBarrier3
mov ecx, dword [esp + 0x48]
mov dword [edi], ecx
mov dword [edi + 4], eax
mov edx, dword [esp + 0xb8]
mov ebx, dword [edx + 0x60]
mov dword [edi + 8], ebx
mov dword [eax], ecx
mov dword [edx + 0x60], eax
mov dword [esp], eax
call sym.internal_coverage_stringtab._Reader_.Read
mov eax, dword [esp + 0xb8]
movzx ecx, byte [eax + 0x74]
test cl, cl
je 0x4c3adf
mov dword [esp + 0x7c], 0
mov dword [esp + 0x80], 0
lea ecx, [0x52d020]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.runtime.convT
mov eax, dword [esp + 8]
lea ecx, [0x52d020]
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x80], eax
mov eax, dword [0x625160]
lea ecx, [0x567780]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea eax, [0x53c89b]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x1b
lea eax, [esp + 0x7c]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call sym.fmt.Fprintf
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
add esp, 0xb4
ret
lea eax, [0x53e367]
mov dword [esp], eax
mov dword [esp + 4], 0x21
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call sym.fmt.Errorf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
add esp, 0xb4
ret
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xbc], eax
mov dword [esp + 0xc0], ecx
add esp, 0xb4
ret
mov ecx, ebx
call sym.runtime.panicIndexU
mov eax, ebx
call sym.runtime.panicIndexU
mov eax, ebx
call sym.runtime.panicIndexU
mov eax, dword [esp + 0x30]
call sym.runtime.panicExtendIndexU
mov ecx, ebx
call sym.runtime.panicIndexU
mov eax, ebx
call sym.runtime.panicIndexU
mov eax, ebx
call sym.runtime.panicIndexU
mov eax, dword [esp + 0x34]
call sym.runtime.panicExtendIndexU
nop
call sym.runtime.morestack_noctxt
jmp sym.internal_coverage_decodemeta._CoverageMetaFileReader_.readFileHeader