Function at 0x508600
Capabilities:
Hash data with md5

Disassembly:
mov ecx, dword [0x664c04]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x108]
cmp eax, dword [ecx + 8]
jbe 0x508d87
sub esp, 0x188
mov dword [esp + 0x19c], 0
mov dword [esp + 0x1a0], 0
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a8], 0
nop
lea edi, [esp + 0xd8]
xor eax, eax
call fcn.0046a5d9
nop
mov dword [esp + 0xd8], 0x67452301
mov dword [esp + 0xdc], 0xefcdab89
mov dword [esp + 0xe0], 0x98badcfe
mov dword [esp + 0xe4], 0x10325476
mov dword [esp + 0x128], 0
mov dword [esp + 0x12c], 0
mov dword [esp + 0x130], 0
mov ecx, dword [esp + 0x18c]
mov edx, dword [ecx + 0x14]
mov dword [esp + 0x184], edx
mov ebx, dword [ecx + 0x18]
mov dword [esp + 0x138], ebx
xor eax, eax
xor ebp, ebp
lea esi, [esp + 0xd8]
xor edi, edi
jmp 0x508706
mov eax, dword [esp + 0x134]
inc eax
mov ecx, dword [esp + 0x18c]
mov edx, dword [esp + 0x184]
mov ebx, dword [esp + 0x138]
mov ebp, dword [esp + 0xcc]
mov esi, dword [esp + 0x154]
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x154], esi
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xc8], edi
cmp eax, ebx
jge 0x5088b1
mov dword [esp + 0x134], eax
mov ecx, dword [edx + eax*4]
movzx edx, byte [esp + 0x198]
test dl, dl
jne 0x508744
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 0xc]
mov ecx, dword [ecx + 0x10]
jmp 0x508796
mov dword [esp + 0x144], ecx
lea eax, [0x5225c0]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov dword [esp + 0x14c], eax
mov ecx, dword [esp + 0x144]
mov ecx, dword [ecx + 0x14]
mov ecx, dword [ecx]
mov dword [esp], ecx
lea ecx, [0x56799c]
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym.internal_coverage_encodemeta._CoverageMetaDataBuilder_.Emit
nop
mov eax, dword [esp + 0x14c]
mov ebx, dword [eax + 4]
mov ecx, dword [eax + 8]
mov edx, dword [eax]
mov dword [esp + 0xd4], ecx
mov dword [esp + 0xd0], ebx
mov dword [esp + 0x158], edx
mov dword [esp], edx
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call sym.crypto_md5.Sum
lea edi, [esp + 0x2e]
lea esi, [esp + 0xc]
call fcn.0046aad8
mov eax, dword [esp + 0xc8]
inc eax
mov ecx, dword [esp + 0xcc]
cmp ecx, eax
jb 0x5087e6
mov esi, dword [esp + 0x154]
mov ebp, ecx
jmp 0x50881b
mov edx, dword [esp + 0x154]
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
lea eax, [0x517900]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ebp
lea ecx, [eax + eax*2]
mov edx, dword [esp + 0xd0]
mov dword [esi + ecx*4 - 8], edx
mov edx, dword [esp + 0xd4]
mov dword [esi + ecx*4 - 4], edx
mov edx, dword [0x664ca8]
test edx, edx
jne 0x508855
mov edx, dword [esp + 0x158]
jmp 0x50886a
call sym.runtime.gcWriteBarrier2
mov edx, dword [esp + 0x158]
mov dword [edi], edx
mov ebx, dword [esi + ecx*4 - 0xc]
mov dword [edi + 4], ebx
mov dword [esp + 0x154], esi
mov dword [esi + ecx*4 - 0xc], edx
lea eax, [esp + 0xd8]
mov dword [esp], eax
lea ecx, [esp + 0x2e]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x10
mov dword [esp + 0xc], 0x10
call sym.crypto_md5._digest_.Write
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
test eax, eax
je 0x5086d4
jmp 0x508d02
mov dword [esp + 0x4e], 0
mov dword [esp + 0x52], 0
mov dword [esp + 0x56], 0
mov dword [esp + 0x5a], 0
nop
lea edi, [esp + 0x6c]
lea esi, [esp + 0xd8]
call fcn.0046aa1a
lea eax, [esp + 0x6c]
mov dword [esp], eax
call sym.crypto_md5._digest_.checkSum
lea edi, [esp + 0x3e]
lea esi, [esp + 4]
call fcn.0046aad8
mov dword [esp], 0
mov dword [esp + 4], 0x10
mov dword [esp + 8], 0
mov dword [esp + 0xc], 0x10
lea eax, [0x51bf60]
mov dword [esp + 0x10], eax
call sym.runtime.growslice
mov eax, dword [esp + 0x14]
mov dword [esp + 0x140], eax
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x64], ecx
mov dword [esp], eax
lea edx, [esp + 0x3e]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x10
call sym.runtime.memmove
mov eax, dword [esp + 0x64]
cmp eax, 0x10
jl 0x508962
mov eax, 0x10
mov ecx, dword [esp + 0x140]
lea edx, [esp + 0x4e]
cmp ecx, edx
je 0x508981
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call sym.runtime.memmove
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
lea eax, [0x51bee0]
mov dword [esp + 0x16c], eax
lea ecx, [0x567128]
mov dword [esp + 0x170], ecx
lea ecx, [0x519cc0]
mov dword [esp], ecx
lea edx, [esp + 0x4e]
mov dword [esp + 4], edx
call sym.runtime.convTnoptr
mov eax, dword [esp + 8]
lea ecx, [0x519cc0]
mov dword [esp + 0x174], ecx
mov dword [esp + 0x178], eax
lea eax, [0x536349]
mov dword [esp], eax
mov dword [esp + 4], 5
lea eax, [esp + 0x16c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call sym.fmt.Sprintf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x15c], 0
mov dword [esp + 0x160], 0
mov dword [esp + 0x164], 0
mov dword [esp + 0x168], 0
mov edx, dword [esp + 0x194]
mov dword [esp + 0x160], edx
mov edx, dword [esp + 0x190]
mov dword [esp + 0x15c], edx
mov dword [esp + 0x168], ecx
mov dword [esp + 0x164], eax
lea eax, [esp + 0x15c]
mov dword [esp], eax
mov dword [esp + 4], 2
mov dword [esp + 8], 2
call sym.path_filepath.join
mov eax, dword [esp + 0xc]
mov dword [esp + 0x13c], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x60], ecx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x241
mov dword [esp + 0xc], 0x1b6
call sym.os.OpenFile
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
test eax, eax
je 0x508bab
mov dword [esp + 0x68], eax
mov dword [esp + 0x150], edx
mov dword [esp + 0x148], ecx
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
mov ecx, dword [esp + 0x60]
mov dword [esp + 4], ecx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x51bee0]
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x68]
test eax, eax
je 0x508b5e
mov eax, dword [eax + 4]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
lea eax, [0x54053b]
mov dword [esp], eax
mov dword [esp + 4], 0x2b
lea eax, [esp + 0x16c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call sym.main.fatal
mov ecx, dword [esp + 0x148]
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
mov edx, dword [esp + 0x60]
mov dword [esp + 4], edx
lea ebx, [0x567780]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ecx
call sym.internal_coverage_encodemeta.NewCoverageMetaFileWriter
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18c]
movzx ecx, word [ecx + 0xc]
mov word [esp + 0x5e], cx
mov dword [esp], eax
lea edi, [esp + 4]
lea esi, [esp + 0x4e]
call fcn.0046aad8
mov eax, dword [esp + 0x154]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0xcc]
mov dword [esp + 0x1c], eax
movzx eax, word [esp + 0x5e]
mov word [esp + 0x20], ax
call sym.internal_coverage_encodemeta._CoverageMetaFileWriter_.Write
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x28]
test eax, eax
je 0x508ceb
mov dword [esp + 0x68], eax
mov dword [esp + 0x150], ecx
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x174], 0
mov dword [esp + 0x178], 0
mov eax, dword [esp + 0x13c]
mov dword [esp], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 4], eax
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x51bee0]
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], eax
mov eax, dword [esp + 0x68]
test eax, eax
je 0x508ca5
mov eax, dword [eax + 4]
mov dword [esp + 0x174], eax
mov eax, dword [esp + 0x150]
mov dword [esp + 0x178], eax
lea eax, [0x53a31c]
mov dword [esp], eax
mov dword [esp + 4], 0x15
lea eax, [esp + 0x16c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 2
mov dword [esp + 0x10], 2
call sym.main.fatal
lea edi, [esp + 0x19c]
lea esi, [esp + 0x4e]
call fcn.0046aad8
add esp, 0x188
ret
mov dword [esp + 0x17c], 0
mov dword [esp + 0x180], 0
je 0x508d1d
mov eax, dword [eax + 4]
mov dword [esp + 0x17c], eax
mov dword [esp + 0x180], ecx
lea eax, [0x53e557]
mov dword [esp], eax
mov dword [esp + 4], 0x22
lea eax, [esp + 0x17c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call sym.fmt.Sprintf
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp], eax
mov dword [esp + 4], ecx
call sym.runtime.convTstring
mov eax, dword [esp + 8]
lea ecx, [0x51bee0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.runtime.gopanic
nop
call sym.runtime.morestack_noctxt
jmp sym.main._metaMerge_.emitMeta