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

Disassembly:
mov ecx, dword [0x84d0e8]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x108]
cmp eax, dword [ecx + 8]
jbe 0x590038
sub esp, 0x188
mov eax, dword [esp + 0x198]
lea ecx, [0x6aaee0]
cmp eax, ecx
jne 0x58f3eb
mov ecx, dword [esp + 0x19c]
jmp 0x58f3f0
mov ecx, 0
je 0x58f3fe
mov edx, dword [esp + 0x19c]
jmp 0x58f47f
mov dword [esp + 0xa8], ecx
lea eax, [0x62c020]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0xf8], eax
lea ecx, [0x619600]
mov dword [esp], ecx
call sym.runtime.newobject
mov eax, dword [0x84d1a0]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x58f44a
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xf8]
jmp 0x58f467
call sym.runtime.gcWriteBarrier3
mov eax, dword [esp + 0xa8]
mov dword [edi], eax
mov dword [edi + 4], ecx
mov edx, dword [esp + 0xf8]
mov ebx, dword [edx]
mov dword [edi + 8], ebx
mov dword [ecx], eax
mov dword [edx + 4], 1
mov dword [edx + 8], 1
mov dword [edx], ecx
lea eax, [0x6aaf10]
lea ecx, [0x6aaef8]
cmp eax, ecx
jne 0x58f492
mov edx, dword [edx + 0x28]
lea eax, [0x6aaf10]
lea ecx, [0x6aaf10]
cmp eax, ecx
jne 0x58f4a0
mov ecx, edx
jmp 0x58f4a7
mov ecx, edx
mov edx, 0
mov dword [esp + 0xf4], ecx
mov dword [esp + 0x68], eax
jne 0x58f86b
mov dword [esp + 0x98], edx
mov ebx, dword [esp + 0x1a8]
mov ebp, ebx
and ebx, 0x1f
nop
cmp ebx, 0x14
je 0x58f4e3
mov ebx, ebp
mov esi, dword [esp + 0x1a4]
mov edi, dword [esp + 0x1a0]
jmp 0x58f52c
mov eax, dword [esp + 0x1a0]
mov dword [esp], eax
mov ecx, dword [esp + 0x1a4]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
call sym.reflect.Value.Elem
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x1a8]
mov ebp, edx
mov esi, ecx
mov edi, eax
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xf4]
mov edx, dword [esp + 0x98]
mov dword [esp + 0x80], edi
mov dword [esp + 0x38], ebp
mov dword [esp + 0x84], esi
test ebp, ebp
je 0x58f55a
test ebp, 0x200
jne 0x58f55a
mov dword [esp + 0x54], eax
lea eax, [0x6ac080]
mov dword [esp + 0x34], eax
jmp 0x58f576
mov dword [esp], edi
mov dword [esp + 4], esi
mov dword [esp + 8], ebp
call sym.reflect.Value.typeSlow
mov eax, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov dword [esp + 0x34], eax
mov dword [esp + 0x7c], edi
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x28]
mov dword [esp], edi
call ecx
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x4c]
mov ecx, dword [esp + 4]
mov dword [esp + 0x44], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x94], edx
mov ebx, dword [esp + 0x7c]
mov dword [esp], ebx
call eax
mov eax, dword [esp + 4]
mov dword [esp + 0x40], eax
mov ecx, dword [esp + 8]
mov dword [esp + 0x90], ecx
mov edx, dword [eax + 0x50]
mov dword [esp], ecx
call edx
cmp dword [esp + 4], 0x18
jne 0x58f720
mov ecx, dword [esp + 0x38]
mov edx, ecx
and ecx, 0x1f
mov dword [esp + 0x64], ecx
nop
cmp ecx, 0x14
ja 0x58f5f4
lea ebx, [ecx - 0x12]
cmp ebx, 1
jbe 0x58f617
cmp ecx, 0x14
je 0x58f5fe
jmp 0x58fffd
cmp ecx, 0x16
jbe 0x58f617
cmp ecx, 0x17
jne 0x58f60e
mov ecx, dword [esp + 0x84]
mov ebx, dword [ecx]
test ebx, ebx
setne bl
jmp 0x58f655
cmp ecx, 0x1a
jne 0x58fffd
test edx, 0x200
je 0x58f634
mov ebp, edx
mov edi, dword [esp + 0x80]
mov esi, dword [esp + 0x84]
jmp 0x58f6b9
test edx, 0x80
je 0x58f647
mov ecx, dword [esp + 0x84]
mov esi, dword [ecx]
jmp 0x58f650
mov ecx, dword [esp + 0x84]
mov esi, ecx
test esi, esi
setne bl
test bl, bl
je 0x58f666
mov ebp, edx
mov edi, dword [esp + 0x80]
mov esi, ecx
jmp 0x58f6b9
mov eax, dword [esp + 0x40]
mov dword [esp], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 0xc], ecx
call sym.reflect.MapOf
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
nop
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0
call sym.reflect.MakeMapWithSize
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov ebp, dword [esp + 0x14]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x8c], esi
mov dword [esp + 0x88], edi
xor eax, eax
lea edi, [esp + 0x16c]
call fcn.0046c059
lea edi, [esp + 0x120]
call fcn.0046c04d
lea ecx, [esp + 0x120]
mov dword [esp + 0x178], ecx
call sym.runtime.rand32
mov ecx, dword [esp]
mov dword [esp + 0x174], ecx
mov ecx, dword [esp + 0x98]
mov edx, dword [ecx]
mov dword [esp + 0xf0], edx
mov ebx, dword [ecx + 4]
mov dword [esp + 0x60], ebx
xor eax, eax
jmp 0x58f9e2
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
call eax
lea edi, [esp + 0xd8]
lea esi, [esp + 4]
call fcn.0046c53e
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0x190]
mov dword [esp], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x619a20]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
lea eax, [0x65c2dc]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
lea eax, [esp + 0xc0]
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 dword [esp + 0x68], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xf4], ecx
lea edx, [0x62b9c0]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [0x84d1a0]
mov edi, dword [esp + 4]
mov dword [esp + 0xec], edi
test eax, eax
je 0x58f82c
mov eax, edi
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0xf4]
mov dword [edi], ecx
mov edx, dword [eax + 0x18]
mov dword [edi + 4], edx
lea edx, [0x63d020]
mov dword [esp], edx
mov dword [esp + 4], eax
lea edx, [esp + 0xd8]
mov dword [esp + 8], edx
call sym.runtime.wbMove
mov edi, dword [esp + 0xec]
lea esi, [esp + 0xd8]
call fcn.0046c53e
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xec]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0xf4]
mov dword [ecx + 0x18], eax
lea eax, [0x6aab3c]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], ecx
add esp, 0x188
ret
mov edx, dword [eax + 0x10]
mov dword [esp], ecx
call edx
lea edi, [esp + 0xd8]
lea esi, [esp + 4]
call fcn.0046c53e
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov eax, dword [esp + 0x190]
mov dword [esp], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x619a20]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x68]
test eax, eax
je 0x58f8ec
mov eax, dword [eax + 4]
mov dword [esp + 0xd0], eax
mov eax, dword [esp + 0xf4]
mov dword [esp + 0xd4], eax
lea eax, [0x65ecc5]
mov dword [esp], eax
mov dword [esp + 4], 0x23
lea eax, [esp + 0xc8]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call sym.fmt.Errorf
mov eax, dword [esp + 0x14]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xf4], ecx
lea edx, [0x62b9c0]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [0x84d1a0]
mov edi, dword [esp + 4]
mov dword [esp + 0xec], edi
test eax, eax
je 0x58f9a2
mov eax, edi
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0xf4]
mov dword [edi], ecx
mov edx, dword [eax + 0x18]
mov dword [edi + 4], edx
lea edx, [0x63d020]
mov dword [esp], edx
mov dword [esp + 4], eax
lea edx, [esp + 0xd8]
mov dword [esp + 8], edx
call sym.runtime.wbMove
mov edi, dword [esp + 0xec]
lea esi, [esp + 0xd8]
call fcn.0046c53e
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xec]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0xf4]
mov dword [ecx + 0x18], eax
lea eax, [0x6aab3c]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], ecx
add esp, 0x188
ret
inc eax
cmp eax, ebx
jge 0x58ff87
mov ebp, dword [edx + eax*4]
mov esi, dword [ebp + 0x20]
test esi, esi
je 0x58f9e1
mov esi, dword [ebp + 4]
test esi, esi
je 0x58fe3c
mov dword [esp + 0x5c], eax
mov dword [esp + 0xa4], ebp
mov eax, dword [ebp]
mov esi, dword [eax]
test byte [esi], al
lea edi, [esp + 0xfc]
call fcn.0046c516
lea edi, [esp]
lea esi, [esp + 0xfc]
call fcn.0046c516
call sym.github.com_hashicorp_hcl_hcl_token.Token.Value
mov eax, dword [esp + 0x24]
lea ecx, [0x619a20]
cmp eax, ecx
jne 0x58ffe7
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov dword [esp + 0x9c], ecx
mov eax, dword [eax + 4]
mov dword [esp + 0x48], eax
lea edx, [0x61c4a0]
mov dword [esp], edx
lea ebx, [esp + 0x16c]
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
call sym.runtime.mapaccess2_faststr
movzx eax, byte [esp + 0x14]
test al, al
je 0x58fa9c
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x60]
jmp 0x58f9e1
mov eax, dword [esp + 0xa4]
mov ecx, dword [eax + 0x20]
mov edx, dword [eax + 0x24]
cmp dword [eax + 4], 1
jle 0x58fb56
mov dword [esp + 0xb8], 0
mov dword [esp + 0xbc], 0
mov eax, dword [esp + 0x48]
mov dword [esp + 0xbc], eax
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0xb8], ecx
mov edx, dword [esp + 0x98]
mov dword [esp], edx
lea ebx, [esp + 0xb8]
mov dword [esp + 4], ebx
mov dword [esp + 8], 1
mov dword [esp + 0xc], 1
call sym.github.com_hashicorp_hcl_hcl_ast._ObjectList_.Filter
mov eax, dword [esp + 0x10]
mov dword [esp + 0xf8], eax
lea ecx, [0x61c4a0]
mov dword [esp], ecx
lea edx, [esp + 0x16c]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x9c]
mov dword [esp + 8], ebx
mov ebp, dword [esp + 0x48]
mov dword [esp + 0xc], ebp
call sym.runtime.mapassign_faststr
mov eax, dword [esp + 0x10]
test byte [eax], al
lea ecx, [0x6aaf10]
mov edx, dword [esp + 0xf8]
mov dword [esp + 0xa0], edx
mov dword [esp + 0x4c], ecx
mov dword [esp + 0xc8], 0
mov dword [esp + 0xcc], 0
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov eax, dword [esp + 0x190]
mov dword [esp], eax
mov ebx, dword [esp + 0x194]
mov dword [esp + 4], ebx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x619a20]
mov dword [esp + 0xc8], ecx
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
mov edx, dword [esp + 0x48]
mov dword [esp + 4], edx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x619a20]
mov dword [esp + 0xd0], ecx
mov dword [esp + 0xd4], eax
lea eax, [0x651a29]
mov dword [esp], eax
mov dword [esp + 4], 5
lea edx, [esp + 0xc8]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call sym.fmt.Sprintf
mov eax, dword [esp + 0x14]
mov dword [esp + 0xb4], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x9c]
mov dword [esp], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 4], edx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x619a20]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], eax
mov edx, dword [esp + 0xac]
test edx, edx
je 0x58fc85
movzx ebx, byte [edx + 0xf]
nop
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x58fc8b
or ebx, 0x80
jmp 0x58fc8b
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dword [esp + 0x30], ebx
mov dword [esp + 0x78], eax
mov dword [esp + 0x70], edx
mov ecx, dword [esp + 0x44]
mov dword [esp], ecx
mov ebp, dword [esp + 0x94]
mov dword [esp + 4], ebp
call sym.reflect.New
mov eax, dword [esp + 0x10]
mov ecx, eax
and eax, 0x1f
mov edx, dword [esp + 8]
mov ebx, dword [esp + 0xc]
nop
cmp eax, 0x16
jne 0x58fce3
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call sym.reflect.Value.Elem
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
mov ecx, eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x74], ebx
mov dword [esp + 0x6c], edx
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov ebp, dword [esp + 0x8c]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x3c]
mov dword [esp + 8], esi
mov edi, dword [esp + 0x70]
mov dword [esp + 0xc], edi
mov edi, dword [esp + 0x78]
mov dword [esp + 0x10], edi
mov edi, dword [esp + 0x30]
mov dword [esp + 0x14], edi
call sym.reflect.Value.MapIndex
mov eax, dword [esp + 0x20]
test eax, eax
je 0x58fd61
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x6c]
mov dword [esp], ebx
mov ebp, dword [esp + 0x74]
mov dword [esp + 4], ebp
mov esi, dword [esp + 0x2c]
mov dword [esp + 8], esi
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
call sym.reflect.Value.Set
mov eax, dword [esp + 0x18c]
mov dword [esp], eax
mov ecx, dword [esp + 0xb4]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x50]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x14], ecx
mov edx, dword [esp + 0x74]
mov dword [esp + 0x18], edx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x1c], ebx
call sym.github.com_hashicorp_hcl._decoder_.decode
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x58fe23
mov eax, dword [esp + 0x88]
mov dword [esp], eax
mov ecx, dword [esp + 0x8c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x3c]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0x70]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x78]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x20], ebx
call sym.reflect.Value.SetMapIndex
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0xf0]
mov ebx, dword [esp + 0x60]
jmp 0x58f9e1
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], ecx
add esp, 0x188
ret
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0xf4]
mov dword [esp], ecx
call eax
lea edi, [esp + 0xd8]
lea esi, [esp + 4]
call fcn.0046c53e
mov dword [esp + 0xc0], 0
mov dword [esp + 0xc4], 0
mov eax, dword [esp + 0x190]
mov dword [esp], eax
mov eax, dword [esp + 0x194]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x619a20]
mov dword [esp + 0xc0], ecx
mov dword [esp + 0xc4], eax
lea eax, [0x65c2dc]
mov dword [esp], eax
mov dword [esp + 4], 0x1d
lea eax, [esp + 0xc0]
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 dword [esp + 0x68], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xf4], ecx
lea edx, [0x62b9c0]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [0x84d1a0]
mov edi, dword [esp + 4]
mov dword [esp + 0xec], edi
test eax, eax
je 0x58ff48
mov eax, edi
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0xf4]
mov dword [edi], ecx
mov edx, dword [eax + 0x18]
mov dword [edi + 4], edx
lea edx, [0x63d020]
mov dword [esp], edx
mov dword [esp + 4], eax
lea edx, [esp + 0xd8]
mov dword [esp + 8], edx
call sym.runtime.wbMove
mov edi, dword [esp + 0xec]
lea esi, [esp + 0xd8]
call fcn.0046c53e
mov eax, dword [esp + 0x68]
mov ecx, dword [esp + 0xec]
mov dword [ecx + 0x14], eax
mov eax, dword [esp + 0xf4]
mov dword [ecx + 0x18], eax
lea eax, [0x6aab3c]
mov dword [esp + 0x1ac], eax
mov dword [esp + 0x1b0], ecx
add esp, 0x188
ret
mov eax, dword [esp + 0x1a0]
mov dword [esp], eax
mov eax, dword [esp + 0x1a4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x1a8]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x14], eax
call sym.reflect.Value.Set
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
add esp, 0x188
ret
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x61ace0]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
lea eax, [0x629860]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x13
lea ecx, [0x656616]
mov dword [eax], ecx
mov ecx, dword [esp + 0x64]
mov dword [eax + 8], ecx
lea ecx, [0x61f840]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.runtime.gopanic
nop
call sym.runtime.morestack_noctxt
jmp sym.github.com_hashicorp_hcl._decoder_.decodeMap