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

Disassembly:
mov ecx, dword [0x7b1178]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x51a92d
sub esp, 0x7c
mov eax, dword [esp + 0x90]
mov dword [esp], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 4], ecx
call sym.encoding_binary.intDataSize
mov eax, dword [esp + 8]
test eax, eax
je 0x51a656
mov dword [esp + 0x30], eax
lea ecx, [0x5ed720]
mov dword [esp], ecx
mov dword [esp + 4], eax
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov dword [esp + 0x78], eax
mov ecx, dword [esp + 0x80]
mov dword [esp], ecx
mov edx, dword [esp + 0x84]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov ebx, dword [esp + 0x30]
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], ebx
call sym.io.ReadAtLeast
mov eax, dword [esp + 0x1c]
test eax, eax
jne 0x51a917
mov eax, dword [esp + 0x78]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov dword [esp + 8], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x10], ecx
mov edx, dword [esp + 0x90]
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x94]
mov dword [esp + 0x18], ebx
call sym.encoding_binary.decodeFast
movzx eax, byte [esp + 0x1c]
test al, al
jne 0x51a8fd
mov eax, dword [esp + 0x90]
test eax, eax
je 0x51a69c
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x94]
mov dword [esp + 0x50], ecx
mov edx, dword [esp + 0x4c]
test edx, edx
je 0x51a694
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x51a68e
or ebx, 0x80
mov ebp, dword [esp + 0x50]
jmp 0x51a6a9
xor ebx, ebx
xor edx, edx
xor ebp, ebp
jmp 0x51a6a9
mov ecx, dword [esp + 0x94]
xor ebx, ebx
xor edx, edx
xor ebp, ebp
mov esi, ebx
and ebx, 0x1f
nop
cmp ebx, 0x16
je 0x51a701
cmp ebx, 0x17
je 0x51a6c3
mov ebx, 0xffffffff
jmp 0x51a759
mov dword [esp + 0x34], esi
mov dword [esp + 0x40], ebp
mov dword [esp + 0x38], edx
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call sym.encoding_binary.dataSize
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x94]
mov ebx, eax
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x38]
mov ebp, dword [esp + 0x40]
mov eax, dword [esp + 0x90]
jmp 0x51a759
mov dword [esp], edx
mov dword [esp + 4], ebp
mov dword [esp + 8], esi
call sym.reflect.Value.Elem
mov eax, dword [esp + 0xc]
mov dword [esp + 0x74], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x78], ecx
mov edx, dword [esp + 0x14]
mov dword [esp + 0x34], edx
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call sym.encoding_binary.dataSize
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x94]
mov ebx, eax
mov esi, dword [esp + 0x34]
mov edx, dword [esp + 0x74]
mov ebp, dword [esp + 0x78]
mov eax, dword [esp + 0x90]
test ebx, ebx
jge 0x51a814
mov dword [esp + 0x54], eax
mov dword [esp + 0x58], ecx
mov eax, dword [esp + 0x54]
test eax, eax
je 0x51a779
lea ecx, [0x66fcfc]
jmp 0x51a77d
xor ecx, ecx
xor eax, eax
mov ecx, dword [ecx + 0x94]
mov dword [esp], eax
call ecx
mov eax, dword [esp + 4]
mov ecx, dword [esp + 8]
mov dword [esp], 0
lea edx, [0x627265]
mov dword [esp + 4], edx
mov dword [esp + 8], 0x1a
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
call sym.runtime.concatstring2
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x48], ecx
lea edx, [0x5f41a0]
mov dword [esp], edx
call sym.runtime.newobject
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x28]
mov dword [eax + 4], ecx
mov ecx, dword [0x7b12d0]
test ecx, ecx
jne 0x51a7ef
mov ecx, dword [esp + 0x48]
jmp 0x51a7fa
call sym.runtime.gcWriteBarrier1
mov ecx, dword [esp + 0x48]
mov dword [edi], ecx
mov dword [eax], ecx
lea ecx, [0x66e144]
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
add esp, 0x7c
ret
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x24], esi
mov dword [esp + 0x44], ebp
mov dword [esp + 0x3c], edx
lea eax, [0x5ed720]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebx
call sym.runtime.makeslice
mov eax, dword [esp + 0xc]
mov dword [esp + 0x78], eax
lea edi, [esp + 0x5c]
xor eax, eax
call fcn.0046ffca
mov eax, dword [esp + 0x88]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x80]
mov dword [esp], edx
mov edx, dword [esp + 0x84]
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], eax
call sym.io.ReadAtLeast
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x51a8bf
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
add esp, 0x7c
ret
lea eax, [esp + 0x5c]
mov dword [esp], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc], eax
call sym.encoding_binary._decoder_.value
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
add esp, 0x7c
ret
mov dword [esp + 0x98], 0
mov dword [esp + 0x9c], 0
add esp, 0x7c
ret
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x98], eax
mov dword [esp + 0x9c], ecx
add esp, 0x7c
ret
call sym.runtime.morestack_noctxt
jmp sym.encoding_binary.Read