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

Disassembly:
mov ecx, dword [0x80b088]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x5c5570
sub esp, 0x70
mov eax, dword [esp + 0x78]
lea ecx, [0x5f7000]
cmp eax, ecx
jne 0x5c4f79
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 0x5c4f87
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 0x5c515b
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x28], ebx
mov dword [esp + 0x5c], eax
lea eax, [0x60b9e0]
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 0x5c5152
mov dword [esp + 0x54], edx
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], ebp
mov dword [esp + 0x20], eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x58], ecx
mov dword [esp + 0x40], edi
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 0x5c50cd
mov edx, dword [esp + 0x60]
lea ebx, [0x68cce0]
cmp edx, ebx
jne 0x5c505b
mov ebx, dword [esp + 0x58]
mov ebx, dword [ebx]
jmp 0x5c50d3
lea ebx, [0x68d130]
cmp edx, ebx
jne 0x5c506e
mov ebp, dword [esp + 0x54]
mov ebx, dword [ebp]
jmp 0x5c50d3
lea ebx, [0x68d148]
cmp edx, ebx
jne 0x5c5081
mov ebp, dword [esp + 0x50]
mov ebx, dword [ebp]
jmp 0x5c50d3
lea ebx, [0x68d160]
cmp edx, ebx
jne 0x5c5094
mov ebp, dword [esp + 0x4c]
mov ebx, dword [ebp]
jmp 0x5c50d3
lea ebx, [0x68d190]
cmp edx, ebx
jne 0x5c50a7
mov ebp, dword [esp + 0x48]
mov ebx, dword [ebp]
jmp 0x5c50d3
lea ebx, [0x68d1a8]
cmp edx, ebx
jne 0x5c50ba
mov ebp, dword [esp + 0x44]
mov ebx, dword [ebp]
jmp 0x5c50d3
lea ebx, [0x68d1c0]
cmp edx, ebx
jne 0x5c50d1
mov ebp, dword [esp + 0x40]
mov ebx, dword [ebp]
jmp 0x5c50d3
mov edx, dword [esp + 0x60]
xor ebx, ebx
test ebx, ebx
je 0x5c50ea
mov ebp, dword [ebx + 4]
test ebp, ebp
jbe 0x5c5566
mov eax, dword [ebx]
mov eax, dword [eax]
mov ecx, dword [eax]
jmp 0x5c50ee
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.github.com_goplus_gop_printer.getLastComment
mov eax, dword [esp + 8]
test eax, eax
je 0x5c5137
mov ecx, dword [eax + 4]
lea ebx, [ecx - 1]
cmp ecx, ebx
jbe 0x5c555f
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 0x5c513b
mov ebp, ebx
jmp 0x5c513b
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 0x5c548f
mov eax, dword [esp + 0x1c]
jmp 0x5c53a5
lea eax, [0x621bc0]
cmp ecx, eax
jne 0x5c51a4
mov ebx, dword [edx + 0x38]
mov ebp, dword [edx + 0x3c]
mov esi, dword [edx + 0x34]
mov edi, dword [esp + 0x74]
mov dword [edi + 0x84], ebx
mov dword [edi + 0x88], ebp
mov ebx, dword [0x80b220]
test ebx, ebx
je 0x5c519c
mov ebx, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], esi
mov ebp, dword [ebx + 0x80]
mov dword [edi + 4], ebp
mov edi, ebx
mov dword [edi + 0x80], esi
jmp 0x5c51a8
mov edi, dword [esp + 0x74]
mov eax, dword [edi + 0x80]
test eax, eax
setne al
xor eax, 1
mov byte [edi + 0x8c], al
mov dword [esp], edi
call sym.github.com_goplus_gop_printer._printer_.nextComment
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x5c53a5
mov ecx, dword [eax + 8]
mov dword [esp + 0x34], ecx
lea edx, [0x610ae0]
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 0x5c522b
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.github.com_goplus_gop_printer._printer_.expr1
jmp 0x5c5432
lea eax, [0x610c00]
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 0x5c528e
mov eax, dword [esp + 0xc]
lea edx, [0x68df4c]
cmp eax, edx
jne 0x5c5270
mov edx, dword [esp + 0x74]
mov dword [edx + 0x1c], 1
jmp 0x5c5274
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.github.com_goplus_gop_printer._printer_.stmt
jmp 0x5c5432
lea eax, [0x610de0]
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 0x5c52d5
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.github.com_goplus_gop_printer._printer_.decl
jmp 0x5c5432
lea eax, [0x611080]
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 0x5c5409
mov eax, dword [esp + 0x34]
cmp eax, 0x18660667
je 0x5c537e
cmp eax, 0xc72bfe77
jne 0x5c533a
mov eax, dword [esp + 0x1c]
lea ecx, [0x5faee0]
cmp eax, ecx
jne 0x5c53a5
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 0x5c544d
cmp eax, 0xe73dfc35
jne 0x5c5378
mov eax, dword [esp + 0x1c]
lea ecx, [0x5fafa0]
cmp eax, ecx
jne 0x5c53a5
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.github.com_goplus_gop_printer._printer_.declList
jmp 0x5c5432
mov eax, dword [esp + 0x1c]
jmp 0x5c53a5
mov eax, dword [esp + 0x1c]
lea ecx, [0x621bc0]
cmp eax, ecx
jne 0x5c53a5
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 4], eax
call sym.github.com_goplus_gop_printer._printer_.file
jmp 0x5c5432
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, [0x64923a]
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.github.com_goplus_gop_printer._printer_.spec
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0
add esp, 0x70
ret
inc ebp
cmp ebp, edx
jge 0x5c5467
lea esi, [ecx + ebp*8]
lea edi, [0x68df4c]
cmp dword [esi], edi
jne 0x5c544c
mov dword [ebx + 0x1c], 1
jmp 0x5c544c
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.github.com_goplus_gop_printer._printer_.stmtList
jmp 0x5c5432
inc eax
mov ebp, dword [esp + 0x24]
cmp eax, ecx
jge 0x5c54b8
mov edi, dword [esi + eax*4]
mov edx, dword [edi + 4]
lea ebp, [edx - 1]
cmp edx, ebp
jbe 0x5c5556
mov ebp, dword [edi]
mov ebp, dword [ebp + edx*4 - 4]
mov edi, dword [ebp]
add edi, dword [ebp + 8]
cmp ebx, edi
jg 0x5c548a
mov ebp, dword [esp + 0x24]
mov edx, eax
jmp 0x5c54bd
inc eax
cmp eax, ecx
jge 0x5c54d9
jae 0x5c5551
mov ebx, dword [esi + eax*4]
mov edi, dword [ebx + 4]
test edi, edi
jbe 0x5c5548
mov ebx, dword [ebx]
mov ebx, dword [ebx]
cmp dword [ebx], ebp
jl 0x5c54bc
cmp eax, edx
jle 0x5c552b
mov ebx, dword [esp + 0x2c]
cmp eax, ebx
ja 0x5c553f
cmp eax, edx
jb 0x5c5536
sub ebx, edx
sub eax, edx
mov ecx, dword [esp + 0x74]
mov dword [ecx + 0x84], eax
mov dword [ecx + 0x88], ebx
mov eax, dword [0x80b220]
neg ebx
shl edx, 2
sar ebx, 0x1f
and edx, ebx
add edx, esi
test eax, eax
je 0x5c5523
call sym.runtime.gcWriteBarrier2
mov dword [edi], edx
mov eax, dword [ecx + 0x80]
mov dword [edi + 4], eax
mov dword [ecx + 0x80], edx
jmp 0x5c552f
mov ecx, dword [esp + 0x74]
mov edi, ecx
jmp 0x5c51a8
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.github.com_goplus_gop_printer._printer_.printNode