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

Disassembly:
mov ecx, dword [0x71d934]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x58]
cmp eax, dword [ecx + 8]
jbe 0x511b22
sub esp, 0xd8
lea eax, [0x591d20]
mov dword [esp], eax
mov ecx, dword [esp + 0xe0]
lea edx, [ecx + 1]
mov dword [esp + 0x20], edx
mov dword [esp + 4], edx
mov dword [esp + 8], edx
call sym.runtime.makeslice
mov eax, dword [esp + 0x20]
test eax, eax
jbe 0x511b18
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x8c], ecx
mov dword [ecx], 0
xor edx, edx
jmp 0x5111ac
inc ebx
mov dword [ebp + eax*4 + 4], ebx
mov eax, ecx
mov ecx, ebp
mov ebx, dword [esp + 0xe0]
cmp ebx, edx
jle 0x511201
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0xdc]
lea ecx, [eax + edx*8]
mov ebx, dword [ecx]
mov ecx, dword [ecx + 4]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call sym.unicode_utf8.RuneCountInString
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
cmp eax, ecx
jae 0x511b13
lea edx, [eax + 1]
mov ebx, dword [esp + 8]
mov ebp, dword [esp + 0x8c]
add ebx, dword [ebp + eax*4]
cmp edx, ecx
jb 0x5111a3
jmp 0x511b0c
lea edi, [esp + 0xb8]
mov edx, eax
xor eax, eax
call fcn.0046f598
lea ecx, [sym.go_doc_comment.wrap.func3]
mov dword [esp + 0xb8], ecx
mov dword [esp + 0xc0], edx
mov dword [esp + 0xc4], edx
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xcc], ebx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0xd0], ecx
mov edx, dword [esp + 0xdc]
mov dword [esp + 0xc8], edx
mov ebp, dword [esp + 0xe8]
mov dword [esp + 0xd4], ebp
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0
lea ebp, [esp + 0x60]
mov dword [esp + 0x70], ebp
mov dword [esp + 0x74], 1
mov dword [esp + 0x78], 1
lea ebp, [sym.go_doc_comment.wrap.func4]
mov dword [esp + 0xa8], ebp
lea ebp, [0x5c98f4]
mov dword [esp + 0xac], ebp
lea ebp, [esp + 0x70]
mov dword [esp + 0xb0], ebp
lea ebp, [esp + 0xb8]
mov dword [esp + 0xb4], ebp
lea edi, [esp + 0x90]
call fcn.0046f59a
lea ecx, [sym.go_doc_comment.wrap.func5]
mov dword [esp + 0x90], ecx
mov dword [esp + 0x98], ebx
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x94], edx
lea ecx, [0x5c98f8]
mov dword [esp + 0xa0], ecx
lea ecx, [esp + 0xa8]
mov dword [esp + 0xa4], ecx
lea edx, [0x591d20]
mov dword [esp], edx
mov dword [esp + 4], 1
mov dword [esp + 8], ebx
call sym.runtime.makeslice
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x8c], ecx
mov dword [ecx], 0
lea edx, [0x591d20]
mov dword [esp], edx
mov dword [esp + 4], 1
mov ebx, dword [esp + 0xe0]
mov dword [esp + 8], ebx
call sym.runtime.makeslice
mov ecx, dword [esp + 0xc]
mov dword [ecx], 0xffffffff
mov edx, dword [esp + 0xe0]
mov ebx, dword [esp + 0x8c]
mov eax, edx
mov ebp, 1
mov esi, 1
mov edi, 1
mov dword [esp + 0x34], eax
jmp 0x5113d1
lea eax, [edi + 1]
mov ecx, dword [esp + 0xe0]
mov edx, dword [esp + 0x38]
mov edi, dword [esp + 0x88]
mov edx, dword [esp + 0x3c]
mov ecx, edi
mov edi, ebx
mov ebx, ebp
mov dword [esp + 0x34], esi
mov ebp, eax
mov esi, dword [esp + 0x38]
mov eax, dword [esp + 0xe0]
cmp eax, ebp
jle 0x511811
test edi, edi
jbe 0x511b03
mov dword [esp + 0x30], edi
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], esi
mov dword [esp + 0x80], ecx
mov dword [esp + 0x7c], ebx
mov dword [esp + 0x28], ebp
mov eax, dword [esp + 0xa8]
mov ecx, dword [ebx]
mov dword [esp], ecx
mov dword [esp + 4], ebp
lea edx, [esp + 0xa8]
call eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
inc ecx
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 8]
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
cmp eax, ecx
jae 0x51148c
mov dword [esp + 0x5c], edx
mov dword [esp + 0x58], ebp
mov dword [esp + 0x54], edi
mov dword [esp + 0x50], esi
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x59cb00]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], ebx
mov edx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x58]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x54]
mov dword [esp + 0x74], ecx
lea eax, [ecx - 1]
shl eax, 4
mov dword [ebx + eax], ebp
mov dword [ebx + eax + 4], esi
mov dword [ebx + eax + 8], edi
mov dword [ebx + eax + 0xc], edx
mov ebx, dword [esp + 0x38]
inc ebx
mov ebp, dword [esp + 0x7c]
mov esi, dword [ebp]
mov edi, dword [esp + 0x3c]
cmp edi, ebx
jb 0x5114c2
mov ecx, dword [esp + 0x80]
jmp 0x511505
mov dword [esp + 0x4c], esi
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x591d20]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x4c]
mov edi, edx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], edi
mov dword [ecx + ebx*4 - 4], esi
mov esi, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
jmp 0x511922
mov eax, dword [esp + 0xa8]
mov ecx, dword [esp + 0x28]
mov dword [esp], ecx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 4], ebx
lea edx, [esp + 0xa8]
call eax
mov ecx, dword [esp + 0x30]
lea eax, [ecx - 1]
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
cmp ecx, eax
jbe 0x511ae9
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x58], ebx
mov eax, dword [esp + 8]
mov dword [esp + 0x54], eax
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x50], ebx
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0x7c]
mov edi, dword [esi + ecx*4 - 4]
mov dword [esp], edi
mov edi, dword [esp + 0xe0]
mov dword [esp + 4], edi
lea edx, [esp + 0xa8]
call ebp
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x50]
cmp ecx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
setg bl
xchg esi, ebx
mov edi, dword [esp + 0x54]
cmp edi, eax
setb dl
and edx, ebp
or edx, esi
test dl, dl
je 0x5115d0
mov eax, 0xffffffff
jmp 0x511640
cmp edi, eax
xchg esi, ebx
seta bl
xchg esi, ebx
cmp ecx, ebx
setl bl
and esi, ebp
or esi, ebx
xchg esi, eax
test al, al
xchg esi, eax
je 0x5115ef
mov eax, 1
jmp 0x511640
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x5c]
cmp ebp, esi
xchg edi, ebx
sete bl
xchg edi, ebx
setg al
mov ecx, ebp
mov ebp, dword [esp + 0x58]
cmp ebx, ebp
seta dl
and edx, edi
or eax, edx
test al, al
je 0x511621
mov eax, 0xffffffff
jmp 0x511640
cmp ecx, esi
xchg esi, ebx
setl bl
xchg esi, ebx
cmp ebx, ebp
setb bl
and ebx, edi
or ebx, esi
test bl, bl
je 0x51163e
mov eax, 1
jmp 0x511640
xor eax, eax
test eax, eax
jge 0x5117fc
mov ebx, dword [esp + 0x30]
inc ebx
mov ebp, dword [esp + 0x34]
cmp ebp, ebx
jb 0x51165f
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x34]
jmp 0x511691
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x591d20]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x28]
mov dword [ebp + ebx*4 - 4], edi
cmp ebx, 2
je 0x5116a5
xor eax, eax
jmp 0x5117d8
mov dword [esp + 0x84], ebp
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], esi
mov eax, dword [esp + 0xa8]
mov ecx, dword [ebp + 4]
mov dword [esp], ecx
lea ecx, [edi + 1]
mov dword [esp + 0x4c], ecx
mov dword [esp + 4], ecx
lea edx, [esp + 0xa8]
call eax
mov eax, dword [esp + 8]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], ecx
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0x84]
mov esi, dword [ebp]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x54], edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x50], edx
mov dword [esp], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 4], esi
lea edx, [esp + 0xa8]
call ebx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x5c]
cmp ecx, ebx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
setg bl
xchg esi, ebx
mov edi, dword [esp + 0x58]
cmp eax, edi
seta dl
and edx, ebp
or esi, edx
xchg esi, eax
test al, al
xchg esi, eax
je 0x511750
mov eax, 0xffffffff
jmp 0x5117be
cmp eax, edi
xchg esi, ebx
setb bl
xchg esi, ebx
cmp ecx, ebx
setl bl
and esi, ebp
or ebx, esi
test bl, bl
je 0x51176d
mov eax, 1
jmp 0x5117be
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x50]
cmp ebp, esi
xchg edi, ebx
sete bl
xchg edi, ebx
setg al
mov ecx, ebp
mov ebp, dword [esp + 0x54]
cmp ebp, ebx
setb dl
and edx, edi
or eax, edx
test al, al
je 0x51179f
mov eax, 0xffffffff
jmp 0x5117be
cmp ebp, ebx
seta bl
cmp ecx, esi
xchg ebp, ebx
setl bl
xchg ebp, ebx
and ebx, edi
or ebx, ebp
test bl, bl
je 0x5117bc
mov eax, 1
jmp 0x5117be
xor eax, eax
test eax, eax
setle bl
mov ebp, dword [esp + 0x84]
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x28]
mov eax, ebx
mov ebx, dword [esp + 0x44]
test al, al
je 0x5113a1
cmp ebx, 1
jb 0x511add
dec esi
mov eax, esi
neg eax
sar eax, 0x1f
and eax, 4
add ebp, eax
dec ebx
jmp 0x5113a1
mov edi, dword [esp + 0x28]
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x7c]
jmp 0x5113a1
test edi, edi
jbe 0x51190b
lea ebp, [esi + 1]
mov ebx, dword [ebx]
cmp edx, ebp
jae 0x51185b
mov dword [esp + 0x4c], ebx
mov dword [esp], ecx
mov dword [esp + 4], ebp
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x591d20]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ecx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov eax, dword [esp + 0xe0]
mov ebx, dword [esp + 0x4c]
mov dword [ecx + ebp*4 - 4], ebx
mov edx, eax
mov ebx, 1
jmp 0x51186c
mov eax, dword [ecx + eax*4]
inc ebx
test eax, eax
jle 0x511879
cmp eax, ebp
jb 0x511868
jmp 0x511904
mov dword [esp + 0x80], ecx
mov dword [esp + 0x38], ebp
mov dword [esp + 0x24], ebx
lea eax, [0x591d20]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x24]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0xe0]
mov esi, edx
jmp 0x5118c1
mov ebp, dword [ecx + ebp*4]
mov edx, edi
test ebp, ebp
jle 0x5118d6
lea edi, [edx - 1]
cmp esi, edi
jbe 0x5118fb
mov dword [eax + edx*4 - 4], ebp
cmp ebp, ebx
jb 0x5118bc
jmp 0x5118f2
mov dword [esp + 0xec], eax
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], esi
add esp, 0xd8
ret
mov eax, ebp
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, edi
mov ecx, esi
call sym.runtime.panicIndex
mov ecx, ebp
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
dec esi
mov edx, esi
neg edx
sar edx, 0x1f
and edx, 4
add ebp, edx
dec eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x7c], ebp
cmp eax, 1
jg 0x511936
xor edx, edx
jmp 0x511a69
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xa8]
mov ecx, dword [ebp + 4]
mov dword [esp], ecx
mov ecx, dword [esp + 0x28]
lea ebx, [ecx + 1]
mov dword [esp + 0x4c], ebx
mov dword [esp + 4], ebx
lea edx, [esp + 0xa8]
call eax
mov eax, dword [esp + 8]
mov dword [esp + 0x58], eax
mov ecx, dword [esp + 0xc]
mov dword [esp + 0x5c], ecx
mov ebx, dword [esp + 0xa8]
mov ebp, dword [esp + 0x7c]
mov esi, dword [ebp]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x54], edi
mov edx, dword [esp + 0x14]
mov dword [esp + 0x50], edx
mov dword [esp], esi
mov esi, dword [esp + 0x4c]
mov dword [esp + 4], esi
lea edx, [esp + 0xa8]
call ebx
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
mov ebx, dword [esp + 0x5c]
cmp ebx, ecx
xchg ebp, ebx
sete bl
xchg ebp, ebx
xchg esi, ebx
setl bl
xchg esi, ebx
mov edi, dword [esp + 0x58]
cmp edi, eax
setb dl
and edx, ebp
or esi, edx
xchg esi, eax
test al, al
xchg esi, eax
je 0x5119d7
mov eax, 0xffffffff
jmp 0x511a47
cmp edi, eax
xchg esi, ebx
seta bl
xchg esi, ebx
cmp ebx, ecx
setg bl
and esi, ebp
or ebx, esi
test bl, bl
je 0x5119f4
mov eax, 1
jmp 0x511a47
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov esi, dword [esp + 0x50]
cmp esi, ebp
xchg edi, ebx
sete bl
xchg edi, ebx
setl al
mov ecx, ebp
mov ebp, dword [esp + 0x54]
cmp ebx, ebp
seta dl
and edx, edi
or eax, edx
test al, al
je 0x511a26
mov eax, 0xffffffff
jmp 0x511a47
cmp ebx, ebp
setb bl
cmp esi, ecx
xchg ebp, ebx
setg bl
xchg ebp, ebx
and ebx, edi
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x511a45
mov eax, 1
jmp 0x511a47
xor eax, eax
test eax, eax
setle bl
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x88]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
mov edx, ebx
mov ebx, dword [esp + 0x38]
test dl, dl
je 0x511a78
cmp eax, 1
jae 0x511914
jmp 0x511af7
mov dword [esp + 0x30], eax
cmp eax, 1
jg 0x511a85
xor edx, edx
jmp 0x511ace
mov ecx, dword [esp + 0x90]
mov ebx, dword [ebp + eax*4 - 8]
mov esi, dword [ebp + eax*4 - 4]
mov dword [esp], ebx
mov dword [esp + 4], esi
mov ebx, dword [esp + 0x28]
mov dword [esp + 8], ebx
lea edx, [esp + 0x90]
call ecx
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x88]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x7c]
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x3c]
mov edx, eax
mov eax, dword [esp + 0x30]
test dl, dl
je 0x511525
dec eax
cmp esi, eax
jae 0x511a78
jmp 0x511aee
mov eax, 1
xor ecx, ecx
call sym.runtime.panicSliceB
call sym.runtime.panicIndex
mov ecx, eax
mov edx, esi
call sym.runtime.panicSliceAcap
mov eax, 1
xor ecx, ecx
call sym.runtime.panicSliceB
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov eax, edx
call sym.runtime.panicIndex
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.go_doc_comment.wrap