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

Disassembly:
lea r12, [rsp - 0x350]
cmp r12, qword [r14 + 0x10]
jbe 0x5c6f7c
push rbp
mov rbp, rsp
sub rsp, 0x3c8
mov dword [rsp + 0x3e0], ebx
mov dword [rsp + 0x3e4], ecx
mov qword [rsp + 0x3d8], rax
lea rdi, [rsp + 0xf8]
lea rdi, [rdi - 0x10]
nop
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.004664c6
mov rbp, qword [rbp]
mov dword [rsp + 0x50], 0
mov dword [rsp + 0x54], 0
mov edx, dword [rsp + 0x50]
mov dword [rsp + 0x68], edx
mov dword [rsp + 0x6c], 0
lea rax, [0x006101c0]
lea rbx, [rsp + 0x68]
nop
call sym.encoding_binary.Size
mov qword [rsp + 0x88], rax
mov ecx, dword [rsp + 0x3e0]
xor edx, edx
xor ebx, ebx
jmp 0x5c650c
mov rax, qword [rsp + 0x88]
mov ecx, r8d
movzx edx, byte [rsp + 0x3b]
mov ebx, esi
mov byte [rsp + 0x3a], bl
mov byte [rsp + 0x3b], dl
mov dword [rsp + 0x3c], ecx
mov edi, ecx
mov rsi, rax
mov rax, qword [rsp + 0x3d8]
lea rcx, [rsp + 0x50]
lea rbx, [0x005e2e60]
call sym.github.com_saferwall_pe._File_.structUnpack
test rax, rax
jne 0x5c69b8
mov esi, dword [rsp + 0x50]
mov edi, dword [rsp + 0x3c]
lea ecx, [rdi + rsi]
mov r8, qword [rsp + 0x3d8]
cmp dword [r8 + 0x530], ecx
jb 0x5c69a1
nop
test esi, esi
je 0x5c6989
mov rdx, qword [r8 + 0x510]
mov rsi, qword [rsp + 0x88]
lea eax, [rdi + rsi]
nop word [rax + rax]
cmp rdx, rcx
jb 0x5c6f76
cmp rax, rcx
ja 0x5c6f71
mov rsi, qword [r8 + 0x500]
sub rdx, rax
mov qword [rsp + 0x60], rdx
sub rcx, rax
mov qword [rsp + 0x58], rcx
mov rdi, rdx
neg rdx
sar rdx, 0x3f
and rax, rdx
add rax, rsi
mov qword [rsp + 0xb0], rax
mov rbx, rcx
mov rcx, rdi
call sym.go.mozilla.org_pkcs7.Parse
test rbx, rbx
jne 0x5c686e
cmp qword [rax + 0x50], 0
nop word [rax + rax]
jbe 0x5c6f67
mov qword [rsp + 0xa0], rax
mov rdx, qword [rax + 0x48]
mov rdi, qword [rdx + 0x50]
mov qword [rsp + 0x98], rdi
mov rdx, qword [rax + 0x18]
mov qword [rsp + 0xd0], rdx
mov rsi, qword [rax + 0x20]
mov qword [rsp + 0x80], rsi
xor ecx, ecx
jmp 0x5c6a00
mov rcx, qword [rsp + 0xb8]
mov rax, qword [rcx + 0xb8]
call sym.math_big._Int_.Bytes
mov qword [rsp + 0x40], rbx
mov qword [rsp + 0x90], rax
mov rcx, rbx
shl rcx, 1
mov qword [rsp + 0x80], rcx
lea rax, [0x005ec900]
mov rbx, rcx
call sym.runtime.makeslice
nop
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x80]
mov rbx, qword [rsp + 0x90]
xor esi, esi
xor edi, edi
jmp 0x5c6be0
mov rdx, qword [rsp + 0x3d8]
mov byte [rdx + 0x52f], 1
mov rsi, qword [rdx + 0x548]
cmp byte [rsi + 0xc], 0
je 0x5c669d
movzx ecx, byte [rsp + 0x3b]
jmp 0x5c66d5
nop dword [rax]
call sym.github.com_saferwall_pe.loadSystemRoots
test rbx, rbx
je 0x5c66b1
movzx edx, byte [rsp + 0x3b]
jmp 0x5c66cb
mov rbx, rax
mov rax, qword [rsp + 0xa0]
nop dword [rax]
call sym.go.mozilla.org_pkcs7._PKCS7_.VerifyWithChain
test rax, rax
sete dl
mov rax, qword [rsp + 0xa0]
mov ecx, edx
mov byte [rsp + 0x3b], cl
mov rdx, qword [rax]
mov rbx, qword [rax + 8]
mov rsi, qword [rax + 0x10]
mov rax, rdx
mov rcx, rsi
call sym.github.com_saferwall_pe.parseAuthenticodeContent
mov qword [rsp + 0x70], rax
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0x80], rcx
mov qword [rsp + 0x78], rdi
test rsi, rsi
jne 0x5c67c4
mov rdx, qword [rsp + 0x3d8]
mov r8, qword [rdx + 0x548]
cmp byte [r8 + 0xd], 0
je 0x5c6732
movzx esi, byte [rsp + 0x3a]
jmp 0x5c6837
call sym.crypto.Hash.New
movups xmmword [rsp + 0xd8], xmm15
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xe0], rbx
mov rax, qword [rsp + 0x3d8]
lea rbx, [rsp + 0xd8]
mov ecx, 1
mov rdi, rcx
call sym.github.com_saferwall_pe._File_.AuthentihashExt
test rbx, rbx
jbe 0x5c6bc7
mov rcx, qword [rax + 8]
mov rdx, qword [rsp + 0x80]
cmp rdx, rcx
je 0x5c678b
xor eax, eax
jmp 0x5c67a3
mov rax, qword [rax]
mov rbx, qword [rsp + 0xc0]
call sym.runtime.memequal
mov rdx, qword [rsp + 0x80]
mov rcx, rdx
mov rdx, qword [rsp + 0x3d8]
mov rbx, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x78]
mov esi, eax
mov rax, qword [rsp + 0x70]
jmp 0x5c6837
movups xmmword [rsp + 0xe8], xmm15
je 0x5c67d3
mov rsi, qword [rsi + 8]
mov qword [rsp + 0xe8], rsi
mov qword [rsp + 0xf0], r8
mov rdx, qword [rsp + 0x3d8]
mov rax, qword [rdx + 0x550]
lea rbx, [0x006470ed]
mov ecx, 0x28
lea rdi, [rsp + 0xe8]
mov esi, 1
mov r8, rsi
call sym.github.com_saferwall_pe_log._Helper_.Errorf
mov rax, qword [rsp + 0x70]
mov rcx, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x3d8]
mov rbx, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0x78]
xor esi, esi
mov r8d, dword [rsp + 0x50]
mov r9d, dword [rsp + 0x3c]
lea r8d, [r9 + r8]
lea r8d, [r8 + 7]
and r8d, 0xfffffff8
mov r10d, dword [rsp + 0x3e4]
add r9d, r10d
nop dword [rax + rax]
cmp r8d, r9d
jne 0x5c64fa
jmp 0x5c6a39
lea rdi, [rsp + 0x298]
lea rdi, [rdi - 0x10]
nop word [rax + rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00466481
mov rbp, qword [rbp]
mov edx, dword [rsp + 0x50]
movzx r8d, word [rsp + 0x54]
movzx r9d, word [rsp + 0x56]
mov dword [rsp + 0x298], edx
mov word [rsp + 0x29c], r8w
mov word [rsp + 0x29e], r9w
mov rdx, qword [rsp + 0xb0]
mov qword [rsp + 0x338], rdx
mov rdx, qword [rsp + 0x58]
mov qword [rsp + 0x340], rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x348], rdx
mov rdi, qword [rsp + 0x3d8]
lea rdx, [rdi + 0x288]
cmp dword [0x00872450], 0
je 0x5c6947
mov qword [rsp + 0xc8], rdx
mov qword [rsp + 0xa8], rcx
mov qword [rsp + 0x48], rbx
lea rax, [0x00623820]
mov rbx, rdx
lea rcx, [rsp + 0x298]
call sym.runtime.wbMove
mov rcx, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0xc8]
mov rbx, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x3d8]
lea rsi, [rsp + 0x298]
mov rax, rdi
mov rdi, rdx
nop word [rax + rax]
nop
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00466776
mov rbp, qword [rbp]
mov byte [rax + 0x523], 1
mov rax, rbx
mov rbx, rcx
add rsp, 0x3c8
pop rbp
ret
mov rax, qword [0x0080c350]
mov rbx, qword [0x0080c358]
add rsp, 0x3c8
pop rbp
nop
ret
mov rax, qword [0x0080c2d0]
mov rbx, qword [0x0080c2d8]
add rsp, 0x3c8
pop rbp
ret
mov rax, qword [0x0080c2d0]
mov rbx, qword [0x0080c2d8]
add rsp, 0x3c8
pop rbp
ret
mov rcx, qword [rsp + 0x78]
inc rcx
mov rax, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0xd0]
mov rsi, qword [rsp + 0x80]
mov rdi, qword [rsp + 0x98]
nop word [rax + rax]
cmp rcx, rsi
jge 0x5c667a
mov qword [rsp + 0x78], rcx
mov rsi, qword [rdx + rcx*8]
mov qword [rsp + 0xb8], rsi
mov rbx, qword [rsi + 0xb8]
lea rax, [0x00634640]
mov rcx, rax
call sym.reflect.DeepEqual
test al, al
je 0x5c69cf
jmp 0x5c661d
mov r8, rdi
lea rdi, [rsp + 0x168]
lea rdi, [rdi - 0x10]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00466481
mov rbp, qword [rbp]
mov r9d, dword [rsp + 0x50]
movzx r10d, word [rsp + 0x54]
movzx r11d, word [rsp + 0x56]
mov dword [rsp + 0x168], r9d
mov word [rsp + 0x16c], r10w
mov word [rsp + 0x16e], r11w
lea rdi, [rsp + 0x170]
mov r9d, esi
mov rsi, qword [rsp + 0xa0]
nop dword [rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046681e
mov rbp, qword [rbp]
mov r10, qword [rsp + 0xb0]
mov qword [rsp + 0x208], r10
mov r10, qword [rsp + 0x58]
mov qword [rsp + 0x210], r10
mov r10, qword [rsp + 0x60]
mov qword [rsp + 0x218], r10
lea rdi, [rsp + 0x220]
lea rsi, [rsp + 0xf8]
nop word [rax + rax]
nop word [rax + rax]
nop
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.0046681e
mov rbp, qword [rbp]
movzx r10d, byte [rsp + 0x3b]
mov byte [rsp + 0x290], r10b
mov qword [rsp + 0x1e0], rax
mov qword [rsp + 0x1e8], rbx
mov qword [rsp + 0x1f0], rcx
mov qword [rsp + 0x1f8], r8
mov byte [rsp + 0x200], r9b
lea rdi, [rdx + 0x288]
cmp dword [0x00872450], 0
je 0x5c6b88
mov qword [rsp + 0xc8], rdi
lea rax, [0x00623820]
mov rbx, rdi
lea rcx, [rsp + 0x168]
call sym.runtime.wbMove
mov rdx, qword [rsp + 0x3d8]
mov rdi, qword [rsp + 0xc8]
lea rsi, [rsp + 0x168]
nop word [rax + rax]
nop dword [rax]
mov qword [rsp - 0x10], rbp
lea rbp, [rsp - 0x10]
call fcn.00466776
mov rbp, qword [rbp]
mov byte [rdx + 0x523], 1
xor eax, eax
xor ebx, ebx
add rsp, 0x3c8
pop rbp
ret
xor eax, eax
mov rcx, rax
call sym.runtime.panicIndex
mov byte [rdi + rax + 1], r9b
inc rsi
add rdi, 2
nop dword [rax]
cmp rcx, rsi
jle 0x5c6c2a
movzx r8d, byte [rbx + rsi]
mov r9d, r8d
shr r8b, 4
movzx r8d, r8b
lea r10, [0x0063c520]
movzx r8d, byte [r10 + r8]
cmp rdi, rdx
jae 0x5c6f5c
mov byte [rax + rdi], r8b
lea r8, [rdi + 1]
and r9d, 0xf
movzx r9d, byte [r9 + r10]
nop dword [rax + rax]
cmp rdx, r8
ja 0x5c6bd1
jmp 0x5c6f51
mov rbx, rax
mov rcx, rdx
xor eax, eax
call sym.runtime.slicebytetostring
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], rbx
mov rdx, qword [rsp + 0xb8]
mov rsi, qword [rdx + 0x98]
mov qword [rsp + 0x160], rsi
mov rsi, qword [rdx + 0x90]
mov qword [rsp + 0x158], rsi
mov rsi, qword [rdx + 0x2d0]
mov rdi, qword [rdx + 0x2d8]
mov r8, qword [rdx + 0x2c8]
mov qword [rsp + 0x130], r8
mov qword [rsp + 0x138], rsi
mov qword [rsp + 0x140], rdi
mov rsi, qword [rdx + 0x2b8]
mov rdi, qword [rdx + 0x2c0]
mov r8, qword [rdx + 0x2b0]
mov qword [rsp + 0x118], r8
mov qword [rsp + 0x120], rsi
mov qword [rsp + 0x128], rdi
cmp qword [rdx + 0xc8], 0
je 0x5c6cef
mov r10, qword [rdx + 0xc0]
mov r11, qword [r10 + 8]
mov r10, qword [r10]
mov qword [rsp + 0xf8], r10
mov qword [rsp + 0x100], r11
cmp qword [rdx + 0x128], 0
je 0x5c6d42
mov r10, qword [rdx + 0x120]
mov rbx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x100]
mov r8, qword [r10]
mov r9, qword [r10 + 8]
xor eax, eax
lea rdi, [0x00637f71]
mov esi, 2
call sym.runtime.concatstring3
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rbx
mov rdx, qword [rsp + 0xb8]
cmp qword [rdx + 0x110], 0
je 0x5c6d95
mov r10, qword [rdx + 0x108]
mov rbx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x100]
mov r8, qword [r10]
mov r9, qword [r10 + 8]
xor eax, eax
lea rdi, [0x00637f71]
mov esi, 2
call sym.runtime.concatstring3
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rbx
mov rdx, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0xf8]
mov rcx, qword [rsp + 0x100]
mov r8, qword [rdx + 0x178]
mov r9, qword [rdx + 0x180]
xor eax, eax
lea rdi, [0x00637f71]
mov esi, 2
call sym.runtime.concatstring3
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0x100], rbx
mov rdx, qword [rsp + 0xb8]
cmp qword [rdx + 0x1c0], 0
je 0x5c6e06
mov r10, qword [rdx + 0x1b8]
mov r11, qword [r10 + 8]
mov r10, qword [r10]
mov qword [rsp + 0x108], r10
mov qword [rsp + 0x110], r11
cmp qword [rdx + 0x220], 0
je 0x5c6e5d
mov r10, qword [rdx + 0x218]
mov rbx, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x110]
mov r8, qword [r10]
mov r9, qword [r10 + 8]
xor eax, eax
lea rdi, [0x00637f71]
mov esi, 2
nop dword [rax]
call sym.runtime.concatstring3
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rbx
mov rdx, qword [rsp + 0xb8]
cmp qword [rdx + 0x208], 0
je 0x5c6eb0
mov r10, qword [rdx + 0x200]
mov rbx, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x110]
mov r8, qword [r10]
mov r9, qword [r10 + 8]
xor eax, eax
lea rdi, [0x00637f71]
mov esi, 2
call sym.runtime.concatstring3
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rbx
mov rdx, qword [rsp + 0xb8]
cmp qword [rdx + 0x1d8], 0
je 0x5c6f03
mov r10, qword [rdx + 0x1d0]
mov rbx, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x110]
mov r8, qword [r10]
mov r9, qword [r10 + 8]
xor eax, eax
lea rdi, [0x00637f71]
mov esi, 2
call sym.runtime.concatstring3
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rbx
mov rdx, qword [rsp + 0xb8]
mov rbx, qword [rsp + 0x108]
mov rcx, qword [rsp + 0x110]
mov r8, qword [rdx + 0x270]
mov r9, qword [rdx + 0x278]
xor eax, eax
lea rdi, [0x00637f71]
mov esi, 2
call sym.runtime.concatstring3
mov qword [rsp + 0x108], rax
mov qword [rsp + 0x110], rbx
mov rax, qword [rsp + 0xa0]
jmp 0x5c667a
mov rax, r8
mov rcx, rdx
call sym.runtime.panicIndex
mov rax, rdi
mov rcx, rdx
call sym.runtime.panicIndex
xor eax, eax
mov rcx, rax
call sym.runtime.panicIndex
call sym.runtime.panicSliceB
call sym.runtime.panicSliceAcap
nop
mov qword [rsp + 8], rax
mov dword [rsp + 0x10], ebx
mov dword [rsp + 0x14], ecx
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov ebx, dword [rsp + 0x10]
mov ecx, dword [rsp + 0x14]
nop dword [rax + rax]
jmp sym.github.com_saferwall_pe._File_.parseSecurityDirectory