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

Disassembly:
mov ecx, dword [0x71d934]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x54115d
sub esp, 0x5c
mov eax, dword [esp + 0x70]
test eax, eax
jg 0x540923
xor ecx, ecx
jmp 0x54094c
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
lea ecx, [0x5b89e0]
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x70]
test cl, cl
jne 0x540986
nop
test eax, eax
jg 0x540959
xor ecx, ecx
jmp 0x540982
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
lea ecx, [0x5f914c]
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0x70]
test cl, cl
je 0x5409ab
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x5c
ret
mov ecx, dword [esp + 0x6c]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x5f914c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call sym.strings.LastIndex
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x5409d9
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x70]
cmp ecx, eax
jb 0x541157
mov edx, ecx
sub ecx, eax
mov dword [esp + 0x24], ecx
mov ebx, ecx
neg ecx
sar ecx, 0x1f
and eax, ecx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x6c]
lea ebp, [ecx + eax]
mov dword [esp + 0x3c], ebp
cmp ebx, 3
jne 0x540a27
cmp word [ebp], 0x672e
je 0x540a17
cmp ebx, 3
jmp 0x540a27
lea esi, [ecx + eax + 2]
cmp byte [esi], 0x6f
je 0x540be7
cmp ebx, 3
jg 0x540b00
cmp ebx, 2
jne 0x540ab1
movzx esi, byte [ecx + eax + 1]
xchg esi, eax
cmp al, 0x63
xchg esi, eax
jg 0x540a6d
cmp word [ebp], 0x462e
je 0x540b48
cmp word [ebp], 0x532e
je 0x540af5
cmp word [ebp], 0x632e
jne 0x540bbc
lea esi, [0x6ff370]
jmp 0x540bbe
xchg esi, eax
cmp al, 0x68
xchg esi, eax
jg 0x540a91
cmp word [ebp], 0x662e
je 0x540b48
cmp word [ebp], 0x682e
je 0x540b59
jmp 0x540bbc
cmp word [ebp], 0x6d2e
jne 0x540aa4
lea esi, [0x6ff388]
jmp 0x540bbe
cmp word [ebp], 0x732e
je 0x540af5
jmp 0x540bbc
cmp ebx, 3
jne 0x540bbc
cmp word [ebp], 0x632e
jne 0x540acb
lea esi, [ecx + eax + 2]
cmp byte [esi], 0x63
je 0x540b37
cmp word [ebp], 0x682e
jne 0x540adc
lea esi, [ecx + eax + 2]
cmp byte [esi], 0x68
je 0x540b59
cmp word [ebp], 0x732e
jne 0x540bbc
lea esi, [ecx + eax + 2]
cmp byte [esi], 0x78
jne 0x540bbc
lea esi, [0x6ff3ac]
jmp 0x540bbe
cmp ebx, 4
jne 0x540b61
lea esi, [ecx + eax + 3]
cmp byte [esi], 0x70
jg 0x540b2e
cmp dword [ebp], 0x7070632e
je 0x540b37
cmp dword [ebp], 0x3039662e
je 0x540b48
cmp dword [ebp], 0x7070682e
je 0x540b59
jmp 0x540bbc
cmp dword [ebp], 0x7878632e
jne 0x540b3f
lea esi, [0x6ff37c]
jmp 0x540bbe
cmp dword [ebp], 0x726f662e
jne 0x540b50
lea esi, [0x6ff3a0]
jmp 0x540bbe
cmp dword [ebp], 0x7878682e
jne 0x540bbc
lea esi, [0x6ff394]
jmp 0x540bbe
cmp ebx, 5
jne 0x540b9a
cmp dword [ebp], 0x6977732e
jne 0x540b80
lea esi, [ecx + eax + 4]
cmp byte [esi], 0x67
jne 0x540b80
lea esi, [0x6ff3b8]
jmp 0x540bbe
cmp dword [ebp], 0x7379732e
jne 0x540bbc
lea esi, [ecx + eax + 4]
cmp byte [esi], 0x6f
jne 0x540bbc
lea esi, [0x6ff3d0]
jmp 0x540bbe
cmp ebx, 8
jne 0x540bbc
cmp dword [ebp], 0x6977732e
jne 0x540bbc
lea esi, [ecx + eax + 4]
cmp dword [esi], 0x78786367
jne 0x540bbc
lea esi, [0x6ff3c4]
jmp 0x540bbe
xor esi, esi
test esi, esi
jne 0x540be7
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x5c
ret
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xc], ebx
call sym.go_build._Context_.goodOSArchFile
movzx eax, byte [esp + 0x10]
test al, al
jne 0x540c1c
mov eax, dword [esp + 0x60]
movzx ecx, byte [eax + 0x29]
test cl, cl
je 0x541122
lea eax, [0x58f5a0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x68]
mov dword [eax + 4], ecx
mov ecx, dword [0x71da68]
test ecx, ecx
jne 0x540c49
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x6c]
jmp 0x540c5b
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x64]
mov dword [edi], ecx
mov edx, dword [esp + 0x6c]
mov dword [edi + 4], edx
mov dword [eax], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 0xc], ecx
mov dword [eax + 8], edx
mov ebx, dword [esp + 0x60]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov dword [esp + 0xc], 2
call sym.go_build._Context_.joinPath
mov eax, dword [esp + 0x14]
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x58], ecx
lea edx, [0x5ab960]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x2c]
mov dword [eax + 4], ecx
mov edx, dword [0x71da68]
test edx, edx
jne 0x540cc4
mov edx, dword [esp + 0x58]
mov ebx, dword [esp + 0x7c]
jmp 0x540cd6
call sym.runtime.gcWriteBarrier2
mov edx, dword [esp + 0x58]
mov dword [edi], edx
mov ebx, dword [esp + 0x7c]
mov dword [edi + 4], ebx
mov dword [esp + 0x34], eax
mov dword [eax], edx
mov dword [eax + 0x14], ebx
mov ebx, dword [esp + 0x24]
cmp ebx, 5
jne 0x540d26
mov ebx, dword [esp + 0x3c]
cmp dword [ebx], 0x7379732e
jne 0x540d26
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x6c]
lea ebx, [ebp + ebx + 4]
cmp byte [ebx], 0x6f
jne 0x540d26
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x5c
ret
mov eax, dword [esp + 0x60]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.go_build._Context_.openFile
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
test eax, eax
jne 0x541101
mov dword [esp + 0x38], edx
mov dword [esp + 0x20], ecx
mov ebx, dword [esp + 0x70]
cmp ebx, 3
jl 0x540d9f
lea eax, [ebx - 3]
cmp ebx, eax
jb 0x541150
mov eax, dword [esp + 0x6c]
lea ecx, [ebx + eax - 3]
mov dword [esp], ecx
lea ecx, [0x5b8af2]
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x70]
jmp 0x540da1
xor eax, eax
test al, al
je 0x540e59
test ecx, ecx
je 0x540dca
mov eax, dword [ecx + 4]
lea edx, [0x6f3fb0]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym.runtime.typeAssert
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x34]
mov dword [esp + 8], eax
call sym.go_build.readGoInfo
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
nop
mov edx, dword [esp + 0x70]
cmp edx, 8
jl 0x540e53
lea ebx, [edx - 8]
cmp edx, ebx
jb 0x541147
mov dword [esp + 0x40], ecx
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x6c]
lea ecx, [edx + eax - 8]
mov dword [esp], ecx
lea ecx, [0x5b9a00]
mov dword [esp + 4], ecx
mov dword [esp + 8], 8
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x540e41
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x70]
xor ebx, ebx
jmp 0x540ec4
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0x78]
jmp 0x540ec4
mov ebx, dword [esp + 0x78]
jmp 0x540ec4
test ecx, ecx
je 0x540e7a
mov eax, dword [ecx + 4]
lea edx, [0x6f3fc0]
mov dword [esp], edx
mov dword [esp + 4], eax
call sym.runtime.typeAssert
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0x38]
mov dword [esp], ecx
mov dword [esp + 4], edx
call sym.go_build.readComments
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov esi, dword [esp + 0x34]
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], ecx
mov eax, dword [0x71da68]
test eax, eax
je 0x540ebb
call sym.runtime.gcWriteBarrier2
mov dword [edi], edx
mov eax, dword [esi + 8]
mov dword [edi + 4], eax
mov dword [esi + 8], edx
mov eax, ebx
mov ecx, ebp
xor ebx, ebx
mov dword [esp + 0x28], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x54], ebx
mov edx, dword [esp + 0x20]
mov edx, dword [edx + 0xc]
mov ebp, dword [esp + 0x38]
mov dword [esp], ebp
call edx
mov eax, dword [esp + 0x28]
test eax, eax
je 0x540f9d
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], edx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x591ae0]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x540f3e
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x50], eax
lea eax, [0x5ba947]
mov dword [esp], eax
mov dword [esp + 4], 0xb
lea eax, [esp + 0x44]
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 edx, dword [esp + 0x34]
mov dword [esp + 0x80], edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
add esp, 0x5c
ret
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 0xc]
mov ebx, dword [eax + 0x10]
mov ebp, dword [esp + 0x60]
mov dword [esp], ebp
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x10], ecx
call sym.go_build._Context_.shouldBuild
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
test eax, eax
jne 0x541049
movzx eax, byte [esp + 0x14]
test al, al
jne 0x540feb
mov eax, dword [esp + 0x60]
movzx eax, byte [eax + 0x29]
test al, al
je 0x541024
mov eax, dword [esp + 0x54]
test eax, eax
je 0x540fff
movzx ecx, byte [esp + 0x15]
test cl, cl
je 0x540fff
mov byte [eax], 1
mov eax, dword [esp + 0x34]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x5c
ret
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x5c
ret
mov dword [esp + 0x40], ecx
mov dword [esp + 0x28], eax
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x591ae0]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x5410a2
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x50], eax
lea eax, [0x5b926a]
mov dword [esp], eax
mov dword [esp + 4], 6
lea eax, [esp + 0x44]
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 + 0x80], 0
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
add esp, 0x5c
ret
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], ecx
add esp, 0x5c
ret
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0
add esp, 0x5c
ret
mov eax, ebx
mov ecx, edx
call sym.runtime.panicSliceB
mov ecx, ebx
call sym.runtime.panicSliceB
call sym.runtime.panicSliceB
nop
call sym.runtime.morestack_noctxt
jmp sym.go_build._Context_.matchFile