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

Disassembly:
mov ecx, dword [0x647d6c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x70]
cmp eax, dword [ecx + 8]
jbe 0x4e5204
sub esp, 0xf0
mov edx, dword [esp + 0xf8]
cmp edx, 1
jne 0x4e469f
mov ebx, dword [esp + 0xf4]
mov ebp, dword [ebx]
cmp dword [ebp + 8], 2
jge 0x4e466d
xor eax, eax
jmp 0x4e46a8
mov eax, dword [ebp + 4]
mov dword [esp], eax
lea eax, [0x539786]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xf4]
jmp 0x4e46a8
mov ebx, dword [esp + 0xf4]
xor eax, eax
test al, al
je 0x4e46fd
test edx, edx
jbe 0x4e51fa
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x70], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
lea edx, [0x568d60]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call sym.strings.Index
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x4e5133
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0x2c]
xor eax, eax
jmp 0x4e5165
test edx, edx
jbe 0x4e512a
mov eax, dword [ebx]
cmp dword [eax + 8], 2
jl 0x4e477e
mov eax, dword [eax + 4]
mov dword [esp], eax
lea eax, [0x539716]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x4e4777
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov edx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xf4]
xor eax, eax
xor ecx, ecx
xor ebp, ebp
xor esi, esi
jmp 0x4e47c1
mov edx, dword [esp + 0xf8]
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], edx
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x108], eax
add esp, 0xf0
ret
mov edi, dword [esp + 0x60]
lea eax, [edi + 1]
mov edi, dword [esp + 0xf8]
mov ebx, dword [esp + 0xf4]
mov esi, edx
mov edx, edi
cmp edx, eax
jle 0x4e4b1d
mov dword [esp + 0x60], eax
mov dword [esp + 0x48], ecx
mov dword [esp + 0x44], esi
mov dword [esp + 0x84], ebp
mov edi, dword [ebx + eax*4]
mov dword [esp + 0x94], edi
mov ebx, dword [edi + 8]
mov dword [esp + 0x34], ebx
mov eax, dword [edi + 4]
cmp ebx, 2
jge 0x4e4805
mov dword [esp + 0x64], eax
xor eax, eax
mov byte [esp + 0x27], al
mov eax, dword [esp + 0x64]
jmp 0x4e4851
mov dword [esp + 0x74], eax
mov dword [esp], eax
lea ecx, [0x539716]
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0xf8]
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x94]
mov byte [esp + 0x27], al
mov eax, dword [esp + 0x74]
movzx edi, byte [esp + 0x27]
xchg edi, eax
test al, al
xchg edi, eax
je 0x4e4af3
cmp ebx, 2
jb 0x4e511e
lea ecx, [ebx - 2]
mov dword [esp + 0x4c], ecx
mov edx, ecx
neg ecx
sar ecx, 0x1f
and ecx, 2
add eax, ecx
mov dword [esp + 0x98], eax
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.go_printer.isDirective
movzx eax, byte [esp + 8]
test al, al
je 0x4e4916
mov edx, dword [esp + 0x44]
inc edx
mov ebx, dword [esp + 0x48]
cmp ebx, edx
jb 0x4e48b0
mov ebp, dword [esp + 0x84]
mov ecx, ebx
jmp 0x4e48e5
mov eax, dword [esp + 0x84]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5232e0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov ebx, dword [0x647e70]
test ebx, ebx
jne 0x4e48f8
mov ebx, dword [esp + 0x94]
jmp 0x4e490d
call sym.runtime.gcWriteBarrier2
mov ebx, dword [esp + 0x94]
mov dword [edi], ebx
mov esi, dword [ebp + edx*4 - 4]
mov dword [edi + 4], esi
mov dword [ebp + edx*4 - 4], ebx
jmp 0x4e47a8
mov ecx, dword [esp + 0x4c]
test ecx, ecx
jg 0x4e4922
xor eax, eax
jmp 0x4e494c
mov eax, dword [esp + 0x98]
mov dword [esp], eax
lea ecx, [0x569830]
mov dword [esp + 4], ecx
mov dword [esp + 8], 1
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x4c]
test al, al
je 0x4e4976
cmp ecx, 1
jb 0x4e5114
mov edx, dword [esp + 0x34]
lea ecx, [edx - 3]
mov edx, ecx
neg edx
sar edx, 0x1f
and edx, 1
mov ebx, dword [esp + 0x98]
lea eax, [edx + ebx]
jmp 0x4e497d
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0xb8]
nop
test edx, edx
je 0x4e4999
lea ebx, [esp + 0xb8]
cmp edx, ebx
je 0x4e49a7
jmp 0x4e50fc
lea edx, [esp + 0xb8]
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc0]
lea ebp, [ebx + ecx]
mov esi, dword [esp + 0xbc]
cmp edx, ebp
jae 0x4e4a05
mov dword [esp + 0x6c], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x5c], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
lea eax, [0x51ea80]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x5c]
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], ebp
mov dword [esp + 0xa8], esi
add ebx, esi
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.runtime.memmove
mov eax, dword [esp + 0x58]
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xb8]
nop
test eax, eax
je 0x4e4a66
lea edx, [esp + 0xb8]
cmp eax, edx
je 0x4e4a74
jmp 0x4e50e4
lea edx, [esp + 0xb8]
mov dword [esp + 0xb8], edx
mov edx, dword [esp + 0xc4]
mov ebx, dword [esp + 0xc0]
lea ebp, [ebx + 1]
mov esi, dword [esp + 0xbc]
cmp edx, ebp
jae 0x4e4ac6
mov dword [esp + 0x5c], ebx
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x51ea80]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x5c]
mov byte [esi + ebx], 0xa
mov dword [esp + 0xc0], ebp
mov dword [esp + 0xc4], edx
mov dword [esp + 0xbc], esi
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x44]
mov ebp, dword [esp + 0x84]
jmp 0x4e47a8
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], edx
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x108], eax
add esp, 0xf0
ret
mov eax, dword [esp + 0xbc]
mov ecx, eax
neg eax
mov edi, dword [esp + 0xc0]
nop
cmp edi, eax
ja 0x4e50d6
lea eax, [0x539716]
test edi, edi
je 0x4e4d10
mov dword [esp + 0x80], eax
mov dword [esp + 0x44], esi
mov dword [esp + 0x84], ebp
mov dword [esp + 0xac], 0
mov dword [esp + 0xb0], 0
mov dword [esp + 0xb4], 0
lea eax, [esp + 0xac]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edi
call sym.go_doc_comment._Parser_.Parse
mov eax, dword [esp + 0xc]
mov dword [esp + 0x88], eax
lea edi, [esp + 0xc8]
xor eax, eax
call fcn.00465a46
lea eax, [esp + 0xc8]
mov dword [esp], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 4], eax
call sym.go_doc_comment._Printer_.Comment
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0xf8]
test eax, eax
jbe 0x4e50cd
mov eax, dword [esp + 0xf4]
mov eax, dword [eax]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
mov ebx, dword [esp + 0x80]
cmp word [ebx], 0x2a2f
je 0x4e4c1e
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x4e4d4a
mov dword [esp + 0xa4], ecx
mov dword [esp + 0x54], edx
lea eax, [0x5247e0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x90], eax
mov ecx, dword [esp + 0x30]
mov dword [eax], ecx
mov dword [esp], 0
lea ecx, [0x5398f2]
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
mov ecx, dword [esp + 0xa4]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x54]
mov dword [esp + 0x10], ecx
lea ecx, [0x539788]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], 2
call sym.runtime.concatstring3
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x90]
mov dword [edx + 8], eax
mov eax, dword [0x647e70]
test eax, eax
je 0x4e4cb4
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [edx + 4]
mov dword [edi + 4], eax
mov dword [edx + 4], ecx
lea eax, [0x51e020]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [0x647e70]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x4e4cdc
mov eax, dword [esp + 0x90]
jmp 0x4e4cea
call sym.runtime.gcWriteBarrier1
mov eax, dword [esp + 0x90]
mov dword [edi], eax
mov dword [ecx], eax
mov dword [esp + 0x100], ecx
mov dword [esp + 0x104], 1
mov dword [esp + 0x108], 1
add esp, 0xf0
ret
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x100], eax
mov dword [esp + 0x104], edx
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x108], eax
add esp, 0xf0
ret
mov dword [ebp + edx*4 - 4], eax
mov eax, ecx
mov ecx, dword [esp + 0x70]
mov esi, edx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], esi
mov dword [esp + 0x78], ebp
test edx, edx
je 0x4e4f04
mov dword [esp], ecx
mov dword [esp + 4], edx
lea eax, [0x568d60]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
call sym.strings.Cut
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x70], ecx
mov edx, dword [esp + 0x1c]
mov dword [esp + 0x2c], edx
test eax, eax
jne 0x4e4da4
mov eax, 2
lea ebx, [0x539716]
jmp 0x4e4e47
mov ebx, dword [esp + 0x10]
jle 0x4e4ddd
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x40], eax
mov dword [esp], ebx
lea eax, str._t_4g
mov dword [esp + 4], eax
mov dword [esp + 8], 1
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4e4e0d
mov eax, dword [esp + 0x40]
mov ebx, dword [esp + 0x7c]
mov dword [esp], 0
lea ecx, [0x5398f5]
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
jmp 0x4e4e43
mov dword [esp], 0
lea eax, [0x539716]
mov dword [esp + 4], eax
mov dword [esp + 8], 2
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x10], ecx
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov ebx, eax
mov eax, ecx
mov dword [esp + 0x40], eax
mov dword [esp + 0x7c], ebx
lea ecx, [0x5247e0]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x30]
mov dword [eax], ecx
mov edx, dword [esp + 0x40]
mov dword [eax + 8], edx
mov edx, dword [0x647e70]
test edx, edx
jne 0x4e4e7e
mov edx, dword [esp + 0x7c]
jmp 0x4e4e89
call sym.runtime.gcWriteBarrier1
mov edx, dword [esp + 0x7c]
mov dword [edi], edx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x38]
inc edx
mov ebx, dword [esp + 0x3c]
cmp ebx, edx
jb 0x4e4e9f
mov ebp, dword [esp + 0x78]
jmp 0x4e4ee3
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5232e0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x30]
mov esi, dword [0x647e70]
test esi, esi
je 0x4e4d3a
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov esi, dword [ebp + edx*4 - 4]
mov dword [edi + 4], esi
jmp 0x4e4d3a
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x4e4faf
lea eax, [0x5247e0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 0x38]
inc eax
mov ecx, dword [esp + 4]
mov edx, dword [esp + 0x30]
mov dword [ecx], edx
mov dword [ecx + 8], 2
lea ebx, [0x539716]
mov dword [ecx + 4], ebx
mov ebx, dword [esp + 0x3c]
cmp ebx, eax
jb 0x4e4f4b
mov ebp, dword [esp + 0x78]
jmp 0x4e4f8f
mov dword [esp + 0xa0], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5232e0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0x30]
mov esi, dword [0x647e70]
test esi, esi
je 0x4e4fa7
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov esi, dword [ebp + eax*4 - 4]
mov dword [edi + 4], esi
mov dword [ebp + eax*4 - 4], ecx
xor ecx, ecx
jmp 0x4e4fdc
mov dword [esp + 0x100], ebp
mov dword [esp + 0x104], esi
mov dword [esp + 0x108], ebx
add esp, 0xf0
ret
mov dword [ebp + edx*4 - 4], eax
mov esi, dword [esp + 0x60]
inc esi
mov ecx, esi
mov eax, edx
mov edx, dword [esp + 0x30]
mov esi, dword [esp + 0x44]
cmp ecx, esi
jge 0x4e50c6
mov dword [esp + 0x54], eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x9c], ebp
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x84]
mov edx, dword [eax + ecx*4]
mov dword [esp + 0x8c], edx
lea ebx, [0x5247e0]
mov dword [esp], ebx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x30]
mov dword [eax], ecx
mov edx, dword [esp + 0x8c]
mov ebx, dword [edx + 8]
mov edx, dword [edx + 4]
mov dword [eax + 8], ebx
mov ebx, dword [0x647e70]
test ebx, ebx
je 0x4e5045
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
mov dword [eax + 4], edx
mov edx, dword [esp + 0x54]
inc edx
mov ebx, dword [esp + 0x50]
cmp ebx, edx
jb 0x4e505e
mov ebp, dword [esp + 0x9c]
jmp 0x4e50a5
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5232e0]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebp, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x30]
mov esi, dword [0x647e70]
test esi, esi
je 0x4e4fcb
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov esi, dword [ebp + edx*4 - 4]
mov dword [edi + 4], esi
jmp 0x4e4fcb
mov esi, eax
jmp 0x4e4faf
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
test ecx, ecx
je 0x4e50df
call sym.runtime.panicunsafestringlen
call sym.runtime.panicunsafestringnilptr
lea eax, [0x51e740]
mov dword [esp], eax
lea eax, [0x5698e0]
mov dword [esp + 4], eax
call sym.runtime.gopanic
lea eax, [0x51e740]
mov dword [esp], eax
lea eax, [0x5698e0]
mov dword [esp + 4], eax
call sym.runtime.gopanic
mov eax, 1
call sym.runtime.panicSliceB
mov eax, 2
mov ecx, ebx
call sym.runtime.panicSliceB
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov eax, dword [esp + 0xf4]
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0xf8]
mov dword [esp + 0x104], eax
mov eax, dword [esp + 0xfc]
mov dword [esp + 0x108], eax
add esp, 0xf0
ret
inc eax
cmp eax, ecx
jge 0x4e5133
lea ebp, [eax + ebx]
cmp byte [ebp], 0xa
jne 0x4e5164
lea ebp, [eax + 1]
jmp 0x4e5178
inc ebp
cmp ebp, ecx
jge 0x4e5164
jae 0x4e51f3
movzx esi, byte [ebx + ebp]
xchg esi, eax
cmp al, 0x20
xchg esi, eax
je 0x4e5177
xchg esi, eax
cmp al, 9
xchg esi, eax
je 0x4e5177
cmp ebp, ecx
jge 0x4e5164
jae 0x4e51ec
add ebp, ebx
cmp byte [ebp], 0x2a
je 0x4e5164
lea ebp, [ecx - 2]
cmp ecx, ebp
jb 0x4e51e3
cmp ebp, 2
jb 0x4e51d7
lea edi, [ecx - 4]
mov eax, edi
neg eax
sar eax, 0x1f
and eax, 2
lea ecx, [eax + ebx]
mov edx, dword [esp + 0xf8]
mov ebx, dword [esp + 0xf4]
lea eax, [0x539786]
xor esi, esi
xor ebp, ebp
jmp 0x4e4b3e
mov eax, 2
mov ecx, ebp
call sym.runtime.panicSliceB
mov edx, ecx
mov ecx, ebp
call sym.runtime.panicSliceAlen
mov eax, ebp
call sym.runtime.panicIndex
mov eax, ebp
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.go_printer.formatDocComment