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

Disassembly:
mov ecx, dword [0x6e06e0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x51a39f
sub esp, 0x70
mov eax, dword [esp + 0x94]
mov dword [esp], eax
mov eax, dword [esp + 0x74]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0xc], eax
call sym.crypto_hmac.New
mov eax, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x50], ecx
mov edx, dword [eax + 0x18]
mov dword [esp], ecx
call edx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x90]
lea edx, [ecx + eax - 1]
test eax, eax
je 0x51a399
mov dword [esp + 0x28], eax
mov dword [esp + 0x4c], edx
lea eax, [0x557160]
mov dword [esp], eax
call sym.runtime.newobject
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x28]
cmp ecx, 0xffffffff
je 0x51a0a5
cdq
idiv ecx
jmp 0x51a0a7
neg eax
mov dword [esp + 0x20], eax
imul eax, ecx
mov dword [esp + 0x30], eax
mov ebx, dword [esp + 4]
mov dword [esp + 0x6c], ebx
lea ebp, [0x559b20]
mov dword [esp], ebp
mov dword [esp + 4], 0
mov dword [esp + 8], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov dword [esp + 0x68], eax
lea ecx, [0x559b20]
mov dword [esp], ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 4], ecx
mov dword [esp + 8], ecx
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov ecx, 1
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x68]
xor ebp, ebp
mov esi, dword [esp + 0x28]
mov edi, esi
jmp 0x51a128
mov eax, dword [esp + 0x34]
inc eax
mov ecx, eax
mov ebp, dword [esp + 0x48]
mov eax, esi
mov esi, ebx
mov ebx, edx
mov edx, edi
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x3c], edi
mov edi, dword [esp + 0x20]
cmp ecx, edi
jg 0x51a288
mov dword [esp + 0x34], ecx
mov dword [esp + 0x38], esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x30], edx
mov dword [esp + 0x2c], ebp
mov dword [esp + 0x54], ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
mov ebx, dword [esp + 0x80]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x84]
mov dword [esp + 8], ebp
mov esi, dword [esp + 0x88]
mov dword [esp + 0xc], esi
call ecx
mov eax, dword [esp + 0x34]
mov ecx, eax
sar eax, 0x18
mov edx, dword [esp + 0x6c]
mov byte [edx], al
mov eax, ecx
sar ecx, 0x10
mov byte [edx + 1], cl
mov ecx, eax
sar eax, 8
mov byte [edx + 2], al
mov byte [edx + 3], cl
mov eax, dword [esp + 0x1c]
mov ebx, dword [eax + 0x20]
mov ebp, dword [esp + 0x50]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], 4
mov dword [esp + 0xc], 4
call ebx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
mov ebx, dword [esp + 0x54]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x2c]
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x30]
mov dword [esp + 0xc], ebx
call ecx
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov edx, eax
sub edx, ecx
cmp eax, edx
jb 0x51a390
mov ebx, dword [esp + 0x10]
mov ebp, dword [esp + 0x18]
mov esi, eax
sub eax, edx
mov dword [esp + 0x40], eax
mov edi, ebp
sub ebp, edx
xchg ebp, ebx
neg ebx
xchg ebp, ebx
sar ebp, 0x1f
and edx, ebp
lea ebp, [ebx + edx]
mov edx, ebx
mov ebx, dword [esp + 0x38]
cmp ebx, eax
jg 0x51a241
mov eax, ebx
mov dword [esp + 0x5c], ebp
mov dword [esp + 0x4c], edi
mov dword [esp + 0x48], esi
mov dword [esp + 0x64], edx
mov esi, dword [esp + 0x58]
cmp esi, ebp
je 0x51a281
mov dword [esp], esi
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
call sym.runtime.memmove
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0x38]
mov ebp, dword [esp + 0x5c]
mov esi, dword [esp + 0x58]
mov edi, dword [esp + 0x4c]
mov eax, 2
jmp 0x51a2d0
mov ecx, dword [esp + 0x90]
cmp ecx, edx
ja 0x51a2ac
mov dword [esp + 0x98], ebx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0xa0], edx
add esp, 0x70
ret
call sym.runtime.panicSliceAcap
mov esi, dword [esp + 0x24]
inc esi
mov ecx, dword [esp + 0x28]
mov ebp, ebx
mov edi, dword [esp + 0x4c]
mov ebx, edx
mov edx, dword [esp + 0x64]
mov edx, eax
mov eax, esi
mov esi, edx
mov edx, dword [esp + 0x64]
mov ebp, dword [esp + 0x8c]
cmp ebp, eax
jl 0x51a111
mov dword [esp + 0x24], eax
mov dword [esp + 0x44], ebx
mov dword [esp + 0x60], esi
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x14]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
call ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x20]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
mov ebx, dword [esp + 0x60]
mov dword [esp + 4], ebx
mov ebp, dword [esp + 0x44]
mov dword [esp + 8], ebp
mov ebp, dword [esp + 0x3c]
mov dword [esp + 0xc], ebp
call ecx
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x50]
mov dword [esp], edx
mov ebx, dword [esp + 0x60]
mov dword [esp + 4], ebx
mov dword [esp + 8], 0
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0xc], ebx
call ecx
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x3c], ecx
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x5c]
mov ebp, dword [esp + 0x40]
xor esi, esi
jmp 0x51a37b
movzx edi, byte [esi + ebx]
movzx ecx, byte [esi + eax]
xor edi, ecx
xchg edi, eax
mov byte [ebx + esi], al
xchg edi, eax
inc esi
mov ecx, dword [esp + 0x3c]
cmp esi, edx
jge 0x51a2b1
cmp esi, ebp
jb 0x51a367
mov eax, esi
mov ecx, ebp
call sym.runtime.panicIndex
mov ecx, eax
mov eax, edx
call sym.runtime.panicSliceB
call sym.runtime.panicdivide
nop
call sym.runtime.morestack_noctxt
jmp sym.golang.org_x_crypto_pbkdf2.Key