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

Disassembly:
mov ecx, dword [0x75a1cc]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x59b691
sub esp, 0x6c
mov eax, dword [esp + 0x74]
cmp eax, 4
jge 0x59b0b0
xor eax, eax
xor edx, edx
xor ebx, ebx
xor edi, edi
xor ecx, ecx
xor ebp, ebp
xor esi, esi
jmp 0x59b101
mov ecx, dword [esp + 0x78]
lea edx, [ecx - 4]
mov ebx, edx
neg edx
sar edx, 0x1f
and edx, 4
lea ebp, [eax - 4]
mov esi, dword [esp + 0x70]
mov edi, dword [esi]
bswap edi
nop
add edx, esi
cmp edi, ebp
jbe 0x59b0e3
xor eax, eax
xor edx, edx
xor ebx, ebx
xor edi, edi
xor ecx, ecx
xor ebp, ebp
xor esi, esi
jmp 0x59b101
sub eax, edi
sub ecx, edi
add ecx, 0xfffffffc
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, edi
add ecx, edx
add eax, 0xfffffffc
mov esi, ecx
mov ecx, eax
mov eax, 1
test al, al
je 0x59b2a5
mov dword [esp + 0x44], ebx
mov dword [esp + 0x40], edi
mov dword [esp + 0x58], edx
mov dword [esp], esi
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x10], eax
call sym.golang.org_x_crypto_ssh.parsePubKey
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
test eax, eax
jne 0x59b284
mov dword [esp + 0x5c], edx
mov dword [esp + 0x48], ecx
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x50], eax
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x30], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0x34], edx
lea ebx, [0x5d59c0]
mov dword [esp], ebx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x68], eax
mov ecx, dword [esp + 0x50]
mov dword [esp], ecx
mov ecx, dword [esp + 0x30]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x34]
mov dword [esp + 8], ecx
lea ecx, [0x5b2f40]
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call sym.golang.org_x_crypto_ssh.Unmarshal
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x59b263
lea eax, [0x5d5f00]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x44]
mov dword [eax + 8], ecx
mov ecx, dword [0x75a278]
test ecx, ecx
jne 0x59b1ec
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
jmp 0x59b1fe
call sym.runtime.gcWriteBarrier2
mov ecx, dword [esp + 0x58]
mov dword [edi], ecx
mov edx, dword [esp + 0x5c]
mov dword [edi + 4], edx
mov dword [eax], ecx
mov ecx, dword [esp + 0x48]
mov dword [eax + 0xc], ecx
mov dword [eax + 0x10], edx
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx]
mov ebx, dword [ecx + 4]
mov dword [eax + 0x14], edx
mov dword [eax + 0x18], ebx
mov edx, dword [ecx + 8]
mov dword [eax + 0x1c], edx
mov edx, dword [ecx + 0x10]
mov ebx, dword [ecx + 0xc]
mov dword [eax + 0x24], edx
mov edx, dword [0x75a278]
test edx, edx
je 0x59b239
call sym.runtime.gcWriteBarrier1
mov dword [edi], ebx
mov dword [esp + 0x60], eax
mov dword [eax + 0x20], ebx
mov edx, dword [ecx + 0x20]
mov ebx, dword [ecx + 0x24]
mov dword [eax + 0x34], edx
mov dword [eax + 0x38], ebx
mov edx, dword [ecx + 0x28]
mov ebx, dword [ecx + 0x2c]
mov dword [eax + 0x3c], edx
mov dword [eax + 0x40], ebx
mov edx, dword [ecx + 0x14]
mov ebx, dword [ecx + 0x18]
mov ebp, dword [ecx + 0x1c]
jmp 0x59b2e0
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x6c
ret
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x6c
ret
mov eax, dword [0x7169e0]
mov ecx, dword [0x7169e4]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x6c
ret
mov dword [edx], ebp
mov edx, dword [esp + 0x54]
mov ebp, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
mov ecx, dword [esp + 0x68]
test ebx, ebx
je 0x59b45a
cmp ebx, 4
jge 0x59b301
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
xor edx, edx
mov dword [esp + 0x54], edx
xor edx, edx
jmp 0x59b364
lea esi, [ebp - 4]
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
lea edi, [ebx - 4]
mov ecx, dword [edx]
bswap ecx
nop
add edx, esi
cmp ecx, edi
jbe 0x59b338
mov ecx, dword [esp + 0x68]
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
xor edi, edi
xor ecx, ecx
mov dword [esp + 0x54], ecx
mov ecx, dword [esp + 0x68]
jmp 0x59b364
sub ebx, ecx
sub ebp, ecx
add ebp, 0xfffffffc
mov esi, ebp
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, ecx
add ebp, edx
add ebx, 0xfffffffc
mov edi, edx
mov dword [esp + 0x54], ebp
mov edx, 1
mov ebp, ebx
mov ebx, ecx
mov ecx, dword [esp + 0x68]
test dl, dl
je 0x59b431
mov dword [esp + 0x38], ebp
mov dword [esp + 0x3c], esi
mov dword [esp], 0
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
call sym.runtime.slicebytetostring
mov eax, dword [esp + 0x60]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x2c]
inc edx
mov ebx, dword [eax + 0x28]
mov ebp, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
cmp ecx, edx
jae 0x59b405
mov dword [esp + 0x4c], esi
mov dword [esp + 0x64], ebp
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x5ba800]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x60]
mov dword [ebx + 0x30], eax
mov eax, dword [0x75a278]
test eax, eax
je 0x59b3f6
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [ebx + 0x28]
mov dword [edi + 4], eax
mov dword [ebx + 0x28], ecx
mov eax, ebx
mov ebp, dword [esp + 0x64]
mov esi, dword [esp + 0x4c]
mov ebx, ecx
mov dword [eax + 0x2c], edx
lea ecx, [ebx + edx*8 - 4]
mov dword [ecx], esi
mov ecx, dword [0x75a278]
lea edx, [ebx + edx*8 - 8]
test ecx, ecx
je 0x59b2ce
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov ecx, dword [edx]
mov dword [edi + 4], ecx
jmp 0x59b2ce
mov eax, dword [0x7169e0]
mov ecx, dword [0x7169e4]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x6c
ret
mov eax, dword [ecx + 0x30]
mov edx, dword [ecx + 0x34]
mov ebx, dword [ecx + 0x38]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call sym.golang.org_x_crypto_ssh.parseTuples
mov eax, dword [0x75a278]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
test eax, eax
jne 0x59b48f
mov eax, dword [esp + 0x60]
jmp 0x59b4a0
call sym.runtime.gcWriteBarrier2
mov dword [edi], edx
mov eax, dword [esp + 0x60]
mov ebp, dword [eax + 0x44]
mov dword [edi + 4], ebp
mov dword [eax + 0x44], edx
test ecx, ecx
jne 0x59b674
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x3c]
mov edx, dword [eax + 0x40]
mov ebx, dword [eax + 0x44]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call sym.golang.org_x_crypto_ssh.parseTuples
mov eax, dword [0x75a278]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
test eax, eax
jne 0x59b4e4
mov eax, dword [esp + 0x60]
jmp 0x59b4f5
call sym.runtime.gcWriteBarrier2
mov dword [edi], edx
mov eax, dword [esp + 0x60]
mov ebp, dword [eax + 0x48]
mov dword [edi + 4], ebp
mov dword [eax + 0x48], edx
test ecx, ecx
jne 0x59b657
mov ecx, dword [esp + 0x68]
mov edx, dword [ecx + 0x4c]
mov ebx, dword [ecx + 0x50]
mov ebp, dword [ecx + 0x48]
mov dword [eax + 0x50], edx
mov dword [eax + 0x54], ebx
mov edx, dword [0x75a278]
test edx, edx
je 0x59b52a
call sym.runtime.gcWriteBarrier2
mov dword [edi], ebp
mov edx, dword [eax + 0x4c]
mov dword [edi + 4], edx
mov dword [eax + 0x4c], ebp
mov edx, dword [ecx + 0x54]
mov ebx, dword [ecx + 0x58]
mov ebp, dword [ecx + 0x5c]
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call sym.golang.org_x_crypto_ssh.ParsePublicKey
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x59b636
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x60]
mov dword [edx + 0x58], eax
mov eax, dword [0x75a278]
test eax, eax
je 0x59b578
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [edx + 0x5c]
mov dword [edi + 4], eax
mov dword [edx + 0x5c], ecx
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x60]
mov ebx, dword [eax + 0x64]
mov eax, dword [eax + 0x68]
mov dword [esp], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], eax
call sym.golang.org_x_crypto_ssh.parseSignatureBody
mov eax, dword [0x75a278]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x1c]
mov ebx, dword [esp + 0x14]
test eax, eax
jne 0x59b5b5
mov eax, dword [esp + 0x60]
jmp 0x59b5c6
call sym.runtime.gcWriteBarrier2
mov dword [edi], ecx
mov eax, dword [esp + 0x60]
mov ebp, dword [eax + 0x60]
mov dword [edi + 4], ebp
mov dword [eax + 0x60], ecx
test dl, dl
je 0x59b5f2
test ebx, ebx
jne 0x59b5f2
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0
add esp, 0x6c
ret
lea eax, [0x5c13c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x1a
lea ecx, [0x5e7a68]
mov dword [eax], ecx
mov dword [esp + 0x84], 0
lea ecx, [0x627af4]
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
add esp, 0x6c
ret
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], ecx
add esp, 0x6c
ret
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ebx
add esp, 0x6c
ret
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], ebx
add esp, 0x6c
ret
call sym.runtime.morestack_noctxt
jmp sym.golang.org_x_crypto_ssh.parseCert