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

Disassembly:
mov ecx, dword [0x5c5164]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x14]
cmp eax, dword [ecx + 8]
jbe 0x4c8f8e
sub esp, 0x94
mov ecx, dword [esp + 0xa8]
cmp ecx, 4
jbe 0x4c8f83
mov edx, dword [esp + 0xa4]
movzx ebx, byte [edx + 4]
cmp bl, 1
jne 0x4c85d1
cmp ecx, 0x20
jbe 0x4c8f79
mov byte [edx + 0x20], 0
cmp ecx, 0x21
jbe 0x4c8f6d
mov byte [edx + 0x21], 0
cmp ecx, 0x22
jbe 0x4c8f61
mov byte [edx + 0x22], 0
cmp ecx, 0x23
jbe 0x4c8f55
mov byte [edx + 0x23], 0
cmp ecx, 0x30
jbe 0x4c8f4b
mov byte [edx + 0x30], 0
cmp ecx, 0x31
jbe 0x4c8f3f
mov byte [edx + 0x31], 0
jmp 0x4c865c
cmp bl, 2
jne 0x4c865c
cmp ecx, 0x28
jbe 0x4c8f35
mov byte [edx + 0x28], 0
cmp ecx, 0x29
jbe 0x4c8f29
mov byte [edx + 0x29], 0
cmp ecx, 0x2a
jbe 0x4c8f1d
mov byte [edx + 0x2a], 0
cmp ecx, 0x2b
jbe 0x4c8f11
mov byte [edx + 0x2b], 0
cmp ecx, 0x2c
jbe 0x4c8f05
mov byte [edx + 0x2c], 0
cmp ecx, 0x2d
jbe 0x4c8ef9
mov byte [edx + 0x2d], 0
cmp ecx, 0x2e
jbe 0x4c8eed
mov byte [edx + 0x2e], 0
cmp ecx, 0x2f
jbe 0x4c8ee1
mov byte [edx + 0x2f], 0
cmp ecx, 0x3c
jbe 0x4c8ed7
mov byte [edx + 0x3c], 0
cmp ecx, 0x3d
jbe 0x4c8ecb
mov byte [edx + 0x3d], 0
lea eax, [0x4e08e0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0xa8]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xac]
mov dword [eax + 8], edx
mov ebx, dword [0x5c5260]
test ebx, ebx
jne 0x4c8695
mov ebx, dword [esp + 0xa4]
jmp 0x4c86a3
call sym.runtime.gcWriteBarrier1
mov ebx, dword [esp + 0xa4]
mov dword [edi], ebx
mov dword [eax], ebx
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax + 0x14], 0xffffffff
lea ecx, [0x514a54]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.debug_elf.NewFile
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
test eax, eax
jne 0x4c8722
mov ebx, dword [esp + 8]
mov dword [esp + 0x80], ebx
mov ebp, dword [ebx + 0x28]
mov dword [esp + 0x90], ebp
mov edi, dword [ebx + 0x2c]
mov dword [esp + 0x6c], edi
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xac]
xor esi, esi
xor esi, esi
mov dword [esp + 0x48], esi
xor esi, esi
mov dword [esp + 0x7c], esi
xor esi, esi
jmp 0x4c87ea
mov dword [esp + 0x8c], edx
mov dword [esp + 0x88], ecx
lea eax, [0x4e02e0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x9c]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4c875f
mov ecx, dword [esp + 0x98]
jmp 0x4c876d
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x98]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov dword [eax + 4], 5
lea ecx, [0x4ed668]
mov dword [eax], ecx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 0x10], ecx
mov ecx, dword [0x5c5260]
test ecx, ecx
jne 0x4c879c
mov ecx, dword [esp + 0x88]
jmp 0x4c87aa
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x88]
mov dword [edi], ecx
mov dword [eax + 0x14], ecx
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
lea ecx, [0x514a04]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xbc], eax
add esp, 0x94
ret
inc esi
mov dword [esp + 0x48], ebx
mov ebx, dword [esp + 0x80]
cmp esi, edi
jge 0x4c8a1e
mov ebx, dword [ebp + esi*4]
cmp dword [ebx], 4
jne 0x4c8832
mov dword [esp + 0x68], esi
mov ebp, dword [ebx + 0x24]
mov edi, dword [ebx + 0x20]
test ebp, ebp
sete cl
cmp edi, 0x10
xchg esi, ebx
setb bl
xchg esi, ebx
and esi, ecx
xchg esi, eax
test al, al
xchg esi, eax
je 0x4c8838
mov ecx, dword [esp + 0xa4]
mov ebp, dword [esp + 0x90]
mov esi, dword [esp + 0x68]
mov edi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x48]
jmp 0x4c87de
mov dword [esp + 0x70], ebx
mov ecx, dword [ebx + 8]
mov esi, dword [ebx + 0xc]
sar eax, 0x1f
add edi, ecx
adc ebp, esi
mov dword [esp + 0x64], ebp
cmp eax, ebp
sete al
seta bl
mov ebp, dword [esp + 0xa8]
cmp edi, ebp
xchg ebp, ebx
setb bl
xchg ebp, ebx
and ebp, eax
or ebx, ebp
test bl, bl
je 0x4c88b0
mov ebx, dword [esp + 0x64]
test ebx, ebx
jne 0x4c8ec2
cmp edi, edx
ja 0x4c8ebb
test esi, esi
jne 0x4c8eb2
cmp edi, ecx
jb 0x4c8ea9
mov ebx, edx
sub ebx, ecx
mov ebp, ebx
neg ebx
sar ebx, 0x1f
and ebx, ecx
sub edi, ecx
mov eax, ebp
mov ebp, dword [esp + 0xa4]
add ebx, ebp
jmp 0x4c8966
mov eax, dword [esp + 0xa0]
mov dword [esp], eax
mov dword [esp + 8], esi
mov dword [esp + 4], ecx
mov dword [esp + 0xc], 0
call sym.os._File_.Seek
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x4c89eb
mov eax, dword [esp + 0x70]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
lea ebx, [0x4d8400]
mov dword [esp], ebx
mov dword [esp + 8], edx
mov dword [esp + 4], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], ecx
call sym.runtime.makeslice64
mov eax, dword [esp + 0x14]
mov dword [esp + 0x84], eax
mov ecx, dword [esp + 0x70]
mov edx, dword [ecx + 0x20]
mov dword [esp + 0x60], edx
nop
lea ebx, [0x514964]
mov dword [esp], ebx
mov ebp, dword [esp + 0xa0]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edx
call sym.io.ReadAtLeast
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x4c89b8
mov edx, dword [esp + 0xac]
mov ebp, dword [esp + 0xa4]
mov eax, dword [esp + 0x60]
mov edi, eax
mov ebx, dword [esp + 0x84]
mov ebp, dword [esp + 0x70]
mov esi, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x24]
mov edx, dword [ebp + 8]
mov ebp, dword [ebp + 0xc]
jmp 0x4c8ab2
mov eax, dword [esp + 0x48]
jmp 0x4c8989
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x7c]
mov ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xac]
mov ebp, dword [esp + 0x90]
mov edi, dword [esp + 0x6c]
mov ebx, eax
mov dword [esp + 0x7c], esi
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0x68]
jmp 0x4c87de
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
add esp, 0x94
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], eax
mov dword [esp + 0xbc], ecx
add esp, 0x94
ret
mov eax, dword [esp + 0x48]
test eax, eax
je 0x4c8a55
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb4], eax
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
add esp, 0x94
ret
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
add esp, 0x94
ret
sub edx, eax
mov dword [esp + 0x40], edx
neg edx
sar edx, 0x1f
and edx, eax
sub ebx, eax
lea eax, [edx + ecx]
mov ecx, ebp
mov edx, edi
mov ebp, dword [esp + 0x34]
mov dword [esp + 0x7c], esi
mov esi, dword [esp + 0x4c]
mov edi, ebx
mov ebx, eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], ebp
mov dword [esp + 0x50], ecx
test ecx, ecx
sete cl
xchg ebp, ebx
seta bl
xchg ebp, ebx
cmp esi, 0x10
setae dl
and edx, ecx
or edx, ebp
test dl, dl
je 0x4c8981
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], edi
mov dword [esp + 0x74], ebx
mov dword [esp + 0x4c], esi
mov byte [esp + 0x27], cl
mov ecx, dword [esp + 0x80]
mov edx, dword [ecx + 8]
mov ebp, dword [ecx + 0xc]
mov edx, dword [edx + 0x24]
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], eax
call edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
cmp ecx, 4
jb 0x4c8e9f
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov edx, dword [edx + 0x24]
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
lea ebp, [ebx - 4]
lea esi, [ecx - 4]
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 4
mov ebx, dword [esp + 0x74]
add ebp, ebx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
call edx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
cmp ecx, 8
jb 0x4c8e95
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x80]
mov edx, dword [eax + 8]
mov ebx, dword [eax + 0xc]
mov edx, dword [edx + 0x24]
mov dword [esp], ebx
mov ebx, dword [esp + 0x40]
lea ebp, [ebx - 8]
lea esi, [ecx - 8]
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 8
mov eax, dword [esp + 0x74]
add ebp, eax
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
mov dword [esp + 0xc], edi
call edx
mov edx, dword [esp + 0x40]
cmp edx, 0x10
jb 0x4c8e8b
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x74]
lea edi, [ebp + 0xc]
mov dword [esp + 0x78], edi
mov eax, edi
mov edi, dword [esp + 0x44]
cmp edi, 4
jne 0x4c8c4a
mov ecx, ebp
mov ebp, dword [esp + 0x28]
lea esi, [ebp + 0x10]
mov ebp, dword [esp + 0x3c]
cmp ebp, esi
jb 0x4c8c46
cmp ebx, 4
jne 0x4c8c42
cmp dword [0x59c12c], 4
je 0x4c8c03
xor esi, esi
jmp 0x4c8c52
mov dword [esp + 0x2c], ebx
mov ecx, dword [0x59c128]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 4
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x3c]
mov edi, dword [esp + 0x44]
mov esi, eax
mov eax, dword [esp + 0x78]
jmp 0x4c8c52
xor esi, esi
jmp 0x4c8c52
xor esi, esi
jmp 0x4c8c52
mov ecx, ebp
mov ebp, dword [esp + 0x3c]
xor esi, esi
xchg esi, eax
test al, al
xchg esi, eax
jne 0x4c8def
cmp edi, 4
jne 0x4c8cc1
mov esi, edi
mov edi, dword [esp + 0x28]
lea eax, [edi + 0x10]
cmp ebp, eax
jb 0x4c8cbd
cmp ebx, 3
jne 0x4c8cb9
cmp dword [0x59c13c], 4
je 0x4c8c80
xor eax, eax
jmp 0x4c8cc9
mov eax, dword [0x59c138]
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
jmp 0x4c8cc9
xor eax, eax
jmp 0x4c8cc9
xor eax, eax
jmp 0x4c8cc9
mov esi, edi
mov edi, dword [esp + 0x28]
xor eax, eax
test al, al
jne 0x4c8cd7
mov eax, dword [esp + 0x48]
mov ebx, dword [esp + 0x7c]
jmp 0x4c8d2c
lea ebx, [edi + 0x10]
cmp edx, ebx
jb 0x4c8e84
cmp ebx, 0x10
jb 0x4c8e78
mov dword [esp], 0
lea eax, [edx - 0x10]
neg eax
sar eax, 0x1f
and eax, 0x10
add eax, ecx
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x40]
mov ebp, dword [esp + 0x3c]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x28]
mov ebx, eax
mov eax, ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x48], eax
add esi, 3
and esi, 0xfffffffc
add edi, 3
and edi, 0xfffffffc
lea edi, [esi + edi + 0xc]
mov esi, ebx
mov ebx, dword [esp + 0x4c]
cmp ebx, edi
setbe al
movzx ebp, byte [esp + 0x27]
and eax, ebp
test al, al
jne 0x4c897b
mov dword [esp + 0x38], edi
mov ebp, dword [esp + 0x70]
mov eax, dword [ebp + 0x30]
mov dword [esp + 0x54], eax
mov ebp, dword [ebp + 0x34]
mov dword [esp + 0x58], ebp
mov ebx, dword [esp + 0x30]
add ebx, edi
mov dword [esp + 0x30], ebx
mov edi, dword [esp + 0x34]
adc edi, 0
mov dword [esp + 0x64], edi
add eax, ebx
adc ebp, edi
add eax, 0xffffffff
adc ebp, 0xffffffff
mov dword [esp + 0x5c], ebp
xor edi, edi
mov ebx, dword [esp + 0x54]
sub edi, ebx
mov ebx, 0
mov ebp, dword [esp + 0x58]
sbb ebx, ebp
and eax, edi
mov ebp, dword [esp + 0x5c]
and ebx, ebp
mov dword [esp + 0x34], ebx
mov ebp, dword [esp + 0x30]
mov edi, eax
sub eax, ebp
mov ebp, dword [esp + 0x64]
sbb ebx, ebp
mov ebp, dword [esp + 0x38]
add eax, ebp
adc ebx, 0
mov ebp, dword [esp + 0x4c]
sub ebp, eax
mov dword [esp + 0x4c], ebp
mov ebp, dword [esp + 0x50]
sbb ebp, ebx
test ebx, ebx
jne 0x4c8e6d
mov ebx, dword [esp + 0x3c]
cmp eax, ebx
jbe 0x4c8a88
jmp 0x4c8e66
mov ebx, dword [esp + 0x28]
lea ebp, [ebx + 0x10]
cmp edx, ebp
jb 0x4c8e5f
cmp ebp, 0x10
jb 0x4c8e53
mov dword [esp], 0
lea eax, [edx - 0x10]
neg eax
sar eax, 0x1f
and eax, 0x10
add eax, ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xb0], eax
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
add esp, 0x94
ret
mov eax, 0x10
mov ecx, ebp
call sym.runtime.panicSliceB
mov ecx, ebp
call sym.runtime.panicSliceAcapU
mov ecx, ebx
call sym.runtime.panicSliceBU
mov esi, ebx
mov ecx, dword [esp + 0x3c]
call sym.runtime.panicExtendSliceBU
mov eax, 0x10
mov ecx, ebx
call sym.runtime.panicSliceB
mov ecx, ebx
call sym.runtime.panicSliceAcapU
mov ecx, 0x10
call sym.runtime.panicSliceAcap
mov eax, 8
call sym.runtime.panicSliceB
mov eax, 4
call sym.runtime.panicSliceB
mov eax, ecx
mov ecx, edi
call sym.runtime.panicSliceBU
mov eax, ecx
mov ecx, edi
call sym.runtime.panicExtendSliceBU
mov ecx, edi
call sym.runtime.panicSliceAcapU
mov esi, ebx
mov ecx, edi
call sym.runtime.panicExtendSliceAcapU
mov eax, 0x3d
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x3c
call sym.runtime.panicIndex
mov eax, 0x2f
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x2e
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x2d
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x2c
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x2b
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x2a
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x29
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x28
call sym.runtime.panicIndex
mov eax, 0x31
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x30
call sym.runtime.panicIndex
mov eax, 0x23
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x22
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x21
mov ecx, eax
call sym.runtime.panicIndex
mov eax, 0x20
call sym.runtime.panicIndex
mov eax, 4
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.cmd_internal_buildid.readELF