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

Disassembly:
mov ecx, dword [0x84d0e8]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x597f71
sub esp, 0x64
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov ecx, dword [esp + 0x7c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x80]
mov dword [esp + 8], edx
call sym.github.com_BurntSushi_toml.isMarshaler
movzx eax, byte [esp + 0xc]
test al, al
jne 0x597e2c
mov eax, dword [esp + 0x80]
test eax, eax
je 0x5979d1
test eax, 0x200
jne 0x5979d1
lea ecx, [0x6ac080]
mov edx, dword [esp + 0x78]
jmp 0x5979fc
mov ecx, dword [esp + 0x78]
mov dword [esp], ecx
mov edx, dword [esp + 0x7c]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call sym.reflect.Value.typeSlow
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, ecx
mov ecx, eax
mov eax, dword [esp + 0x80]
cmp dword [0x80d370], ecx
jne 0x597a2e
mov eax, dword [0x80d374]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
jne 0x597d5d
mov eax, dword [esp + 0x80]
mov ecx, eax
and eax, 0x1f
mov dword [esp + 0x28], eax
nop
nop
cmp eax, 0x14
ja 0x597adb
cmp eax, 0xe
ja 0x597a66
test eax, eax
je 0x597e8a
cmp eax, 0xb
jbe 0x597cd9
cmp eax, 0xd
jae 0x597cd9
jmp 0x597e8a
cmp eax, 0x11
je 0x597bd8
cmp eax, 0x14
jne 0x597e8a
mov eax, dword [esp + 0x7c]
mov edx, dword [eax]
test edx, edx
je 0x597ad7
mov edx, dword [esp + 0x78]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.reflect.Value.Elem
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x68]
mov dword [esp], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
call sym.github.com_BurntSushi_toml._Encoder_.encode
jmp 0x597d59
add esp, 0x64
ret
cmp eax, 0x16
ja 0x597bcf
cmp eax, 0x15
jne 0x597b4e
test ecx, 0x200
je 0x597af7
mov eax, dword [esp + 0x7c]
jmp 0x597b11
test ecx, 0x80
je 0x597b07
mov eax, dword [esp + 0x7c]
mov edx, dword [eax]
jmp 0x597b0d
mov eax, dword [esp + 0x7c]
mov edx, eax
test edx, edx
je 0x597b4a
mov edx, dword [esp + 0x68]
mov dword [esp], edx
mov edx, dword [esp + 0x6c]
mov dword [esp + 4], edx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
mov edx, dword [esp + 0x74]
mov dword [esp + 0xc], edx
mov edx, dword [esp + 0x78]
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
call sym.github.com_BurntSushi_toml._Encoder_.eTable
jmp 0x597d59
add esp, 0x64
ret
test ecx, 0x200
je 0x597b5c
mov eax, dword [esp + 0x7c]
jmp 0x597b76
test ecx, 0x80
je 0x597b6c
mov eax, dword [esp + 0x7c]
mov edx, dword [eax]
jmp 0x597b72
mov eax, dword [esp + 0x7c]
mov edx, eax
test edx, edx
je 0x597bcb
mov edx, dword [esp + 0x78]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.reflect.Value.Elem
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x68]
mov dword [esp], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
call sym.github.com_BurntSushi_toml._Encoder_.encode
jmp 0x597d59
add esp, 0x64
ret
cmp eax, 0x17
jne 0x597cd4
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov edx, dword [esp + 0x7c]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.github.com_BurntSushi_toml.tomlTypeOfGo
mov eax, dword [0x802400]
mov ecx, dword [0x802404]
mov edx, dword [esp + 0xc]
mov dword [esp + 0x24], edx
mov ebx, dword [esp + 0x10]
mov dword [esp + 0x60], ebx
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x6aa948]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0xc], eax
call sym.github.com_BurntSushi_toml.typeEqual
movzx eax, byte [esp + 0x10]
test al, al
je 0x597c8b
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
call sym.github.com_BurntSushi_toml._Encoder_.eArrayOfTables
jmp 0x597d59
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov byte [esp + 0x1c], 0
call sym.github.com_BurntSushi_toml._Encoder_.writeKeyValue
jmp 0x597d59
cmp eax, 0x18
jne 0x597d18
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
mov byte [esp + 0x1c], 0
call sym.github.com_BurntSushi_toml._Encoder_.writeKeyValue
jmp 0x597d59
cmp eax, 0x19
jne 0x597e8a
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ecx
call sym.github.com_BurntSushi_toml._Encoder_.eTable
add esp, 0x64
ret
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 8], eax
mov byte [esp + 0xc], 1
call sym.reflect.valueInterface
mov eax, dword [esp + 0x10]
mov dword [esp + 0x20], eax
mov esi, dword [esp + 0x14]
lea edi, [esp + 0x4c]
xor eax, eax
call fcn.0046c05b
mov eax, dword [esp + 0x20]
lea ecx, [0x62b000]
cmp eax, ecx
jne 0x597e74
lea edi, [esp + 0x4c]
call fcn.0046c53e
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x597df2
mov ecx, dword [esp + 0x50]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x597dea
movzx ecx, byte [eax + 0xf]
nop
mov edx, ecx
and ecx, 0x1f
test dl, 0x20
jne 0x597de4
or ecx, 0x80
mov edx, dword [esp + 0x30]
jmp 0x597df8
xor ecx, ecx
xor eax, eax
xor edx, edx
jmp 0x597df8
xor ecx, ecx
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0x68]
mov dword [esp], ebx
mov ebx, dword [esp + 0x6c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x70]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], ecx
call sym.github.com_BurntSushi_toml._Encoder_.encode
add esp, 0x64
ret
mov eax, dword [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x18], eax
mov byte [esp + 0x1c], 0
call sym.github.com_BurntSushi_toml._Encoder_.writeKeyValue
add esp, 0x64
ret
mov dword [esp], eax
mov dword [esp + 4], ecx
lea eax, [0x61ace0]
mov dword [esp + 8], eax
call sym.runtime.panicdottypeE
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov eax, dword [esp + 0x6c]
mov dword [esp], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 8], eax
call sym.runtime.convTslice
mov eax, dword [esp + 0xc]
lea ecx, [0x6320c0]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sym.runtime.convT32
mov eax, dword [esp + 4]
lea ecx, [0x61df80]
mov dword [esp + 0x44], ecx
mov dword [esp + 0x48], eax
lea eax, [0x65e08e]
mov dword [esp], eax
mov dword [esp + 4], 0x21
lea eax, [esp + 0x3c]
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 ecx, dword [esp + 0x18]
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], ecx
lea eax, [0x62be40]
mov dword [esp], eax
lea ecx, [esp + 0x34]
mov dword [esp + 4], ecx
call sym.runtime.convT
mov eax, dword [esp + 8]
lea ecx, [0x62be40]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.runtime.gopanic
nop
call sym.runtime.morestack_noctxt
jmp sym.github.com_BurntSushi_toml._Encoder_.encode