Function at 0x4c2cc0
Capabilities:
Hash data using sha256
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x5c5164]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x148]
cmp eax, dword [ecx + 8]
jbe 0x4c3328
sub esp, 0x1c8
mov ecx, dword [esp + 0x1e4]
lea edx, [ecx + 1]
nop
mov dword [esp + 0x4c], 0xfade0cc0
mov ebx, dword [esp + 0x1e8]
mov ebp, ebx
add ebx, 0xfff
mov ebx, dword [esp + 0x1ec]
mov eax, ebx
adc ebx, 0
sar ebx, 0x1f
shr ebx, 0x14
add ebx, ebp
adc eax, 0
add ebx, 0xfff
adc eax, 0
shr ebx, 0xc
shl eax, 0x14
or ebx, eax
mov eax, ebx
shl ebx, 5
add ebx, edx
add ebx, 0x6c
mov dword [esp + 0x50], ebx
mov dword [esp + 0x54], 1
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0x14
lea edi, [esp + 0xf0]
lea esi, [0x514fc0]
call fcn.0045ff74
lea ecx, [ebx - 0x14]
mov dword [esp + 0xf4], ecx
add edx, 0x58
mov dword [esp + 0x100], edx
mov dword [esp + 0x104], 0x58
mov dword [esp + 0x10c], eax
mov dword [esp + 0x110], ebp
mov ecx, dword [esp + 0x1f4]
mov dword [esp + 0x134], ecx
mov ecx, dword [esp + 0x1f0]
mov dword [esp + 0x130], ecx
mov ecx, dword [esp + 0x1fc]
mov dword [esp + 0x13c], ecx
mov ecx, dword [esp + 0x1f8]
mov dword [esp + 0x138], ecx
lea edi, [esp + 0x98]
lea esi, [esp + 0xf0]
call fcn.0045ff74
movzx ecx, byte [esp + 0x200]
test cl, cl
je 0x4c2dfd
mov dword [esp + 0xe8], 1
mov dword [esp + 0xec], 0
nop
mov ecx, dword [esp + 0x1d0]
cmp ecx, 3
jbe 0x4c331d
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x1d4]
lea ebp, [ebx - 4]
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and ebp, 4
lea esi, [ecx - 4]
bswap edx
mov edi, dword [esp + 0x1cc]
mov dword [edi], edx
lea edx, [edi + ebp]
cmp esi, 3
jbe 0x4c3311
mov esi, dword [esp + 0x50]
lea eax, [ebx - 8]
neg eax
sar eax, 0x1f
and eax, 4
add ecx, 0xfffffff8
bswap esi
mov dword [edi + ebp], esi
lea ebp, [edx + eax]
cmp ecx, 3
jbe 0x4c3307
mov esi, dword [esp + 0x54]
lea edi, [ebx - 0xc]
xchg edi, ebx
neg ebx
xchg edi, ebx
sar edi, 0x1f
and edi, 4
mov ecx, ebx
mov ebx, dword [esp + 0x1d0]
add ebx, 0xfffffff4
bswap esi
mov dword [edx + eax], esi
nop
lea edx, [ebp + edi]
cmp ebx, 3
jbe 0x4c32fb
mov ebx, dword [esp + 0x44]
lea esi, [ecx - 0x10]
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 4
mov eax, edx
mov edx, dword [esp + 0x1d0]
add edx, 0xfffffff0
bswap ebx
mov dword [ebp + edi], ebx
lea ebx, [eax + esi]
cmp edx, 3
jbe 0x4c32ef
mov edx, dword [esp + 0x48]
add ecx, 0xffffffec
mov ebp, ecx
neg ecx
sar ecx, 0x1f
and ecx, 4
add ecx, ebx
mov ebx, dword [esp + 0x1d0]
add ebx, 0xffffffec
bswap edx
mov dword [eax + esi], edx
lea eax, [esp + 0x98]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
call sym.cmd_internal_codesign._CodeDirectory_.put
mov eax, dword [esp + 0x14]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1b4], ecx
mov edx, dword [esp + 0x18]
mov dword [esp + 0x2c], edx
lea ebx, [esp + 0x58]
mov dword [esp], ebx
mov ebx, dword [esp + 0x1e0]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x1e4]
mov dword [esp + 8], ebx
lea ebx, [0x514598]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], 1
call sym.runtime.concatstring2
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x78]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call sym.runtime.stringtoslicebyte
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x28]
cmp eax, ecx
jl 0x4c2f7e
mov eax, ecx
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x1b4]
cmp ebx, edx
je 0x4c2fb0
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call sym.runtime.memmove
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x1b4]
cmp eax, ecx
ja 0x4c32ea
lea eax, [0x4d7520]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
sub eax, ecx
mov edx, eax
neg eax
sar eax, 0x1f
and eax, ecx
mov ebx, dword [esp + 4]
mov dword [esp + 0x1c4], ebx
nop
lea edi, [esp + 0x148]
mov ebp, eax
xor eax, eax
call fcn.0045fb25
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x38]
sub eax, ecx
mov ecx, dword [esp + 0x1b4]
add ecx, ebp
nop
mov dword [esp + 0x148], 0x6a09e667
mov dword [esp + 0x14c], 0xbb67ae85
mov dword [esp + 0x150], 0x3c6ef372
mov dword [esp + 0x154], 0xa54ff53a
mov dword [esp + 0x158], 0x510e527f
mov dword [esp + 0x15c], 0x9b05688c
mov dword [esp + 0x160], 0x1f83d9ab
mov dword [esp + 0x164], 0x5be0cd19
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
mov dword [esp + 0x1b0], 0
xor ebp, ebp
jmp 0x4c30ad
mov esi, dword [esp + 0x2c]
sub esi, eax
mov edi, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, eax
sub edx, eax
lea ecx, [ebx + esi]
mov ebx, dword [esp + 0x1c4]
mov ebp, dword [esp + 0x24]
mov eax, edx
mov edx, edi
mov esi, dword [esp + 0x1e8]
cmp esi, ebp
jle 0x4c32af
mov dword [esp + 0x24], ebp
mov dword [esp + 0x2c], edx
mov dword [esp + 0x1b4], ecx
mov dword [esp + 0x28], eax
nop
mov eax, dword [esp + 0x1d8]
mov dword [esp], eax
mov ecx, dword [esp + 0x1dc]
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x1000
mov dword [esp + 0x10], 0x1000
mov dword [esp + 0x14], 0x1000
call sym.io.ReadAtLeast
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1c0], eax
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x1bc], ebx
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x34], ebp
cmp dword [0x59be78], eax
jne 0x4c317f
mov dword [esp + 0x40], ecx
mov dword [esp + 0x1b8], edx
mov ecx, dword [0x59be7c]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
test al, al
jne 0x4c32af
mov eax, dword [esp + 0x1c0]
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x1b8]
mov ebx, dword [esp + 0x1bc]
mov ebp, dword [esp + 0x34]
test ecx, ecx
je 0x4c31c6
cmp dword [0x59be80], eax
je 0x4c3192
mov ecx, 1
jmp 0x4c31c8
mov ecx, dword [0x59be84]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
call sym.runtime.ifaceeq
movzx eax, byte [esp + 0xc]
xor eax, 1
mov ebx, dword [esp + 0x1bc]
mov ebp, dword [esp + 0x34]
mov ecx, eax
mov eax, dword [esp + 0x1c0]
jmp 0x4c31c8
xor ecx, ecx
test cl, cl
jne 0x4c32d7
mov eax, dword [esp + 0x24]
lea ecx, [ebp + eax]
mov edx, dword [esp + 0x1e8]
cmp edx, ecx
jge 0x4c31e7
mov ebp, edx
sub ebp, eax
mov dword [esp + 0x3c], ebp
lea eax, [esp + 0x148]
mov dword [esp], eax
call sym.cmd_internal_notsha256._digest_.Reset
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
add eax, ecx
cmp ecx, 0x1000
ja 0x4c32cd
mov dword [esp + 0x24], eax
lea eax, [esp + 0x148]
mov dword [esp], eax
mov edx, dword [esp + 0x1c4]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0x1000
call sym.cmd_internal_notsha256._digest_.Write
lea eax, [esp + 0x148]
mov dword [esp], eax
mov dword [esp + 4], 0
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0
call sym.cmd_internal_notsha256._digest_.Sum
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
xor edx, edx
jmp 0x4c32c0
mov edx, dword [esp + 0x28]
cmp edx, eax
jg 0x4c3277
mov eax, edx
mov ebx, dword [esp + 0x1b4]
cmp ebx, ecx
je 0x4c32a5
mov dword [esp + 0x30], eax
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym.runtime.memmove
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x1b4]
cmp eax, edx
jbe 0x4c3086
jmp 0x4c32c6
add esp, 0x1c8
ret
movzx ebx, byte [ecx + edx]
not ebx
mov byte [ecx + edx], bl
inc edx
cmp edx, eax
jl 0x4c32b6
jmp 0x4c326d
mov ecx, edx
call sym.runtime.panicSliceB
mov edx, 0x1000
call sym.runtime.panicSliceAlen
test eax, eax
je 0x4c32de
mov eax, dword [eax + 4]
mov dword [esp], eax
mov dword [esp + 4], ebx
call sym.runtime.gopanic
call sym.runtime.panicSliceB
mov eax, 3
mov ecx, edx
call sym.runtime.panicIndex
mov eax, 3
mov ecx, ebx
call sym.runtime.panicIndex
mov eax, 3
call sym.runtime.panicIndex
mov eax, 3
mov ecx, esi
call sym.runtime.panicIndex
mov eax, 3
call sym.runtime.panicIndex
nop
call sym.runtime.morestack_noctxt
jmp sym.cmd_internal_codesign.Sign