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

Disassembly:
mov ecx, dword [0x7762b4]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x138]
cmp eax, dword [ecx + 8]
jbe 0x581c33
sub esp, 0x1b8
lea edi, [esp + 0x19c]
xor eax, eax
call fcn.0046ac59
lea edi, [esp + 0x168]
call fcn.0046ac53
lea ecx, [esp + 0x168]
mov dword [esp + 0x1a8], ecx
call sym.runtime.rand32
mov ecx, dword [esp]
mov dword [esp + 0x1a4], ecx
mov ecx, dword [esp + 0x1c0]
mov edx, dword [ecx + 0x44]
mov dword [esp], edx
call sym.main.nameKeys
mov ecx, dword [esp + 4]
mov dword [esp + 0x164], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x70], edx
xor eax, eax
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
xor eax, eax
mov dword [esp + 0x8c], eax
xor eax, eax
mov dword [esp + 0x48], eax
jmp 0x58045d
mov ecx, dword [esp + 0x6c]
inc ecx
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x70]
mov ebp, edi
mov edi, ebx
mov ebx, esi
mov esi, eax
mov eax, ecx
mov ecx, dword [esp + 0x164]
mov dword [esp + 0x50], ebx
mov dword [esp + 0x90], ebp
mov dword [esp + 0x4c], edi
cmp eax, edx
jge 0x580b20
mov dword [esp + 0x6c], eax
mov dword [esp + 0x54], esi
lea edx, [ecx + eax*8]
mov ebx, dword [edx]
mov edx, dword [edx + 4]
mov ebp, dword [esp + 0x1c0]
mov esi, dword [ebp + 0x44]
lea edi, [0x5c3e00]
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edx
call sym.runtime.mapaccess1_faststr
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0xa0], eax
mov ecx, dword [eax + 0x1c]
test ecx, ecx
je 0x580752
mov edx, dword [eax + 0x18]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0x40
call sym.strconv.ParseInt
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
test eax, eax
je 0x58061b
mov ebx, dword [esp + 0xa0]
mov ebp, dword [ebx + 0x1c]
test ebp, ebp
jbe 0x581c29
mov esi, dword [ebx + 0x18]
movzx edi, byte [esi]
xchg edi, eax
cmp al, 0x27
xchg edi, eax
je 0x58059e
xchg edi, eax
cmp al, 0x22
xchg edi, eax
jne 0x5806df
mov dword [esp], esi
mov dword [esp + 4], ebp
call sym.go_parser.ParseExpr
mov eax, dword [esp + 0x10]
test eax, eax
je 0x580547
mov ebx, dword [esp + 0xa0]
lea ebp, [0x5ed5a2]
jmp 0x5806df
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0x24], 6
mov ebp, dword [0x776370]
test ebp, ebp
je 0x580569
mov ebp, dword [ebx + 0x20]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebp
lea ebp, [0x5ed5a2]
mov dword [ebx + 0x20], ebp
mov esi, dword [ebx + 0x1c]
mov edi, dword [ebx + 0x18]
mov dword [ebx + 0x38], esi
mov esi, dword [0x776370]
test esi, esi
je 0x580596
mov eax, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov esi, dword [ebx + 0x34]
mov dword [edi + 4], esi
mov edi, eax
mov dword [ebx + 0x34], edi
jmp 0x5806df
mov dword [esp], esi
mov dword [esp + 4], ebp
call sym.go_parser.ParseExpr
mov eax, dword [esp + 0x10]
test eax, eax
je 0x5805c4
mov ebx, dword [esp + 0xa0]
lea ebp, [0x5ed596]
jmp 0x5806df
mov ebx, dword [esp + 0xa0]
mov dword [ebx + 0x24], 6
mov ebp, dword [0x776370]
test ebp, ebp
je 0x5805e6
mov ebp, dword [ebx + 0x20]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebp
lea ebp, [0x5ed596]
mov dword [ebx + 0x20], ebp
mov esi, dword [ebx + 0x1c]
mov edi, dword [ebx + 0x18]
mov dword [ebx + 0x38], esi
mov esi, dword [0x776370]
test esi, esi
je 0x580613
mov eax, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov esi, dword [ebx + 0x34]
mov dword [edi + 4], esi
mov edi, eax
mov dword [ebx + 0x34], edi
jmp 0x5806df
mov eax, dword [esp + 0xa0]
mov dword [eax + 0x24], 6
mov ebx, dword [0x776370]
test ebx, ebx
je 0x58063d
mov ebx, dword [eax + 0x20]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebx
lea ebx, [0x5ed596]
mov dword [eax + 0x20], ebx
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov dword [esp], ecx
mov dword [esp + 4], edx
call sym.runtime.convT64
mov eax, dword [esp + 8]
lea ecx, [0x5c2d40]
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], eax
lea eax, [0x5ece9b]
mov dword [esp], eax
mov dword [esp + 4], 3
lea edx, [esp + 0x154]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call sym.fmt.Sprintf
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0xa0]
mov dword [edx + 0x38], eax
mov eax, dword [0x776370]
test eax, eax
je 0x5806da
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov ebx, dword [edx + 0x34]
mov dword [edi + 4], ebx
mov dword [edx + 0x34], ecx
mov ebx, edx
mov ecx, dword [ebx + 0x24]
cmp ecx, 5
jge 0x5806eb
xor eax, eax
jmp 0x580723
lea eax, [ecx - 5]
cmp ecx, eax
jb 0x581c24
mov eax, dword [ebx + 0x20]
lea eax, [ecx + eax - 5]
mov dword [esp], eax
lea eax, [0x5ed32a]
mov dword [esp + 4], eax
mov dword [esp + 8], 5
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ebx, dword [esp + 0xa0]
test al, al
je 0x580750
lea ecx, [0x5ed063]
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x90]
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x8c]
jmp 0x580438
mov eax, ebx
cmp dword [eax + 0x14], 7
jge 0x58075c
xor ecx, ecx
jmp 0x580787
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
lea ecx, [0x5ed9b9]
mov dword [esp + 4], ecx
mov dword [esp + 8], 7
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0xa0]
test cl, cl
je 0x580792
mov ecx, 1
jmp 0x5807c7
cmp dword [eax + 0x14], 6
jge 0x58079c
xor ecx, ecx
jmp 0x5807c7
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
lea ecx, [0x5ed608]
mov dword [esp + 4], ecx
mov dword [esp + 8], 6
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0xa0]
test cl, cl
je 0x5807d2
mov ecx, 1
jmp 0x580807
cmp dword [eax + 0x14], 5
jge 0x5807dc
xor ecx, ecx
jmp 0x580807
mov ecx, dword [eax + 0x10]
mov dword [esp], ecx
lea ecx, [0x5ed325]
mov dword [esp + 4], ecx
mov dword [esp + 8], 5
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0xa0]
test cl, cl
je 0x5808bf
mov dword [eax + 0x24], 4
mov ecx, dword [0x776370]
test ecx, ecx
je 0x58082a
mov ecx, dword [eax + 0x20]
call sym.runtime.gcWriteBarrier1
mov dword [edi], ecx
lea ecx, [0x5ed063]
mov dword [eax + 0x20], ecx
mov edx, dword [esp + 0x48]
inc edx
mov ebx, dword [esp + 0x4c]
cmp ebx, edx
jb 0x580849
mov ebp, dword [esp + 0x8c]
jmp 0x58088f
mov eax, dword [esp + 0x8c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x5ca160]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
lea ecx, [0x5ed063]
mov ebp, eax
mov ebx, edi
mov eax, dword [esp + 0xa0]
mov esi, dword [0x776370]
test esi, esi
je 0x5808a7
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov esi, dword [ebp + edx*4 - 4]
mov dword [edi + 4], esi
mov dword [ebp + edx*4 - 4], eax
mov eax, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x90]
jmp 0x580438
mov ebx, dword [0x736fd4]
mov ebp, dword [0x736fd0]
cmp ebx, 6
jne 0x5808e1
cmp dword [ebp], 0x77726164
jne 0x5808e1
cmp word [ebp + 4], 0x6e69
je 0x5808f4
cmp ebx, 3
jne 0x580944
cmp word [ebp], 0x6f69
jne 0x580940
cmp byte [ebp + 2], 0x73
jne 0x58093c
mov ecx, dword [eax + 0x14]
cmp ecx, 3
jge 0x580900
xor ecx, ecx
jmp 0x580946
lea edx, [ecx - 3]
cmp ecx, edx
jb 0x581c1d
mov edx, dword [eax + 0x10]
lea ecx, [ecx + edx - 3]
mov dword [esp], ecx
lea ecx, [0x5ece9e]
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
mov ecx, eax
mov eax, dword [esp + 0xa0]
jmp 0x580946
xor ecx, ecx
jmp 0x580946
xor ecx, ecx
jmp 0x580946
xor ecx, ecx
test cl, cl
jne 0x58095e
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x90]
jmp 0x580aaa
mov edx, dword [eax + 0x14]
lea ecx, [edx - 3]
cmp edx, ecx
jb 0x581c18
mov edx, dword [eax + 0x10]
mov dword [esp], 0
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
lea ecx, [0x5ee392]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 9
call sym.runtime.concatstring2
mov eax, dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x84], ecx
lea edx, [0x5e02e0]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov edx, dword [0x776370]
test edx, edx
jne 0x5809d4
mov edx, dword [esp + 0x84]
jmp 0x5809e2
call sym.runtime.gcWriteBarrier1
mov edx, dword [esp + 0x84]
mov dword [edi], edx
mov dword [eax], edx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x50]
inc ecx
mov edx, dword [esp + 0x54]
cmp edx, ecx
jb 0x580a00
mov ebp, dword [esp + 0x90]
jmp 0x580a45
mov dword [esp + 0x9c], eax
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x5ca160]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebp, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov eax, dword [esp + 0x9c]
mov edx, esi
mov dword [esp + 0x54], edx
mov ebx, dword [0x776370]
test ebx, ebx
je 0x580a61
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebx, dword [ebp + ecx*4 - 4]
mov dword [edi + 4], ebx
mov dword [esp + 0x90], ebp
mov dword [esp + 0x50], ecx
mov dword [ebp + ecx*4 - 4], eax
lea edx, [0x5c3f40]
mov dword [esp], edx
lea ebx, [esp + 0x19c]
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call sym.runtime.mapassign_fast32ptr
mov eax, dword [esp + 0xc]
mov byte [eax], 1
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x90]
inc edx
cmp ecx, edx
jae 0x580ae4
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x5ca160]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0xa0]
mov ebp, dword [0x776370]
test ebp, ebp
je 0x580afc
call sym.runtime.gcWriteBarrier2
mov dword [edi], eax
mov ebp, dword [ebx + edx*4 - 4]
mov dword [edi + 4], ebp
mov dword [ebx + edx*4 - 4], eax
mov eax, ecx
mov esi, edx
mov edi, ebx
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x8c]
lea ecx, [0x5ed063]
jmp 0x580438
test ebx, ebx
je 0x580b82
lea eax, [0x5d2a80]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0xa8], eax
mov dword [esp], eax
lea ecx, [0x5fff06]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x270
call sym.bytes._Buffer_.WriteString
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov ebx, dword [esp + 0xa8]
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call sym.bytes._Buffer_.WriteString
xor eax, eax
jmp 0x580e74
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c8], eax
mov dword [esp + 0x1cc], edi
add esp, 0x1b8
ret
mov ecx, dword [esp + 0x90]
mov edx, dword [ecx + eax*4]
mov dword [esp + 0x98], edx
lea edi, [esp + 0xdc]
mov ebx, eax
xor eax, eax
call fcn.0046ac42
lea ecx, [ebx + 1]
mov dword [esp + 0x70], ecx
mov dword [esp], ecx
call sym.runtime.convT32
mov ecx, dword [esp + 4]
lea edx, [0x5c2dc0]
mov dword [esp + 0xdc], edx
mov dword [esp + 0xe0], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call sym.runtime.convT32
mov ecx, dword [esp + 4]
lea edx, [0x5c2dc0]
mov dword [esp + 0xe4], edx
mov dword [esp + 0xe8], ecx
mov ecx, dword [esp + 0x98]
mov ebx, dword [ecx + 0x10]
mov ebp, dword [ecx + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call sym.runtime.convTstring
mov ecx, dword [esp + 8]
lea edx, [0x5c2b80]
mov dword [esp + 0xec], edx
mov dword [esp + 0xf0], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call sym.runtime.convT32
mov ecx, dword [esp + 4]
lea edx, [0x5c2dc0]
mov dword [esp + 0xf4], edx
mov dword [esp + 0xf8], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call sym.runtime.convT32
mov ecx, dword [esp + 4]
lea edx, [0x5c2dc0]
mov dword [esp + 0xfc], edx
mov dword [esp + 0x100], ecx
mov ecx, dword [esp + 0x98]
mov ebx, dword [ecx + 0x10]
mov ebp, dword [ecx + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call sym.runtime.convTstring
mov ecx, dword [esp + 8]
lea edx, [0x5c2b80]
mov dword [esp + 0x104], edx
mov dword [esp + 0x108], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call sym.runtime.convT32
mov ecx, dword [esp + 4]
lea edx, [0x5c2dc0]
mov dword [esp + 0x10c], edx
mov dword [esp + 0x110], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call sym.runtime.convT32
mov ecx, dword [esp + 4]
lea edx, [0x5c2dc0]
mov dword [esp + 0x114], edx
mov dword [esp + 0x118], ecx
mov ecx, dword [esp + 0x98]
mov ebx, dword [ecx + 0x10]
mov ebp, dword [ecx + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call sym.runtime.convTstring
mov ecx, dword [esp + 8]
lea edx, [0x5c2b80]
mov dword [esp + 0x11c], edx
mov dword [esp + 0x120], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call sym.runtime.convT32
mov ecx, dword [esp + 4]
lea edx, [0x5c2dc0]
mov dword [esp + 0x124], edx
mov dword [esp + 0x128], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call sym.runtime.convT32
mov ecx, dword [esp + 4]
lea edx, [0x5c2dc0]
mov dword [esp + 0x12c], edx
mov dword [esp + 0x130], ecx
mov ecx, dword [esp + 0x98]
mov ebx, dword [ecx + 0x10]
mov ebp, dword [ecx + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], ebp
call sym.runtime.convTstring
mov ecx, dword [esp + 8]
lea edx, [0x5c2b80]
mov dword [esp + 0x134], edx
mov dword [esp + 0x138], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call sym.runtime.convT32
mov ecx, dword [esp + 4]
lea edx, [0x5c2dc0]
mov dword [esp + 0x13c], edx
mov dword [esp + 0x140], ecx
mov ecx, dword [esp + 0x70]
mov dword [esp], ecx
call sym.runtime.convT32
mov ecx, dword [esp + 4]
lea edx, [0x5c2dc0]
mov dword [esp + 0x144], edx
mov dword [esp + 0x148], ecx
mov ecx, dword [esp + 0x98]
mov ebx, dword [ecx + 0x10]
mov ecx, dword [ecx + 0x14]
mov dword [esp], ebx
mov dword [esp + 4], ecx
call sym.runtime.convTstring
mov ecx, dword [esp + 8]
lea edx, [0x5c2b80]
mov dword [esp + 0x14c], edx
mov dword [esp + 0x150], ecx
lea ecx, [0x634b7c]
mov dword [esp], ecx
mov ebx, dword [esp + 0xa8]
mov dword [esp + 4], ebx
lea ebp, [0x5ff6dc]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 0x1c1
lea esi, [esp + 0xdc]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], 0xf
mov dword [esp + 0x18], 0xf
call sym.fmt.Fprintf
mov eax, dword [esp + 0x70]
mov ecx, dword [esp + 0x50]
cmp eax, ecx
jl 0x580ba9
lea eax, [0x634b7c]
mov dword [esp], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 4], eax
lea ecx, [0x5fb80e]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x2d
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call sym.fmt.Fprintf
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 0xc]
cmp ecx, edx
jb 0x581c11
mov ebx, dword [eax]
mov ebp, dword [eax + 8]
mov dword [esp + 0xd4], 0
mov dword [esp + 0xd8], 0
mov dword [esp + 0xd8], 0x19
lea esi, [0x5f4b43]
mov dword [esp + 0xd4], esi
mov esi, dword [esp + 0x1bc]
mov dword [esp], esi
sub ebp, edx
sub ecx, edx
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
add edx, ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
lea ecx, [esp + 0xd4]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 1
call sym.main._Package_.gccErrors
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x80], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x3c], ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
lea edx, [0x5f768c]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 0x20
call sym.strings.Index
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x580ff7
mov edx, dword [esp + 0xa8]
mov ecx, dword [edx + 4]
mov eax, dword [edx + 0xc]
cmp ecx, eax
jb 0x581c0c
mov ebx, dword [edx]
mov ebp, dword [edx + 8]
mov esi, dword [esp + 0x1bc]
mov dword [esp], esi
sub ebp, eax
sub ecx, eax
mov edi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and eax, ebp
add eax, ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call sym.main._Package_.gccErrors
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
jmp 0x581002
mov ecx, dword [esp + 0x3c]
mov eax, dword [esp + 0x80]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x80], eax
test ecx, ecx
jne 0x58111b
mov edx, dword [esp + 0xa8]
mov ebx, dword [edx + 4]
mov ebp, dword [edx + 0xc]
cmp ebx, ebp
jb 0x581c03
mov esi, dword [edx]
mov edi, dword [edx + 8]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov edx, dword [0x7370bc]
sub edi, ebp
mov dword [esp + 0x38], edi
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, ebp
sub ebx, ebp
lea ebp, [esi + edi]
test edx, edx
jbe 0x581bfa
mov dword [esp + 0x34], ebx
mov dword [esp + 0x7c], ebp
mov eax, dword [0x7370b8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x5c2b80]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp], eax
mov eax, dword [esp + 0x34]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 8], eax
call sym.runtime.convTslice
mov eax, dword [esp + 0xc]
lea ecx, [0x5bd6c0]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], eax
lea eax, [0x5f84ac]
mov dword [esp], eax
mov dword [esp + 4], 0x22
lea eax, [esp + 0xc4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call sym.main.fatalf
lea eax, [0x5c2dc0]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov dword [esp + 0x160], eax
mov ecx, dword [esp + 0x80]
mov dword [esp], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 4], edx
lea ebx, str._n_tX__0
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0xffffffff
call sym.strings.genSplit
mov eax, dword [esp + 0x18]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x30], ecx
xor edx, edx
xor ebx, ebx
xor ebp, ebp
jmp 0x5811a4
mov esi, dword [esp + 0x70]
inc esi
mov edx, esi
mov ebx, ecx
mov ebp, eax
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x30]
cmp edx, ecx
jge 0x581591
mov dword [esp + 0x70], edx
mov byte [esp + 0x2a], bl
xchg ebp, eax
mov byte [esp + 0x2b], al
xchg ebp, eax
lea ecx, [eax + edx*8]
mov ebx, dword [ecx]
mov dword [esp + 0xa4], ebx
mov ecx, dword [ecx + 4]
mov dword [esp + 0x58], ecx
nop
mov dword [esp], ebx
mov dword [esp + 4], ecx
lea ebp, [0x5ede4d]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 8
call sym.strings.Index
mov eax, dword [esp + 0x10]
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0xa4]
mov dword [esp], ecx
mov edx, dword [esp + 0x58]
mov dword [esp + 4], edx
lea ebx, [0x5ed9ce]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 7
call sym.strings.Index
mov eax, dword [esp + 0x10]
test eax, eax
setge al
movzx ecx, byte [esp + 0x2a]
and eax, ecx
mov edx, dword [esp + 0x6c]
test edx, edx
jge 0x58124e
test al, al
jne 0x58124e
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x160]
movzx eax, byte [esp + 0x2b]
jmp 0x581191
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
mov ecx, dword [esp + 0x58]
mov dword [esp + 4], ecx
lea edx, [0x634228]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
call sym.strings.Index
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x581299
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x160]
movzx ecx, byte [esp + 0x2a]
movzx eax, byte [esp + 0x2b]
jmp 0x581191
lea edx, [eax + 1]
mov ecx, dword [esp + 0x58]
cmp ecx, edx
jb 0x581bf3
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
sub ecx, eax
dec ecx
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, edx
mov esi, dword [esp + 0xa4]
add ecx, esi
mov dword [esp], ecx
mov dword [esp + 4], ebp
lea ecx, [0x634228]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
call sym.strings.Index
mov eax, dword [esp + 0x10]
test eax, eax
jge 0x581305
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x160]
movzx ecx, byte [esp + 0x2a]
movzx eax, byte [esp + 0x2b]
jmp 0x581191
mov ebx, dword [esp + 0x64]
lea ecx, [ebx + eax + 1]
mov edx, dword [esp + 0x58]
cmp edx, ecx
jb 0x581bee
mov edx, dword [esp + 0x68]
cmp ecx, edx
jb 0x581be7
mov ecx, dword [esp + 0x6c]
test ecx, ecx
setge cl
mov byte [esp + 0x29], cl
mov ebx, eax
neg eax
sar eax, 0x1f
and eax, edx
mov edx, dword [esp + 0xa4]
add eax, edx
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym.strconv.Atoi
mov eax, dword [esp + 8]
lea ecx, [eax - 1]
test ecx, ecx
jge 0x581361
mov edx, dword [esp + 0x50]
jmp 0x581369
mov edx, dword [esp + 0x50]
cmp edx, ecx
jg 0x581388
movzx ebx, byte [esp + 0x2a]
movzx esi, byte [esp + 0x29]
or ebx, esi
mov ecx, ebx
movzx eax, byte [esp + 0x2b]
mov ebx, dword [esp + 0x160]
jmp 0x581191
mov ebx, dword [esp + 0x64]
cmp ebx, 9
jg 0x581421
cmp ebx, 8
jne 0x5813d0
mov ebx, dword [esp + 0xa4]
cmp dword [ebx], 0x2d746f6e
jne 0x581572
cmp dword [ebx + 4], 0x65707974
jne 0x581572
mov ebx, dword [esp + 0x160]
or dword [ebx + eax*4 - 4], 1
movzx eax, byte [esp + 0x2b]
jmp 0x581567
cmp ebx, 9
jne 0x581572
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
lea eax, [0x5ee39b]
mov dword [esp + 4], eax
mov dword [esp + 8], 9
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x581418
mov edx, dword [esp + 0x50]
mov ebx, dword [esp + 0x160]
mov eax, 1
jmp 0x581567
mov edx, dword [esp + 0x50]
jmp 0x581572
mov dword [esp + 0x60], eax
cmp ebx, 0xb
je 0x581524
cmp ebx, 0xc
je 0x5814d9
cmp ebx, 0xd
jne 0x581572
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
lea ecx, [0x5efc88]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xd
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x581488
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x160]
or dword [ebx + edx*4 - 4], 2
mov edx, dword [esp + 0x50]
movzx eax, byte [esp + 0x2b]
jmp 0x581567
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
lea eax, [0x5efc95]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xd
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x5814d0
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x160]
or dword [ebx + edx*4 - 4], 4
mov edx, dword [esp + 0x50]
movzx eax, byte [esp + 0x2b]
jmp 0x581567
mov edx, dword [esp + 0x50]
jmp 0x581572
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
lea eax, [0x5ef66a]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xc
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x58151e
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x160]
or dword [ebx + edx*4 - 4], 0x10
mov edx, dword [esp + 0x50]
movzx eax, byte [esp + 0x2b]
jmp 0x581567
mov edx, dword [esp + 0x50]
jmp 0x581572
mov eax, dword [esp + 0xa4]
mov dword [esp], eax
lea eax, [0x5eef8c]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xb
call sym.runtime.memequal
movzx eax, byte [esp + 0xc]
test al, al
je 0x58156e
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x160]
or dword [ebx + edx*4 - 4], 8
mov edx, dword [esp + 0x50]
movzx eax, byte [esp + 0x2b]
xor ecx, ecx
jmp 0x581191
mov edx, dword [esp + 0x50]
movzx ebx, byte [esp + 0x2a]
movzx esi, byte [esp + 0x29]
or ebx, esi
mov ecx, ebx
movzx eax, byte [esp + 0x2b]
mov ebx, dword [esp + 0x160]
jmp 0x581191
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x5816bb
mov edx, dword [esp + 0xa8]
mov ecx, dword [edx + 4]
mov eax, dword [edx + 0xc]
cmp ecx, eax
jb 0x581be2
mov dword [esp + 0x70], ecx
mov ebx, dword [edx]
mov edx, dword [edx + 8]
lea edi, [esp + 0xac]
mov ebp, eax
xor eax, eax
call fcn.0046ac5a
mov ecx, dword [0x7370bc]
sub edx, ebp
mov esi, edx
neg edx
sar edx, 0x1f
and edx, ebp
mov eax, esi
mov esi, dword [esp + 0x70]
sub esi, ebp
add edx, ebx
test ecx, ecx
jbe 0x581bd9
mov dword [esp + 0x2c], esi
mov dword [esp + 0x70], eax
mov dword [esp + 0x74], edx
mov eax, dword [0x7370b8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x5c2b80]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x74]
mov dword [esp], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
call sym.runtime.convTslice
mov eax, dword [esp + 0xc]
lea ecx, [0x5bd6c0]
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x80]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x5c2b80]
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xc0], eax
lea eax, [0x5fe261]
mov dword [esp], eax
mov dword [esp + 4], 0x4a
lea eax, [esp + 0xac]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 3
call sym.main.fatalf
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x160]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x4c]
xor esi, esi
jmp 0x5816ef
inc esi
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x160]
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], ebx
mov dword [esp + 0x8c], ebp
cmp esi, eax
jge 0x5819ef
mov dword [esp + 0x5c], esi
mov edx, dword [edx + esi*4]
mov ecx, dword [ecx + esi*4]
mov dword [esp + 0x94], ecx
cmp edx, 9
jg 0x58178a
cmp edx, 7
jne 0x58174e
mov dword [ecx + 0x24], 6
mov edx, dword [0x776370]
test edx, edx
je 0x581740
mov edx, dword [ecx + 0x20]
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
mov edi, dword [esp + 0x4c]
lea edx, [0x5ed5a2]
mov dword [ecx + 0x20], edx
jmp 0x58197e
cmp edx, 9
jne 0x581832
mov dword [ecx + 0x24], 6
mov edx, dword [0x776370]
test edx, edx
je 0x581776
mov edx, dword [ecx + 0x20]
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
mov edi, dword [esp + 0x4c]
lea edx, [0x5ed596]
mov dword [ecx + 0x20], edx
lea edx, [0x5ed5a2]
jmp 0x58197e
cmp edx, 0xb
jne 0x5817c2
mov dword [ecx + 0x24], 6
mov edx, dword [0x776370]
test edx, edx
je 0x5817ae
mov edx, dword [ecx + 0x20]
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
mov edi, dword [esp + 0x4c]
lea edx, [0x5ed59c]
mov dword [ecx + 0x20], edx
lea edx, [0x5ed5a2]
jmp 0x58197e
cmp edx, 0xe
jne 0x5817fa
mov dword [ecx + 0x24], 4
mov edx, dword [0x776370]
test edx, edx
je 0x5817e6
mov edx, dword [ecx + 0x20]
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
mov edi, dword [esp + 0x4c]
lea edx, [0x5ed063]
mov dword [ecx + 0x20], edx
lea edx, [0x5ed5a2]
jmp 0x58197e
cmp edx, 0xf
jne 0x581832
mov dword [ecx + 0x24], 8
mov edx, dword [0x776370]
test edx, edx
je 0x58181e
mov edx, dword [ecx + 0x20]
call sym.runtime.gcWriteBarrier1
mov dword [edi], edx
mov edi, dword [esp + 0x4c]
lea edx, [0x5eddfd]
mov dword [ecx + 0x20], edx
lea edx, [0x5ed5a2]
jmp 0x58197e
test edx, 0x10
jne 0x58183e
xor edx, edx
jmp 0x581882
lea edx, [0x5c3f40]
mov dword [esp], edx
lea ebx, [esp + 0x19c]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call sym.runtime.mapaccess1_fast32
mov eax, dword [esp + 0xc]
movzx eax, byte [eax]
mov ecx, dword [esp + 0x94]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x4c]
mov edx, eax
mov eax, dword [esp + 0x50]
test dl, dl
jne 0x5816e0
mov edx, dword [ecx + 4]
mov eax, dword [ecx]
cmp edx, 8
jne 0x5818b0
cmp dword [eax], 0x614d435f
jne 0x5818b0
cmp dword [eax + 4], 0x636f6c6c
jne 0x5818b0
mov edx, 6
lea eax, [0x5ed60e]
mov ecx, dword [esp + 0x1c0]
mov ebx, dword [ecx + 0x48]
mov dword [esp + 0x15c], ebx
mov dword [esp + 0x154], 0
mov dword [esp + 0x158], 0
mov dword [esp], eax
mov dword [esp + 4], edx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x5c2b80]
mov dword [esp + 0x154], ecx
mov dword [esp + 0x158], eax
mov eax, dword [esp + 0x94]
lea ebx, [0x5c3e40]
mov dword [esp], ebx
mov ebp, dword [esp + 0x15c]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call sym.runtime.mapaccess1_fast32
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov dword [esp], eax
lea eax, [0x5fa784]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x29
lea ecx, [esp + 0x154]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], 1
mov dword [esp + 0x14], 1
call sym.main.error_
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x94]
lea edx, [0x5ed5a2]
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x8c]
mov esi, dword [esp + 0x5c]
mov edi, dword [esp + 0x4c]
inc ebx
cmp edi, ebx
jae 0x5819c6
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x5ca160]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov ebp, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x1c]
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x94]
lea edx, [0x5ed5a2]
mov esi, dword [esp + 0x5c]
mov edx, dword [0x776370]
test edx, edx
je 0x5819e6
mov edx, edi
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebp + ebx*4 - 4]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x50]
mov edi, edx
mov dword [ebp + ebx*4 - 4], ecx
jmp 0x5816e0
mov eax, dword [0x7761a4]
test eax, eax
jle 0x581bb4
mov eax, dword [esp + 0x1c0]
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
mov dword [esp], 0
lea edx, [0x5fff06]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x270
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], 0
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.runtime.stringtoslicebyte
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1bc]
mov dword [esp], ebx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call sym.main._Package_.gccErrors
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x1c]
test eax, eax
je 0x581b77
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov edx, dword [0x7370bc]
test edx, edx
jbe 0x581bd0
mov dword [esp + 0x44], eax
mov dword [esp + 0x88], ecx
mov eax, dword [0x7370b8]
mov ecx, dword [eax]
mov eax, dword [eax + 4]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x5c2b80]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x5c2b80]
mov dword [esp + 0xcc], ecx
mov dword [esp + 0xd0], eax
mov dword [esp], 0
lea eax, [0x5f57e5]
mov dword [esp + 4], eax
mov dword [esp + 8], 0x1b
lea eax, [esp + 0xc4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 2
mov dword [esp + 0x14], 2
call sym.main.error_
lea eax, [0x5f0d57]
mov dword [esp], eax
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
call sym.main.fatalf
mov ebx, dword [esp + 0x48]
mov ebp, dword [esp + 0x8c]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x1c4], ebp
mov dword [esp + 0x1c8], ebx
mov dword [esp + 0x1cc], edi
add esp, 0x1b8
ret
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
call sym.runtime.panicSliceB
mov eax, edx
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAlen
mov eax, edx
call sym.runtime.panicSliceB
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
mov eax, ebp
mov ecx, ebx
call sym.runtime.panicSliceB
call sym.runtime.panicSliceB
mov eax, edx
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAlen
mov eax, edx
call sym.runtime.panicSliceB
call sym.runtime.panicSliceB
xor eax, eax
mov ecx, eax
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.main._Package_.guessKinds