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

Disassembly:
mov ecx, dword [0x647d6c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x4f5cec
sub esp, 0x70
mov eax, dword [esp + 0x78]
lea ecx, [0x5195a0]
cmp eax, ecx
jne 0x4f56a9
mov eax, dword [esp + 0x7c]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [eax + 0xc]
mov ebp, dword [eax + 0x10]
mov eax, dword [eax + 8]
jmp 0x4f56b7
xor eax, eax
xor ebp, ebp
xor ebx, ebx
mov edx, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x38], edx
test eax, eax
je 0x4f588b
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x5c], eax
lea eax, [0x522f80]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call sym.runtime.assertE2I2
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x10]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x10]
test eax, eax
je 0x4f5882
mov dword [esp + 0x54], edx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x50], ebx
mov dword [esp + 0x48], esi
mov dword [esp + 0x20], eax
mov dword [esp + 0x40], edi
mov dword [esp + 0x58], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 0x14]
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x64], ebx
mov ebp, dword [esp + 0xc]
mov dword [esp + 0x60], ebp
mov dword [esp], ecx
call edx
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 4]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp], edx
call eax
mov eax, dword [esp + 0x64]
test eax, eax
je 0x4f57fd
mov edx, dword [esp + 0x60]
lea ebx, [0x56a158]
cmp edx, ebx
jne 0x4f578b
mov ebx, dword [esp + 0x58]
mov ebx, dword [ebx]
jmp 0x4f5803
lea ebx, [0x56a5a8]
cmp edx, ebx
jne 0x4f579e
mov ebp, dword [esp + 0x54]
mov ebx, dword [ebp]
jmp 0x4f5803
lea ebx, [0x56a5c0]
cmp edx, ebx
jne 0x4f57b1
mov ebp, dword [esp + 0x50]
mov ebx, dword [ebp]
jmp 0x4f5803
lea ebx, [0x56a5d8]
cmp edx, ebx
jne 0x4f57c4
mov ebp, dword [esp + 0x4c]
mov ebx, dword [ebp]
jmp 0x4f5803
lea ebx, [0x56a608]
cmp edx, ebx
jne 0x4f57d7
mov ebp, dword [esp + 0x48]
mov ebx, dword [ebp]
jmp 0x4f5803
lea ebx, [0x56a620]
cmp edx, ebx
jne 0x4f57ea
mov ebp, dword [esp + 0x44]
mov ebx, dword [ebp]
jmp 0x4f5803
lea ebx, [0x56a638]
cmp edx, ebx
jne 0x4f5801
mov ebp, dword [esp + 0x40]
mov ebx, dword [ebp]
jmp 0x4f5803
mov edx, dword [esp + 0x60]
xor ebx, ebx
test ebx, ebx
je 0x4f581a
mov ebp, dword [ebx + 4]
test ebp, ebp
jbe 0x4f5ce2
mov eax, dword [ebx]
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x4f581e
mov ecx, dword [esp + 0x30]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 4]
mov dword [esp + 0x24], eax
mov dword [esp], edx
mov edx, dword [esp + 0x3c]
mov dword [esp + 4], edx
call sym.go_printer.getLastComment
mov eax, dword [esp + 8]
test eax, eax
je 0x4f5867
mov ecx, dword [eax + 4]
lea ebx, [ecx - 1]
cmp ecx, ebx
jbe 0x4f5cdb
mov ebx, dword [eax]
mov ebx, dword [ebx + ecx*4 - 4]
mov ebp, dword [ebx]
add ebp, dword [ebx + 8]
mov ebx, dword [esp + 0x24]
cmp ebx, ebp
jl 0x4f586b
mov ebp, ebx
jmp 0x4f586b
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x24], ebp
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x28]
mov esi, dword [esp + 0x5c]
xor eax, eax
jmp 0x4f5c0b
mov eax, dword [esp + 0x1c]
jmp 0x4f5b19
lea eax, [0x5233a0]
cmp ecx, eax
jne 0x4f58d4
mov ebx, dword [edx + 0x40]
mov ebp, dword [edx + 0x44]
mov esi, dword [edx + 0x3c]
mov edi, dword [esp + 0x74]
mov dword [edi + 0xa4], ebx
mov dword [edi + 0xa8], ebp
mov ebx, dword [0x647e70]
test ebx, ebx
je 0x4f58cc
mov ebx, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], esi
mov ebp, dword [ebx + 0xa0]
mov dword [edi + 4], ebp
mov edi, ebx
mov dword [edi + 0xa0], esi
jmp 0x4f58d8
mov edi, dword [esp + 0x74]
mov eax, dword [edi + 0xa0]
test eax, eax
setne al
xor eax, 1
mov byte [edi + 0xac], al
mov dword [esp], edi
call sym.go_printer._printer_.nextComment
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
lea eax, [0x51f000]
mov dword [esp + 0x68], eax
lea eax, [0x5698d0]
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x74]
mov dword [esp], eax
lea ecx, [esp + 0x68]
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
mov dword [esp + 0xc], 1
call sym.go_printer._printer_.print
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x4f5b19
mov ecx, dword [eax + 8]
mov dword [esp + 0x34], ecx
lea edx, [0x524840]
mov dword [esp], edx
mov dword [esp + 4], eax
mov edx, dword [esp + 0x38]
mov dword [esp + 8], edx
call sym.runtime.assertE2I2
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4f59a3
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
nop
mov edx, dword [esp + 0x74]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 1
call sym.go_printer._printer_.expr1
jmp 0x4f5ba6
lea eax, [0x524960]
mov dword [esp], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 8], ecx
call sym.runtime.assertE2I2
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
test eax, eax
je 0x4f5a06
mov eax, dword [esp + 0xc]
lea edx, [0x56aac0]
cmp eax, edx
jne 0x4f59e8
mov edx, dword [esp + 0x74]
mov dword [edx + 0x1c], 1
jmp 0x4f59ec
mov edx, dword [esp + 0x74]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov byte [esp + 0xc], 0
call sym.go_printer._printer_.stmt
jmp 0x4f5ba6
lea eax, [0x524b40]
mov dword [esp], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 8], ecx
call sym.runtime.assertE2I2
mov eax, dword [esp + 0xc]
test eax, eax
je 0x4f5a4d
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x74]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.go_printer._printer_.decl
jmp 0x4f5ba6
lea eax, [0x524de0]
mov dword [esp], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 4], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 8], ecx
call sym.runtime.assertE2I2
mov eax, dword [esp + 0xc]
test eax, eax
jne 0x4f5b7d
mov eax, dword [esp + 0x34]
cmp eax, 0x2d262aff
je 0x4f5af2
cmp eax, 0xd5b40cdb
je 0x4f5abb
cmp eax, 0xd65d05f4
jne 0x4f5ab5
mov eax, dword [esp + 0x1c]
lea ecx, [0x51a3a0]
cmp eax, ecx
jne 0x4f5b19
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov ebx, dword [esp + 0x74]
xor ebp, ebp
jmp 0x4f5bc9
mov eax, dword [esp + 0x1c]
jmp 0x4f5b19
mov eax, dword [esp + 0x1c]
lea ecx, [0x51a220]
cmp eax, ecx
jne 0x4f5b19
mov eax, dword [esp + 0x38]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov ebx, dword [esp + 0x74]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call sym.go_printer._printer_.declList
jmp 0x4f5ba6
mov eax, dword [esp + 0x1c]
lea ecx, [0x5233a0]
cmp eax, ecx
jne 0x4f5b19
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
call sym.go_printer._printer_.file
jmp 0x4f5ba6
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x6c], eax
lea eax, [0x54235b]
mov dword [esp], eax
mov dword [esp + 4], 0x24
lea eax, [esp + 0x68]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call sym.fmt.Errorf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], ecx
add esp, 0x70
ret
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x74]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
mov byte [esp + 0x10], 0
call sym.go_printer._printer_.spec
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0x98]
mov eax, dword [eax + 0x9c]
mov dword [esp + 0x80], ecx
mov dword [esp + 0x84], eax
add esp, 0x70
ret
inc ebp
cmp ebp, edx
jge 0x4f5be3
lea esi, [ecx + ebp*8]
lea edi, [0x56aac0]
cmp dword [esi], edi
jne 0x4f5bc8
mov dword [ebx + 0x1c], 1
jmp 0x4f5bc8
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov byte [esp + 0x14], 0
call sym.go_printer._printer_.stmtList
jmp 0x4f5ba6
inc eax
mov ebp, dword [esp + 0x24]
cmp eax, ecx
jge 0x4f5c34
mov edi, dword [esi + eax*4]
mov edx, dword [edi + 4]
lea ebp, [edx - 1]
cmp edx, ebp
jbe 0x4f5cd2
mov ebp, dword [edi]
mov ebp, dword [ebp + edx*4 - 4]
mov edi, dword [ebp]
add edi, dword [ebp + 8]
cmp ebx, edi
jg 0x4f5c06
mov ebp, dword [esp + 0x24]
mov edx, eax
jmp 0x4f5c39
inc eax
cmp eax, ecx
jge 0x4f5c55
jae 0x4f5ccd
mov ebx, dword [esi + eax*4]
mov edi, dword [ebx + 4]
test edi, edi
jbe 0x4f5cc4
mov ebx, dword [ebx]
mov ebx, dword [ebx]
cmp dword [ebx], ebp
jl 0x4f5c38
cmp eax, edx
jle 0x4f5ca7
mov ebx, dword [esp + 0x2c]
cmp eax, ebx
ja 0x4f5cbb
cmp eax, edx
jb 0x4f5cb2
sub ebx, edx
sub eax, edx
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0xa4], eax
mov dword [ecx + 0xa8], ebx
mov eax, dword [0x647e70]
neg ebx
shl edx, 2
sar ebx, 0x1f
and edx, ebx
add edx, esi
test eax, eax
je 0x4f5c9f
call sym.runtime.gcWriteBarrier2
mov dword [edi], edx
mov eax, dword [ecx + 0xa0]
mov dword [edi + 4], eax
mov dword [ecx + 0xa0], edx
jmp 0x4f5cab
mov ecx, dword [esp + 0x74]
mov edi, ecx
jmp 0x4f58d8
mov ecx, eax
mov eax, edx
call sym.runtime.panicSliceB
mov ecx, eax
mov edx, ebx
call sym.runtime.panicSliceAcap
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
call sym.runtime.panicIndex
mov eax, ebp
mov ecx, edx
call sym.runtime.panicIndex
mov eax, ebx
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.go_printer._printer_.printNode